<?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 Drewniane podłogi - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/drewniane-podlogi/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/drewniane-podlogi/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Tue, 25 Aug 2026 09:36:11 +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 Drewniane podłogi - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/drewniane-podlogi/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</title>
		<link>https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 08 Jun 2025 09:29:23 +0000</pubDate>
				<category><![CDATA[Drewniane podłogi]]></category>
		<category><![CDATA[Drewniane stropy]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budownictwo ekologiczne]]></category>
		<category><![CDATA[drewniana podłoga]]></category>
		<category><![CDATA[drewniany strop]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wodne ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2632</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego w domu z drewnianym stropem? Dowiedz się, jak połączyć komfort cieplny z estetyką drewna. Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? Tak, ale wymaga precyzyjnego projektu i odpowiednich materiałów, takich jak system suchy. Poznaj zalety, wyzwania i praktyczne porady, które pomogą Ci stworzyć ciepłe i piękne wnętrze, zachowując trwałość drewnianej konstrukcji przez wiele lat.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-timber-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff6238;
    --rk-red: #d83c2f;
    --rk-green: #178265;
    --rk-green-soft: #ebf8f3;
    --rk-yellow: #f2b441;
    --rk-ink: #1d2c3a;
    --rk-text: #465a6b;
    --rk-muted: #687b89;
    --rk-line: #d9e7ed;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ef;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1480px;
    margin: 32px auto 70px;
    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.78;
  }

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

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

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

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

  #rk-timber-guide a:hover {
    color: var(--rk-red);
  }

  #rk-timber-guide h2,
  #rk-timber-guide h3,
  #rk-timber-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-timber-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.6vw, 2.65rem);
  }

  #rk-timber-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.58rem);
  }

  #rk-timber-guide h4 {
    margin-bottom: 8px;
    font-size: 1.02rem;
    letter-spacing: -0.015em;
  }

  #rk-timber-guide h2::before,
  #rk-timber-guide h2::after,
  #rk-timber-guide h3::before,
  #rk-timber-guide h3::after,
  #rk-timber-guide h4::before,
  #rk-timber-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-timber-guide p {
    margin: 0 0 1.22em;
    color: var(--rk-text);
  }

  #rk-timber-guide strong {
    color: var(--rk-dark);
  }

  #rk-timber-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-timber-guide .rk-timber-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-timber-guide .rk-timber-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.88);
  }

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

  #rk-timber-guide .rk-timber-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 13%, rgba(255, 98, 56, 0.31), transparent 28%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.22), transparent 33%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09647e 100%);
  }

  #rk-timber-guide .rk-timber-hero::before,
  #rk-timber-guide .rk-timber-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-timber-guide .rk-timber-hero::before {
    right: -120px;
    bottom: -175px;
    width: 400px;
    height: 400px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-timber-guide .rk-timber-hero::after {
    right: 145px;
    bottom: -125px;
    width: 235px;
    height: 235px;
    border: 34px solid rgba(255, 98, 56, 0.12);
  }

  #rk-timber-guide .rk-timber-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-timber-guide .rk-timber-badge::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 98, 56, 0.18);
  }

  #rk-timber-guide .rk-timber-hero h2 {
    max-width: 1040px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.05vw, 3.85rem);
    letter-spacing: -0.055em;
  }

  #rk-timber-guide .rk-timber-hero h2 span {
    color: #83edf5;
  }

  #rk-timber-guide .rk-timber-hook {
    max-width: 930px;
    margin: 0 0 21px;
    padding: 19px 21px;
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 15px 15px 0;
    background: rgba(255, 255, 255, 0.09);
  }

  #rk-timber-guide .rk-timber-hook p,
  #rk-timber-guide .rk-timber-hook strong,
  #rk-timber-guide .rk-timber-hero-lead {
    color: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-hook p {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.16rem);
    line-height: 1.67;
  }

  #rk-timber-guide .rk-timber-hero-lead {
    max-width: 930px;
    font-size: 1.03rem;
  }

  #rk-timber-guide .rk-timber-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 24px;
    color: #cde0e7;
    font-size: 0.72rem;
    font-weight: 770;
  }

  #rk-timber-guide .rk-timber-hero-meta span::before {
    content: "•";
    margin-right: 8px;
    color: var(--rk-orange);
  }

  #rk-timber-guide .rk-timber-author-strip {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-top: 26px;
  }

  #rk-timber-guide .rk-timber-author-strip img {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 3px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    object-fit: cover;
  }

  #rk-timber-guide .rk-timber-author-strip b,
  #rk-timber-guide .rk-timber-author-strip small {
    display: block;
  }

  #rk-timber-guide .rk-timber-author-strip b {
    color: var(--rk-white);
    font-size: 0.88rem;
  }

  #rk-timber-guide .rk-timber-author-strip small {
    color: #cde0e7;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-timber-guide .rk-timber-content {
    padding: clamp(30px, 5.7vw, 72px);
  }

  #rk-timber-guide .rk-timber-learn {
    margin-bottom: 36px;
  }

  #rk-timber-guide .rk-timber-learn > strong {
    display: block;
    margin-bottom: 16px;
    font-size: 1.12rem;
  }

  #rk-timber-guide .rk-timber-learn-grid,
  #rk-timber-guide .rk-timber-card-grid,
  #rk-timber-guide .rk-timber-error-grid,
  #rk-timber-guide .rk-timber-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  #rk-timber-guide .rk-timber-learn-card,
  #rk-timber-guide .rk-timber-card,
  #rk-timber-guide .rk-timber-error,
  #rk-timber-guide .rk-timber-check {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-learn-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  #rk-timber-guide .rk-timber-no,
  #rk-timber-guide .rk-timber-card-icon,
  #rk-timber-guide .rk-timber-error-no,
  #rk-timber-guide .rk-timber-check-no {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-timber-guide .rk-timber-learn-card h4,
  #rk-timber-guide .rk-timber-learn-card p,
  #rk-timber-guide .rk-timber-card h4,
  #rk-timber-guide .rk-timber-card p,
  #rk-timber-guide .rk-timber-error h4,
  #rk-timber-guide .rk-timber-error p,
  #rk-timber-guide .rk-timber-check h4,
  #rk-timber-guide .rk-timber-check p {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-learn-card p,
  #rk-timber-guide .rk-timber-card p,
  #rk-timber-guide .rk-timber-error p,
  #rk-timber-guide .rk-timber-check p {
    margin-top: 6px;
    font-size: 0.84rem;
    line-height: 1.58;
  }

  #rk-timber-guide .rk-timber-nav {
    margin-bottom: 46px;
    padding: 22px;
    border: 1px solid #cce4ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-timber-guide .rk-timber-nav > strong {
    display: block;
    margin-bottom: 12px;
  }

  #rk-timber-guide .rk-timber-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  #rk-timber-guide .rk-timber-nav a {
    padding: 7px 11px;
    border: 1px solid #bfdbe5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.72rem;
    text-decoration: none;
  }

  #rk-timber-guide .rk-timber-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-timber-guide .rk-timber-section {
    margin-top: 64px;
  }

  #rk-timber-guide .rk-timber-section-head {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 25px;
  }

  #rk-timber-guide .rk-timber-section-head h2,
  #rk-timber-guide .rk-timber-section-head p {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-section-head p {
    margin-top: 8px;
    font-size: 0.88rem;
  }

  #rk-timber-guide .rk-timber-section-no {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    font-size: 0.78rem;
    font-weight: 900;
    box-shadow: 0 11px 23px rgba(216, 60, 47, 0.2);
  }

  #rk-timber-guide .rk-timber-answer,
  #rk-timber-guide .rk-timber-truth,
  #rk-timber-guide .rk-timber-warning,
  #rk-timber-guide .rk-timber-note,
  #rk-timber-guide .rk-timber-formula {
    margin: 24px 0;
    padding: 24px;
    border-radius: 20px;
  }

  #rk-timber-guide .rk-timber-answer {
    border: 1px solid #bde3eb;
    border-left: 6px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }

  #rk-timber-guide .rk-timber-truth {
    border: 1px solid #f2c5b6;
    border-left: 6px solid var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-timber-guide .rk-timber-warning {
    border: 1px solid #f0cfd0;
    border-left: 6px solid var(--rk-red);
    background: #fff5f5;
  }

  #rk-timber-guide .rk-timber-note {
    border: 1px solid #cbe6da;
    border-left: 6px solid var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-timber-guide .rk-timber-answer p,
  #rk-timber-guide .rk-timber-truth p,
  #rk-timber-guide .rk-timber-warning p,
  #rk-timber-guide .rk-timber-note p,
  #rk-timber-guide .rk-timber-formula p {
    margin: 0;
  }

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

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

  #rk-timber-guide .rk-timber-card {
    background: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-card-icon {
    margin-bottom: 15px;
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-timber-guide .rk-timber-list {
    margin: 18px 0 24px;
    padding: 0;
    list-style: none;
  }

  #rk-timber-guide .rk-timber-list li {
    position: relative;
    margin: 9px 0;
    padding-left: 31px;
    color: var(--rk-text);
  }

  #rk-timber-guide .rk-timber-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0.08em;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-timber-guide .rk-timber-table-wrap {
    margin: 24px 0;
  }

  #rk-timber-guide .rk-timber-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: fixed;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    overflow: hidden;
    background: var(--rk-white);
  }

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

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

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

  #rk-timber-guide .rk-timber-table th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    line-height: 1.4;
  }

  #rk-timber-guide .rk-timber-table td {
    color: var(--rk-text);
    font-size: 0.8rem;
    line-height: 1.55;
  }

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

  #rk-timber-guide .rk-timber-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin: 25px 0 18px;
  }

  #rk-timber-guide .rk-timber-flow-step {
    min-width: 0;
    padding: 16px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.4;
    cursor: pointer;
  }

  #rk-timber-guide .rk-timber-flow-step:hover,
  #rk-timber-guide .rk-timber-flow-step.is-active {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-timber-guide .rk-timber-flow-detail {
    min-height: 150px;
    padding: 23px;
    border: 1px solid #cde5ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-timber-guide .rk-timber-flow-detail h3,
  #rk-timber-guide .rk-timber-flow-detail p {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-flow-detail p {
    margin-top: 9px;
  }

  #rk-timber-guide .rk-timber-formula {
    border: 1px solid #c6dce5;
    background: var(--rk-dark);
  }

  #rk-timber-guide .rk-timber-formula strong,
  #rk-timber-guide .rk-timber-formula p,
  #rk-timber-guide .rk-timber-formula code {
    color: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-formula code {
    display: block;
    margin: 13px 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.07);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.82rem;
    line-height: 1.65;
    white-space: normal;
  }

  #rk-timber-guide .rk-timber-architectures {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin: 25px 0;
  }

  #rk-timber-guide .rk-timber-architecture {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-architecture > span {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-timber-guide .rk-timber-nodes {
    display: grid;
    gap: 8px;
    margin: 17px 0;
  }

  #rk-timber-guide .rk-timber-node {
    position: relative;
    padding: 12px;
    border: 1px solid #cbdde5;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.76rem;
    font-weight: 820;
    text-align: center;
  }

  #rk-timber-guide .rk-timber-node + .rk-timber-node::before {
    content: "↓";
    position: absolute;
    top: -16px;
    left: 50%;
    color: var(--rk-orange);
    font-size: 1rem;
    transform: translateX(-50%);
  }

  #rk-timber-guide .rk-timber-architecture p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-timber-guide .rk-timber-lab {
    overflow: hidden;
    margin: 28px 0;
    border: 1px solid #c9e1e9;
    border-radius: 25px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.1);
  }

  #rk-timber-guide .rk-timber-lab-head {
    padding: 25px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-timber-guide .rk-timber-lab-head h3,
  #rk-timber-guide .rk-timber-lab-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-lab-head p {
    margin-top: 8px;
    color: #cfe2e8;
    font-size: 0.87rem;
  }

  #rk-timber-guide .rk-timber-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 17px;
  }

  #rk-timber-guide .rk-timber-preset {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.7rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-timber-guide .rk-timber-preset:hover,
  #rk-timber-guide .rk-timber-preset.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-timber-guide .rk-timber-lab-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.35fr);
    gap: 0;
  }

  #rk-timber-guide .rk-timber-controls {
    padding: 25px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-control {
    margin-bottom: 19px;
  }

  #rk-timber-guide .rk-timber-control:last-child {
    margin-bottom: 0;
  }

  #rk-timber-guide .rk-timber-control label {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-timber-guide .rk-timber-control output {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.7rem;
  }

  #rk-timber-guide .rk-timber-control input[type="range"] {
    width: 100%;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

  #rk-timber-guide .rk-timber-visual {
    min-width: 0;
    padding: 25px;
  }

  #rk-timber-guide .rk-timber-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-timber-guide .rk-timber-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-result span,
  #rk-timber-guide .rk-timber-result strong {
    display: block;
  }

  #rk-timber-guide .rk-timber-result span {
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 760;
    line-height: 1.35;
  }

  #rk-timber-guide .rk-timber-result strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.28rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  #rk-timber-guide .rk-timber-chart {
    width: 100%;
    min-height: 330px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f3f8fa);
  }

  #rk-timber-guide .rk-timber-chart .rk-grid-line {
    stroke: #d9e6ec;
    stroke-width: 1;
  }

  #rk-timber-guide .rk-timber-chart .rk-axis {
    stroke: #8194a1;
    stroke-width: 1.4;
  }

  #rk-timber-guide .rk-timber-chart .rk-axis-label,
  #rk-timber-guide .rk-timber-chart .rk-tick {
    fill: #5f7381;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
  }

  #rk-timber-guide .rk-timber-chart .rk-curve {
    fill: none;
    stroke: var(--rk-blue);
    stroke-width: 5;
    stroke-linecap: round;
  }

  #rk-timber-guide .rk-timber-chart .rk-dot {
    fill: var(--rk-orange);
    stroke: var(--rk-white);
    stroke-width: 4;
  }

  #rk-timber-guide .rk-timber-chart .rk-guide {
    stroke: var(--rk-orange);
    stroke-width: 1.5;
    stroke-dasharray: 5 5;
  }

  #rk-timber-guide .rk-timber-status {
    margin-top: 14px;
    padding: 15px;
    border-radius: 13px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.55;
  }

  #rk-timber-guide .rk-timber-disclaimer {
    padding: 0 25px 24px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-timber-guide .rk-timber-number-input {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #bfd3dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 760;
  }

  #rk-timber-guide .rk-timber-number-input:focus-visible,
  #rk-timber-guide button:focus-visible,
  #rk-timber-guide a:focus-visible,
  #rk-timber-guide summary:focus-visible {
    outline: 3px solid rgba(40, 201, 218, 0.42);
    outline-offset: 3px;
  }

  #rk-timber-guide .rk-timber-plan-wrap {
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f1f7fa);
  }

  #rk-timber-guide .rk-timber-plan {
    display: block;
    width: 100%;
    min-height: 330px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-plan .rk-timber-room {
    fill: #f7fbfd;
    stroke: var(--rk-dark);
    stroke-width: 3;
  }

  #rk-timber-guide .rk-timber-plan .rk-timber-zone {
    fill: rgba(255, 98, 56, 0.19);
    stroke: var(--rk-orange);
    stroke-width: 2;
    stroke-dasharray: 7 5;
  }

  #rk-timber-guide .rk-timber-plan .rk-timber-glazing {
    stroke: var(--rk-blue);
    stroke-width: 9;
    stroke-linecap: round;
  }

  #rk-timber-guide .rk-timber-plan .rk-timber-pipe-zone {
    fill: none;
    stroke: var(--rk-orange);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-timber-guide .rk-timber-plan .rk-timber-pipe-main {
    fill: none;
    stroke: var(--rk-cyan);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-timber-guide .rk-timber-plan text {
    fill: var(--rk-dark);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 13px;
    font-weight: 800;
  }

  #rk-timber-guide .rk-timber-plan-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.7rem;
    font-weight: 780;
  }

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

  #rk-timber-guide .rk-timber-plan-legend i {
    display: inline-block;
    width: 23px;
    height: 5px;
    border-radius: 999px;
    background: var(--rk-cyan);
  }

  #rk-timber-guide .rk-timber-plan-legend .zone i {
    background: var(--rk-orange);
  }

  #rk-timber-guide .rk-timber-plan-legend .glass i {
    background: var(--rk-blue);
  }

  #rk-timber-guide .rk-timber-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-timber-guide .rk-timber-metric {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-metric span,
  #rk-timber-guide .rk-timber-metric strong {
    display: block;
  }

  #rk-timber-guide .rk-timber-metric span {
    color: var(--rk-muted);
    font-size: 0.63rem;
    font-weight: 780;
    line-height: 1.35;
  }

  #rk-timber-guide .rk-timber-metric strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.05rem;
    line-height: 1.2;
  }

  #rk-timber-guide .rk-timber-status.is-warning {
    color: #7c321d;
    background: var(--rk-warm);
  }

  #rk-timber-guide .rk-timber-small {
    color: var(--rk-muted);
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-timber-guide .rk-timber-howto {
    display: grid;
    gap: 12px;
    margin: 25px 0;
    padding: 0;
    list-style: none;
  }

  #rk-timber-guide .rk-timber-howto-step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-howto-step > span {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 900;
  }

  #rk-timber-guide .rk-timber-howto-step h3,
  #rk-timber-guide .rk-timber-howto-step p {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-howto-step p {
    margin-top: 7px;
    font-size: 0.87rem;
  }

  #rk-timber-guide .rk-timber-faq-list {
    display: grid;
    gap: 10px;
  }

  #rk-timber-guide .rk-timber-faq {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

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

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

  #rk-timber-guide .rk-timber-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

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

  #rk-timber-guide .rk-timber-faq-answer {
    padding: 0 20px 19px;
  }

  #rk-timber-guide .rk-timber-faq-answer p {
    margin: 0;
    font-size: 0.88rem;
  }

  #rk-timber-guide .rk-timber-sources {
    margin-top: 28px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.76rem;
    line-height: 1.7;
  }

  #rk-timber-guide .rk-timber-sources > strong {
    display: block;
    margin-bottom: 8px;
  }

  #rk-timber-guide .rk-timber-cta {
    margin-top: 58px;
    padding: clamp(28px, 5vw, 48px);
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 12%, rgba(255, 98, 56, 0.3), transparent 33%),
      linear-gradient(135deg, #102536, #174155);
    box-shadow: 0 20px 45px rgba(16, 37, 54, 0.16);
  }

  #rk-timber-guide .rk-timber-cta h3,
  #rk-timber-guide .rk-timber-cta p,
  #rk-timber-guide .rk-timber-cta strong {
    color: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-cta p {
    max-width: 880px;
  }

  #rk-timber-guide .rk-timber-cta-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    margin-top: 7px;
    padding: 15px 24px;
    border-radius: 14px;
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, var(--rk-orange), #f04432);
    box-shadow: 0 14px 28px rgba(216, 60, 47, 0.24);
    font-size: 0.88rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none !important;
  }

  #rk-timber-guide .rk-timber-cta-link:hover {
    color: var(--rk-white) !important;
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

  #rk-timber-guide .rk-timber-cta small {
    display: block;
    margin-top: 14px;
    color: #bdd1da;
    font-size: 0.7rem;
    line-height: 1.5;
  }

  #rk-timber-guide .rk-timber-author-box {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-author-head {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    padding: 28px;
    color: var(--rk-white);
    border-bottom: 5px solid var(--rk-cyan);
    background: var(--rk-dark);
  }

  #rk-timber-guide .rk-timber-author-head h3,
  #rk-timber-guide .rk-timber-author-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-author-head p {
    margin-top: 6px;
    color: #cde0e7;
    font-size: 0.82rem;
  }

  #rk-timber-guide .rk-timber-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.35);
    border-radius: 13px;
    color: #84edf5;
    background: rgba(40, 201, 218, 0.08);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  #rk-timber-guide .rk-timber-author-main {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
  }

  #rk-timber-guide .rk-timber-author-profile {
    padding: 32px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-timber-guide .rk-timber-author-profile img {
    width: 174px;
    height: 174px;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 34px rgba(16, 37, 54, 0.14);
  }

  #rk-timber-guide .rk-timber-author-profile h4 {
    margin: 18px 0 7px;
    font-size: 1.36rem;
  }

  #rk-timber-guide .rk-timber-author-role {
    display: block;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.6;
    text-transform: uppercase;
  }

  #rk-timber-guide .rk-timber-author-content {
    min-width: 0;
    padding: 32px;
  }

  #rk-timber-guide .rk-timber-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 23px 23px 23px 61px;
    border-radius: 18px;
    background: var(--rk-cyan-soft);
  }

  #rk-timber-guide .rk-timber-quote::before {
    content: "“";
    position: absolute;
    top: 3px;
    left: 18px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 4rem;
    line-height: 1;
  }

  #rk-timber-guide .rk-timber-quote blockquote {
    margin: 0;
    color: var(--rk-dark);
    font-size: 1.03rem;
    font-style: italic;
    font-weight: 790;
    line-height: 1.7;
  }

  #rk-timber-guide .rk-timber-tab-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--rk-line);
    border-radius: 14px 14px 0 0;
    overflow: hidden;
  }

  #rk-timber-guide .rk-timber-tab-button {
    min-width: 0;
    padding: 13px 10px;
    border: 0;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: var(--rk-soft);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-timber-guide .rk-timber-tab-button:last-child {
    border-right: 0;
  }

  #rk-timber-guide .rk-timber-tab-button.is-active {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -4px 0 var(--rk-blue);
  }

  #rk-timber-guide .rk-timber-tab-panel {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 14px 14px;
  }

  #rk-timber-guide .rk-timber-tab-panel[hidden] {
    display: none !important;
  }

  #rk-timber-guide .rk-timber-tab-panel p {
    margin: 0;
    font-size: 0.86rem;
  }

  #rk-timber-guide .rk-timber-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
  }

  #rk-timber-guide .rk-timber-portals a {
    padding: 8px 12px;
    border: 1px solid #c8dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.75rem;
    text-decoration: none;
  }

  #rk-timber-guide .rk-timber-portals a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  @media (max-width: 1120px) {
    #rk-timber-guide .rk-timber-card-grid.four {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-timber-guide .rk-timber-architectures,
    #rk-timber-guide .rk-timber-card-grid.three {
      grid-template-columns: 1fr;
    }

    #rk-timber-guide .rk-timber-author-main {
      grid-template-columns: 260px minmax(0, 1fr);
    }
  }

  @media (max-width: 880px) {
    #rk-timber-guide {
      font-size: 17px;
    }

    #rk-timber-guide .rk-timber-lab-grid,
    #rk-timber-guide .rk-timber-author-main {
      grid-template-columns: 1fr;
    }

    #rk-timber-guide .rk-timber-controls,
    #rk-timber-guide .rk-timber-author-profile {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

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

    #rk-timber-guide .rk-timber-flow-step:last-child {
      grid-column: 1 / -1;
    }

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

  @media (max-width: 720px) {
    #rk-timber-guide {
      margin: 18px auto 50px;
      font-size: 16px;
    }

    #rk-timber-guide .rk-timber-shell {
      border-radius: 20px;
    }

    #rk-timber-guide .rk-timber-hero,
    #rk-timber-guide .rk-timber-content {
      padding: 25px 18px;
    }

    #rk-timber-guide .rk-timber-learn-grid,
    #rk-timber-guide .rk-timber-card-grid,
    #rk-timber-guide .rk-timber-card-grid.four,
    #rk-timber-guide .rk-timber-error-grid,
    #rk-timber-guide .rk-timber-check-grid,
    #rk-timber-guide .rk-timber-results {
      grid-template-columns: 1fr;
    }

    #rk-timber-guide .rk-timber-section {
      margin-top: 48px;
    }

    #rk-timber-guide .rk-timber-section-head {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
    }

    #rk-timber-guide .rk-timber-section-no {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

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

    #rk-timber-guide .rk-timber-table {
      border: 0;
      background: transparent;
    }

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

    #rk-timber-guide .rk-timber-table tr {
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 16px;
      overflow: hidden;
      background: var(--rk-white);
    }

    #rk-timber-guide .rk-timber-table td,
    #rk-timber-guide .rk-timber-table tr:last-child td {
      display: grid;
      grid-template-columns: minmax(105px, 0.42fr) minmax(0, 0.58fr);
      gap: 10px;
      padding: 13px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white) !important;
    }

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

    #rk-timber-guide .rk-timber-table td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-weight: 900;
    }

    #rk-timber-guide .rk-timber-chart {
      min-height: 265px;
    }

    #rk-timber-guide .rk-timber-plan {
      min-height: 265px;
    }

    #rk-timber-guide .rk-timber-metrics {
      grid-template-columns: 1fr;
    }

    #rk-timber-guide .rk-timber-howto-step {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
      padding: 16px;
    }

    #rk-timber-guide .rk-timber-howto-step > span {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-timber-guide .rk-timber-author-head {
      align-items: flex-start;
      flex-direction: column;
      padding: 22px;
    }

    #rk-timber-guide .rk-timber-author-content,
    #rk-timber-guide .rk-timber-author-profile {
      padding: 22px;
    }

    #rk-timber-guide .rk-timber-tab-buttons {
      grid-template-columns: 1fr;
    }

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

    #rk-timber-guide .rk-timber-tab-button:last-child {
      border-bottom: 0;
    }

    #rk-timber-guide .rk-timber-cta-link {
      width: 100%;
    }
  }

  #rk-timber-guide .rk-timber-program-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-timber-guide .rk-timber-program-button {
    min-height: 52px;
    padding: 12px 15px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 13px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1.35;
    cursor: pointer;
  }

  #rk-timber-guide .rk-timber-program-button:hover,
  #rk-timber-guide .rk-timber-program-button.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-timber-guide .rk-timber-program-panel[hidden] {
    display: none !important;
  }

  #rk-timber-guide .rk-timber-program-title {
    margin: 0 0 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-dark);
    font-size: 0.88rem;
    font-weight: 900;
  }

  #rk-timber-guide .rk-timber-select {
    width: 100%;
    min-height: 46px;
    padding: 10px 38px 10px 12px;
    border: 1px solid #bfd3dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background-color: var(--rk-white);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 760;
    cursor: pointer;
  }

  #rk-timber-guide .rk-timber-control-note {
    display: block;
    margin-top: 6px;
    color: var(--rk-muted);
    font-size: 0.66rem;
    line-height: 1.5;
  }

  #rk-timber-guide .rk-timber-estimate {
    position: relative;
    overflow: hidden;
    margin-bottom: 16px;
    padding: 25px;
    border-radius: 19px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 95% 0%, rgba(255, 98, 56, 0.31), transparent 36%),
      linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-timber-guide .rk-timber-estimate span,
  #rk-timber-guide .rk-timber-estimate strong,
  #rk-timber-guide .rk-timber-estimate small {
    display: block;
    color: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-estimate span {
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-timber-guide .rk-timber-estimate strong {
    margin-top: 7px;
    font-size: clamp(2rem, 5vw, 3.45rem);
    line-height: 1;
  }

  #rk-timber-guide .rk-timber-estimate small {
    max-width: 620px;
    margin-top: 12px;
    color: #cde0e7;
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-timber-guide .rk-timber-limit-bar {
    height: 12px;
    margin: 18px 0 8px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
  }

  #rk-timber-guide .rk-timber-limit-fill {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
    transition: width 220ms ease;
  }

  #rk-timber-guide .rk-timber-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
  }

  #rk-timber-guide .rk-timber-result-card {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-result-card span,
  #rk-timber-guide .rk-timber-result-card strong {
    display: block;
  }

  #rk-timber-guide .rk-timber-result-card span {
    color: var(--rk-muted);
    font-size: 0.65rem;
    font-weight: 760;
    line-height: 1.4;
  }

  #rk-timber-guide .rk-timber-result-card strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.05rem;
    line-height: 1.3;
  }

  #rk-timber-guide .rk-timber-status-list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #rk-timber-guide .rk-timber-status-list li {
    position: relative;
    margin: 7px 0;
    padding-left: 24px;
    color: var(--rk-text);
    font-size: 0.76rem;
    line-height: 1.55;
  }

  #rk-timber-guide .rk-timber-status-list li::before {
    content: "i";
    position: absolute;
    left: 0;
    top: 0.2em;
    display: grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.58rem;
    font-weight: 900;
  }

  #rk-timber-guide .rk-timber-status-list li.is-alert::before {
    content: "!";
    background: var(--rk-orange);
  }

  #rk-timber-guide .rk-timber-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0;
  }

  #rk-timber-guide .rk-timber-chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #c6dce5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-timber-guide .rk-timber-example-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-timber-guide .rk-timber-example {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 5px solid var(--rk-cyan);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-example:nth-child(2) {
    border-top-color: var(--rk-orange);
  }

  #rk-timber-guide .rk-timber-example:nth-child(3) {
    border-top-color: var(--rk-blue);
  }

  #rk-timber-guide .rk-timber-example h3,
  #rk-timber-guide .rk-timber-example p {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-example p {
    margin-top: 8px;
    font-size: 0.8rem;
    line-height: 1.6;
  }

  #rk-timber-guide .rk-timber-example code {
    display: block;
    margin-top: 14px;
    padding: 13px;
    border-radius: 11px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.75rem;
    line-height: 1.6;
    white-space: normal;
  }

  #rk-timber-guide .rk-timber-verdict {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(220px, 0.75fr);
    gap: 22px;
    align-items: center;
    margin: 26px 0;
    padding: 26px;
    border: 1px solid #f0c7b8;
    border-radius: 22px;
    background: var(--rk-warm);
  }

  #rk-timber-guide .rk-timber-verdict h3,
  #rk-timber-guide .rk-timber-verdict p {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-verdict p {
    margin-top: 8px;
  }

  #rk-timber-guide .rk-timber-verdict-mark {
    padding: 22px;
    border-radius: 17px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-orange), var(--rk-red));
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1.2;
    text-align: center;
  }

  @media (max-width: 980px) {
    #rk-timber-guide .rk-timber-example-grid,
    #rk-timber-guide .rk-timber-verdict {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 720px) {
    #rk-timber-guide .rk-timber-program-switch,
    #rk-timber-guide .rk-timber-result-grid {
      grid-template-columns: 1fr;
    }
  }

  /* Elementy charakterystyczne dla opracowania o drewnianym stropie */
  #rk-timber-guide .rk-timber-term-grid,
  #rk-timber-guide .rk-timber-phase-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-timber-guide .rk-timber-term,
  #rk-timber-guide .rk-timber-phase {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-timber-guide .rk-timber-term b,
  #rk-timber-guide .rk-timber-phase b {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 0.96rem;
  }

  #rk-timber-guide .rk-timber-term p,
  #rk-timber-guide .rk-timber-phase p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.62;
  }

  #rk-timber-guide .rk-timber-phase {
    position: relative;
    padding-top: 55px;
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-phase::before {
    content: attr(data-step);
    position: absolute;
    top: 17px;
    left: 20px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 9px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.7rem;
    font-weight: 900;
  }

  #rk-timber-guide .rk-timber-lab-grid {
    grid-template-columns: minmax(300px, 0.88fr) minmax(0, 1.5fr);
  }

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

  #rk-timber-guide .rk-timber-input-grid .rk-timber-control {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-cross-wrap {
    display: grid;
    grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.1fr);
    gap: 16px;
    margin-top: 17px;
  }

  #rk-timber-guide .rk-timber-cross-card,
  #rk-timber-guide .rk-timber-energy-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f2f8fa);
  }

  #rk-timber-guide .rk-timber-cross-title,
  #rk-timber-guide .rk-timber-energy-title {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-timber-guide .rk-timber-cross {
    display: block;
    width: 100%;
    min-height: 250px;
    border-radius: 12px;
    background: #fff;
  }

  #rk-timber-guide .rk-timber-cross text,
  #rk-timber-guide .rk-timber-energy-chart text {
    fill: #506777;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
    font-weight: 760;
  }

  #rk-timber-guide .rk-timber-cross .rk-timber-layer-floor {
    fill: #d9e3e7;
  }

  #rk-timber-guide .rk-timber-cross .rk-timber-layer-timber {
    fill: #c6d0d5;
  }

  #rk-timber-guide .rk-timber-cross .rk-timber-layer-insulation {
    fill: #eafcff;
    stroke: #28c9da;
    stroke-width: 1.5;
  }

  #rk-timber-guide .rk-timber-cross .rk-timber-pipe {
    fill: #ff6238;
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-timber-guide .rk-timber-cross .rk-timber-dimension {
    stroke: #078fbe;
    stroke-width: 2;
    marker-start: url(#rk-timber-arrow-start);
    marker-end: url(#rk-timber-arrow-end);
  }

  #rk-timber-guide .rk-timber-energy-chart {
    display: block;
    width: 100%;
    min-height: 250px;
    border-radius: 12px;
    background: #fff;
  }

  #rk-timber-guide .rk-timber-energy-chart .rk-timber-bar {
    fill: url(#rk-timber-bar-gradient);
  }

  #rk-timber-guide .rk-timber-energy-chart .rk-timber-axis-line {
    stroke: #c8d9e1;
    stroke-width: 1;
  }

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

  #rk-timber-guide .rk-timber-result.is-accent {
    border-color: #b6e9ef;
    background: var(--rk-cyan-soft);
  }

  #rk-timber-guide .rk-timber-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 14px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.67rem;
    font-weight: 760;
  }

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

  #rk-timber-guide .rk-timber-legend i {
    display: inline-block;
    width: 20px;
    height: 7px;
    border-radius: 999px;
    background: #c6d0d5;
  }

  #rk-timber-guide .rk-timber-legend .pipe i {
    background: var(--rk-orange);
  }

  #rk-timber-guide .rk-timber-legend .insulation i {
    background: var(--rk-cyan);
  }

  #rk-timber-guide .rk-timber-protocol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
  }

  #rk-timber-guide .rk-timber-protocol-step {
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-timber-guide .rk-timber-protocol-step span {
    display: inline-flex;
    margin-bottom: 11px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-timber-guide .rk-timber-protocol-step h3,
  #rk-timber-guide .rk-timber-protocol-step p {
    margin: 0;
  }

  #rk-timber-guide .rk-timber-protocol-step p {
    margin-top: 7px;
    font-size: 0.8rem;
  }

  @media (max-width: 1120px) {
    #rk-timber-guide .rk-timber-term-grid,
    #rk-timber-guide .rk-timber-phase-grid,
    #rk-timber-guide .rk-timber-protocol {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-timber-guide .rk-timber-cross-wrap {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 880px) {
    #rk-timber-guide .rk-timber-lab-grid {
      grid-template-columns: 1fr;
    }

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

  @media (max-width: 720px) {
    #rk-timber-guide .rk-timber-term-grid,
    #rk-timber-guide .rk-timber-phase-grid,
    #rk-timber-guide .rk-timber-protocol,
    #rk-timber-guide .rk-timber-input-grid,
    #rk-timber-guide .rk-timber-results {
      grid-template-columns: 1fr;
    }

    #rk-timber-guide .rk-timber-cross,
    #rk-timber-guide .rk-timber-energy-chart {
      min-height: 215px;
    }
  }

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

<article id="rk-timber-guide" itemscope itemtype="https://schema.org/TechArticle">
  <meta itemprop="mainEntityOfPage" content="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">
  <meta itemprop="inLanguage" content="pl-PL">
  <meta itemprop="dateModified" content="2026-08-25">

  <div class="rk-timber-shell">
    <div class="rk-timber-progress-track" aria-hidden="true"><div class="rk-timber-progress"></div></div>

    <header class="rk-timber-hero">
      <div class="rk-timber-badge">Drewniany strop • analiza konstrukcyjna i cieplna</div>
      <h2 itemprop="headline">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? <span>System suchy, ciężar i poprawne warstwy</span></h2>
      <div class="rk-timber-hook">
        <p><strong>Tak — wodne ogrzewanie podłogowe można wykonać na drewnianym stropie, ale nie wolno traktować samego słowa „system suchy” jak potwierdzenia bezpieczeństwa.</strong> Najpierw trzeba sprawdzić konstrukcję, dopuszczalne dodatkowe obciążenie stałe, ugięcia i drgania, a równolegle policzyć wymaganą moc grzewczą, opór okładziny oraz hydraulikę pętli.</p>
      </div>
      <p class="rk-timber-hero-lead" itemprop="description">Ten poradnik oddziela trzy różne zagadnienia: drewnianą konstrukcję stropu, warstwy suchej podłogówki oraz drewniane wykończenie podłogi. Pokazuje warianty montażu nad poszyciem i między belkami, porównuje ich masę z mokrym jastrychem, wyjaśnia wymagania akustyczne i wilgotnościowe oraz udostępnia interaktywne laboratorium do wstępnej kontroli ciężaru i bilansu mocy.</p>
      <div class="rk-timber-hero-meta">
        <span>Autor: Robert Kucharski</span>
        <span>Aktualizacja: 25 sierpnia 2026 r.</span>
        <span>Bez obietnic „pasuje do każdego stropu”</span>
      </div>
      <div class="rk-timber-author-strip" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych i specjalista HVAC" width="54" height="54" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">CEO • specjalista HVAC i ogrzewania podłogowego</small>
        </div>
      </div>
    </header>

    <div class="rk-timber-content">
      <div class="rk-timber-warning">
        <p><strong>Granica odpowiedzialności:</strong> ten materiał pomaga uporządkować decyzje, ale nie ocenia konkretnego stropu. Nośność, stan drewna, ugięcie, drgania, połączenia, podpory oraz dopuszczalny przyrost obciążenia musi sprawdzić konstruktor na podstawie inwentaryzacji i obliczeń. Projektant instalacji weryfikuje natomiast moc podłogi, temperaturę wody, rozstaw, długość pętli, przepływy i opory hydrauliczne.</p>
      </div>

      <div class="rk-timber-learn" aria-label="Zakres artykułu">
        <strong>Po lekturze będziesz wiedzieć:</strong>
        <div class="rk-timber-learn-grid">
          <div class="rk-timber-learn-card"><div class="rk-timber-no">01</div><div><h4>Co musi sprawdzić konstruktor</h4><p>Dlaczego rozpiętość, przekrój i rozstaw belek nie wystarczą bez oceny drewna, podparcia, ugięć i drgań.</p></div></div>
          <div class="rk-timber-learn-card"><div class="rk-timber-no">02</div><div><h4>Który wariant warstw ma sens</h4><p>Kiedy rozważać system suchy nad poszyciem, montaż między belkami albo cięższy układ mokry.</p></div></div>
          <div class="rk-timber-learn-card"><div class="rk-timber-no">03</div><div><h4>Czy podłoga odda potrzebną moc</h4><p>Jak połączyć obciążenie cieplne pomieszczenia, opór wykończenia i deklarowaną wydajność systemu.</p></div></div>
          <div class="rk-timber-learn-card"><div class="rk-timber-no">04</div><div><h4>Jak uniknąć skrzypienia i pęknięć</h4><p>Co łączy sztywność poszycia, akustykę, szczeliny, wilgotność drewna i poprawne przejścia rur.</p></div></div>
        </div>
      </div>

      <nav class="rk-timber-nav" aria-label="Nawigacja po artykule">
        <strong>Przejdź do sekcji</strong>
        <div class="rk-timber-nav-links">
          <a href="#rk-timber-odpowiedz">Szybka odpowiedź</a>
          <a href="#rk-timber-konstrukcja">Konstrukcja stropu</a>
          <a href="#rk-timber-warianty">Trzy warianty</a>
          <a href="#rk-timber-ciezar">Ciężar warstw</a>
          <a href="#rk-timber-laboratorium">Laboratorium</a>
          <a href="#rk-timber-moc">Moc cieplna</a>
          <a href="#rk-timber-okladzina">Okładzina</a>
          <a href="#rk-timber-akustyka">Akustyka i wilgoć</a>
          <a href="#rk-timber-hydraulika">Hydraulika</a>
          <a href="#rk-timber-pomieszczenia">Pomieszczenia</a>
          <a href="#rk-timber-kroki">Krok po kroku</a>
          <a href="#rk-timber-bledy">Błędy</a>
          <a href="#rk-timber-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-timber-section" id="rk-timber-odpowiedz" aria-labelledby="rk-timber-h2-1">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">01</div>
          <div><h2 id="rk-timber-h2-1">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? Najkrótsza poprawna odpowiedź</h2><p>Tak, jeśli konstrukcja i instalacja zostaną sprawdzone jako jeden układ.</p></div>
        </div>

        <div class="rk-timber-answer">
          <p><strong>Ogrzewanie podłogowe na drewnianym stropie jest rozwiązaniem technicznie możliwym zarówno w nowym budynku, jak i podczas modernizacji.</strong> Najczęściej wybiera się lekki system suchy, ponieważ ogranicza dodatkową masę i nie wymaga wykonywania tradycyjnego jastrychu. Nie oznacza to jednak, że można ułożyć dowolne płyty na dowolnych belkach. O powodzeniu decydują nośność i użytkowalność stropu, sztywność podłoża, poprawne rozprowadzenie ciepła, dopuszczalna temperatura okładziny, akustyka oraz projekt hydrauliczny.</p>
        </div>

        <div class="rk-timber-card-grid three">
          <div class="rk-timber-card"><div class="rk-timber-card-icon">K</div><h4>Konstrukcja</h4><p>Konstruktor określa, czy strop może bezpiecznie przejąć ciężar nowych warstw oraz czy ugięcia i drgania pozostaną dopuszczalne.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">T</div><h4>Termika</h4><p>Projektant sprawdza, czy powierzchnia podłogi przy założonej temperaturze wody pokryje obciążenie cieplne pomieszczenia.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">W</div><h4>Warstwy</h4><p>Poszycie, elementy rozprowadzające ciepło, płyty suchego jastrychu i okładzina muszą tworzyć kompatybilny system.</p></div>
        </div>

        <div class="rk-timber-verdict">
          <div><h3>Najważniejszy wniosek dla inwestora</h3><p>„Sucha podłogówka” opisuje sposób budowy warstwy grzejnej, a nie stan techniczny drewnianego stropu. Lekki układ może być bardzo dobrym wyborem, lecz bezpieczeństwo potwierdza dopiero sprawdzenie konstrukcji i dokumentacji całego zestawu.</p></div>
          <div class="rk-timber-verdict-mark">System suchy często pomaga — nie zwalnia z obliczeń</div>
        </div>
      </section>

      <section class="rk-timber-section" id="rk-timber-konstrukcja" aria-labelledby="rk-timber-h2-2">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">02</div>
          <div><h2 id="rk-timber-h2-2">Drewniany strop, drewniana podłoga i system suchy to trzy różne rzeczy</h2><p>Ich pomieszanie prowadzi do pozornie prostych, ale błędnych porad.</p></div>
        </div>

        <div class="rk-timber-term-grid">
          <div class="rk-timber-term"><b>Drewniany strop</b><p>Konstrukcja nośna z belek, żeber albo elementów inżynierskich, oparta na ścianach lub podciągach. Musi przenieść obciążenia i zachować wymaganą sztywność.</p></div>
          <div class="rk-timber-term"><b>System suchej podłogówki</b><p>Warstwa grzejna bez tradycyjnego mokrego jastrychu: rury, płyty profilowane lub frezowane, elementy przewodzące ciepło i suche płyty rozkładające obciążenie.</p></div>
          <div class="rk-timber-term"><b>Drewniane wykończenie</b><p>Parkiet, deska lub warstwa drewnopochodna leżąca nad systemem. Jej opór cieplny, wilgotność i dopuszczalna temperatura są osobnym zagadnieniem.</p></div>
        </div>

        <h3>Co konstruktor powinien zweryfikować?</h3>
        <div class="rk-timber-check-grid">
          <div class="rk-timber-check"><div class="rk-timber-check-no">1</div><div><h4>Geometrię i schemat statyczny</h4><p>Przekrój, rozstaw i rzeczywistą rozpiętość belek, rodzaj podparcia, ciągłość elementów, otwory oraz strefy osłabień.</p></div></div>
          <div class="rk-timber-check"><div class="rk-timber-check-no">2</div><div><h4>Materiał i stan techniczny</h4><p>Gatunek lub klasa drewna, wilgotność, spękania, ubytki, korozję biologiczną, stan połączeń i ewentualne wcześniejsze przeróbki.</p></div></div>
          <div class="rk-timber-check"><div class="rk-timber-check-no">3</div><div><h4>Obciążenia stałe i użytkowe</h4><p>Istniejące warstwy, ścianki, instalacje i sufit oraz ciężar nowego systemu, wykończenia i wyposażenia.</p></div></div>
          <div class="rk-timber-check"><div class="rk-timber-check-no">4</div><div><h4>Ugięcia i drgania</h4><p>Strop może spełniać warunek wytrzymałości, a nadal być zbyt podatny dla kruchej okładziny albo odczuwalnie drgać podczas chodzenia.</p></div></div>
        </div>

        <p>Projektowanie konstrukcji drewnianych obejmuje nie tylko graniczny stan nośności, lecz także użytkowalność. Pomocnym punktem odniesienia jest <a href="https://eurocodes.jrc.ec.europa.eu/publications/manual-design-timber-buildings-structures-eurocode-5" target="_blank" rel="noopener noreferrer">podręcznik JRC do projektowania konstrukcji drewnianych według Eurokodu 5</a>. W istniejącym domu obliczenia powinny być poprzedzone odkrywkami i pomiarami, a nie oparte na domniemaniu, że belki mają przekrój widoczny na starym rysunku.</p>

        <div class="rk-timber-truth"><p><strong>Nie wycinaj ani nie przewiercaj belek pod rury bez rozwiązania konstrukcyjnego.</strong> Trasy zasilania i powrotu trzeba zaplanować tak, aby nie osłabić elementów nośnych. Dopuszczalne otwory zależą od rodzaju belki, miejsca na jej długości, rozmiaru otworu i zaleceń projektanta konstrukcji.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-warianty" aria-labelledby="rk-timber-h2-3">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">03</div>
          <div><h2 id="rk-timber-h2-3">Trzy warianty ogrzewania podłogowego na drewnianym stropie</h2><p>Różnią się wysokością, masą, bezwładnością i wymaganiami wobec podłoża.</p></div>
        </div>

        <div class="rk-timber-architectures">
          <div class="rk-timber-architecture">
            <span>Wariant A • najczęstszy</span>
            <h3>System suchy nad poszyciem</h3>
            <div class="rk-timber-nodes" aria-label="Warstwy systemu suchego nad poszyciem">
              <div class="rk-timber-node">Okładzina podłogowa</div>
              <div class="rk-timber-node">Płyta rozkładająca obciążenie</div>
              <div class="rk-timber-node">Rura i element przewodzący ciepło</div>
              <div class="rk-timber-node">Sztywne poszycie konstrukcyjne</div>
              <div class="rk-timber-node">Belki stropowe</div>
            </div>
            <p><strong>Zalety:</strong> mała masa, niewielka bezwładność i czytelna ciągłość warstw. <strong>Warunek:</strong> odpowiednio sztywne, równe i stabilne poszycie.</p>
          </div>

          <div class="rk-timber-architecture">
            <span>Wariant B • niska zabudowa</span>
            <h3>Rury między belkami lub legarami</h3>
            <div class="rk-timber-nodes" aria-label="Warstwy ogrzewania między belkami">
              <div class="rk-timber-node">Posadzka i warstwa nośna</div>
              <div class="rk-timber-node">Elementy rozpraszające ciepło</div>
              <div class="rk-timber-node">Rury w przestrzeni między belkami</div>
              <div class="rk-timber-node">Izolacja pod rurami</div>
              <div class="rk-timber-node">Sufit niższej kondygnacji</div>
            </div>
            <p><strong>Podłogówka między belkami stropowymi</strong> ogranicza przyrost wysokości. <strong>Ryzyko:</strong> trudniejszy serwis, mostki cieplne, nierównomierne przekazywanie ciepła i kolizje z konstrukcją.</p>
          </div>

          <div class="rk-timber-architecture">
            <span>Wariant C • tylko po sprawdzeniu</span>
            <h3>Lekki układ mokry lub jastrych</h3>
            <div class="rk-timber-nodes" aria-label="Warstwy systemu z mokrym jastrychem">
              <div class="rk-timber-node">Okładzina</div>
              <div class="rk-timber-node">Jastrych grzejny</div>
              <div class="rk-timber-node">Rury ogrzewania podłogowego</div>
              <div class="rk-timber-node">Warstwa rozdzielająca i izolacja</div>
              <div class="rk-timber-node">Poszycie na belkach</div>
            </div>
            <p><strong>Zalety:</strong> duża masa i równomierne rozprowadzanie ciepła. <strong>Ryzyko:</strong> wysoki ciężar, wilgoć technologiczna i odmienna praca drewna oraz jastrychu.</p>
          </div>
        </div>

        <h3>Schematy przekrojów — jak czytać układ warstw?</h3>
        <div class="rk-timber-example-grid">
          <div class="rk-timber-example">
            <h3>A. Nad poszyciem</h3>
            <svg class="rk-timber-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-svg-a-title rk-svg-a-desc">
              <title id="rk-svg-a-title">Sucha podłogówka nad poszyciem drewnianego stropu</title>
              <desc id="rk-svg-a-desc">Schemat pokazuje okładzinę, suche płyty, rurę z elementem przewodzącym, poszycie i belki.</desc>
              <rect x="22" y="24" width="316" height="22" rx="4" fill="#d8c0a1"></rect>
              <rect x="22" y="49" width="316" height="33" rx="4" fill="#d9e3e7"></rect>
              <rect x="22" y="85" width="316" height="48" rx="4" fill="#eafcff" stroke="#28c9da"></rect>
              <path d="M38 110 H322" stroke="#ff6238" stroke-width="9" stroke-linecap="round"></path>
              <rect x="22" y="136" width="316" height="25" rx="3" fill="#b87b45"></rect>
              <rect x="42" y="164" width="38" height="66" fill="#9c6235"></rect><rect x="161" y="164" width="38" height="66" fill="#9c6235"></rect><rect x="280" y="164" width="38" height="66" fill="#9c6235"></rect>
              <text x="180" y="39" text-anchor="middle">okładzina</text><text x="180" y="70" text-anchor="middle">płyty suche</text><text x="180" y="103" text-anchor="middle">system grzejny</text><text x="180" y="154" text-anchor="middle">poszycie</text><text x="180" y="207" text-anchor="middle">belki</text>
            </svg>
            <p>Najłatwiej kontrolować ciągłość warstw i rozkład obciążeń, lecz trzeba uwzględnić wzrost poziomu podłogi.</p>
          </div>

          <div class="rk-timber-example">
            <h3>B. Między belkami</h3>
            <svg class="rk-timber-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-svg-b-title rk-svg-b-desc">
              <title id="rk-svg-b-title">Ogrzewanie podłogowe między belkami stropowymi</title>
              <desc id="rk-svg-b-desc">Schemat pokazuje posadzkę i poszycie nad rurami umieszczonymi między belkami z izolacją od dołu.</desc>
              <rect x="22" y="25" width="316" height="22" rx="4" fill="#d8c0a1"></rect>
              <rect x="22" y="50" width="316" height="29" rx="3" fill="#b87b45"></rect>
              <rect x="36" y="82" width="38" height="128" fill="#9c6235"></rect><rect x="161" y="82" width="38" height="128" fill="#9c6235"></rect><rect x="286" y="82" width="38" height="128" fill="#9c6235"></rect>
              <path d="M85 107 H150 M210 107 H275" stroke="#8faab5" stroke-width="17" stroke-linecap="round"></path>
              <path d="M85 107 H150 M210 107 H275" stroke="#ff6238" stroke-width="8" stroke-linecap="round"></path>
              <rect x="77" y="126" width="80" height="76" fill="#eafcff" stroke="#28c9da"></rect><rect x="202" y="126" width="80" height="76" fill="#eafcff" stroke="#28c9da"></rect>
              <rect x="22" y="213" width="316" height="20" rx="3" fill="#d9e3e7"></rect>
              <text x="180" y="41" text-anchor="middle">okładzina</text><text x="180" y="70" text-anchor="middle">poszycie</text><text x="180" y="103" text-anchor="middle">rury i lamele</text><text x="180" y="170" text-anchor="middle">izolacja</text><text x="180" y="228" text-anchor="middle">sufit</text>
            </svg>
            <p>Ogranicza wysokość zabudowy, ale wymaga szczególnie dobrego kontaktu cieplnego i bezpiecznych tras bez naruszania belek.</p>
          </div>

          <div class="rk-timber-example">
            <h3>C. Układ mokry</h3>
            <svg class="rk-timber-cross" viewBox="0 0 360 250" role="img" aria-labelledby="rk-svg-c-title rk-svg-c-desc">
              <title id="rk-svg-c-title">Mokry system ogrzewania podłogowego na stropie drewnianym</title>
              <desc id="rk-svg-c-desc">Schemat pokazuje ciężki jastrych z rurą nad izolacją i poszyciem opartym na belkach.</desc>
              <rect x="22" y="23" width="316" height="20" rx="4" fill="#d8c0a1"></rect>
              <rect x="22" y="46" width="316" height="83" rx="3" fill="#c9d1d5"></rect>
              <circle cx="180" cy="96" r="14" fill="#ff6238" stroke="#fff" stroke-width="4"></circle>
              <rect x="22" y="132" width="316" height="32" fill="#eafcff" stroke="#28c9da"></rect>
              <rect x="22" y="167" width="316" height="23" fill="#b87b45"></rect>
              <rect x="42" y="193" width="38" height="40" fill="#9c6235"></rect><rect x="161" y="193" width="38" height="40" fill="#9c6235"></rect><rect x="280" y="193" width="38" height="40" fill="#9c6235"></rect>
              <text x="180" y="38" text-anchor="middle">okładzina</text><text x="180" y="75" text-anchor="middle">jastrych</text><text x="203" y="101">rura</text><text x="180" y="153" text-anchor="middle">izolacja</text><text x="180" y="184" text-anchor="middle">poszycie</text><text x="180" y="222" text-anchor="middle">belki</text>
            </svg>
            <p>Nie jest zakazany z definicji, ale wymaga sprawdzenia masy, wilgoci technologicznej, ugięć i połączenia materiałów o różnej pracy.</p>
          </div>
        </div>

        <p>Jeżeli potrzebujesz ogólnego porównania technologii, przeczytaj osobno: <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy w wodnym ogrzewaniu podłogowym</a> oraz <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">jak działa wodne ogrzewanie podłogowe bez wylewki</a>. Niniejszy artykuł pozostaje skupiony na wymaganiach drewnianego stropu.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-ciezar" aria-labelledby="rk-timber-h2-4">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">04</div>
          <div><h2 id="rk-timber-h2-4">Ile waży podłogówka na drewnianym stropie?</h2><p>Najważniejsza jest suma wszystkich dodawanych warstw, nie masa samej rury.</p></div>
        </div>

        <div class="rk-timber-formula">
          <p><strong>Bilans dodatkowego obciążenia stałego:</strong></p>
          <code>gₖ,dod = gₖ,systemu grzejnego + gₖ,płyt + gₖ,okładziny + gₖ,warstw pomocniczych</code>
          <p><strong>Dla warstwy mokrej:</strong> masa na 1 m² = grubość [m] × gęstość [kg/m³]. Przykładowo 60 mm materiału o gęstości 2000 kg/m³ daje około 120 kg/m², zanim doliczy się okładzinę i pozostałe warstwy.</p>
        </div>

        <div class="rk-timber-table-wrap">
          <table class="rk-timber-table">
            <thead><tr><th>Składnik</th><th>Co trzeba ustalić</th><th>Dlaczego nie podaję jednej masy</th><th>Dokument źródłowy</th></tr></thead>
            <tbody>
              <tr><td data-label="Składnik"><strong>System grzejny</strong></td><td data-label="Ustalenie">Płyty profilowane, lamele, rura, elementy mocujące</td><td data-label="Dlaczego">Masa zależy od materiału, grubości i udziału metalu</td><td data-label="Dokument">Karta techniczna zestawu</td></tr>
              <tr><td data-label="Składnik"><strong>Warstwa nośna</strong></td><td data-label="Ustalenie">Liczba, grubość i gęstość płyt, układ spoin</td><td data-label="Dlaczego">Jedna i dwie warstwy mogą różnić się masą oraz sztywnością</td><td data-label="Dokument">Projekt warstw i deklaracja płyt</td></tr>
              <tr><td data-label="Składnik"><strong>Okładzina</strong></td><td data-label="Ustalenie">Materiał, grubość, klej lub podkład</td><td data-label="Dlaczego">Płytki, deska i wykładzina mają różną masę i opór cieplny</td><td data-label="Dokument">Karta posadzki i chemii</td></tr>
              <tr><td data-label="Składnik"><strong>Warstwy pomocnicze</strong></td><td data-label="Ustalenie">Maty akustyczne, membrany, podsypki, wyrównanie</td><td data-label="Dlaczego">Drobne składniki sumują się na całej powierzchni</td><td data-label="Dokument">Zestawienie materiałów</td></tr>
              <tr><td data-label="Składnik"><strong>Wariant mokry</strong></td><td data-label="Ustalenie">Grubość, gęstość i zbrojenie jastrychu</td><td data-label="Dlaczego">Niewielka zmiana grubości daje duży przyrost masy</td><td data-label="Dokument">Projekt i karta jastrychu</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-timber-note"><p><strong>Nie porównuj wyniku tylko z „nośnością stropu” podaną w kg/m².</strong> Konstruktor rozdziela obciążenia stałe i użytkowe, sprawdza kombinacje, ugięcia oraz drgania. Limit dodatkowego obciążenia stałego użyty w laboratorium poniżej musi pochodzić właśnie od niego.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-laboratorium" aria-labelledby="rk-timber-h2-5">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">05</div>
          <div><h2 id="rk-timber-h2-5">Laboratorium drewnianego stropu: ciężar, moc i opór okładziny</h2><p>Narzędzie porządkuje dane wejściowe — nie oblicza nośności belek.</p></div>
        </div>

        <div class="rk-timber-lab" data-rk-timber-lab>
          <div class="rk-timber-lab-head">
            <h3>Wstępna kontrola wariantu podłogi</h3>
            <p>Wybierz przykład lub ustaw własne parametry. Limit obciążenia musi pochodzić z oceny konstruktora, a wydajność cieplna z obliczeń lub wiarygodnych danych konkretnego systemu.</p>
            <div class="rk-timber-presets" aria-label="Przykładowe warianty warstw">
              <button class="rk-timber-preset is-active" type="button" data-timber-preset="dry">Suchy nad poszyciem</button>
              <button class="rk-timber-preset" type="button" data-timber-preset="between">Między belkami</button>
              <button class="rk-timber-preset" type="button" data-timber-preset="wet">Mokry — porównanie</button>
            </div>
          </div>

          <div class="rk-timber-lab-grid">
            <div class="rk-timber-controls">
              <div class="rk-timber-input-grid">
                <div class="rk-timber-control"><label for="rk-timber-area">Powierzchnia pomieszczenia <output id="rk-timber-area-out">24 m²</output></label><input id="rk-timber-area" type="range" min="6" max="100" step="1" value="24"></div>
                <div class="rk-timber-control"><label for="rk-timber-heating">Warstwa grzejna <output id="rk-timber-heating-out">10 kg/m²</output></label><input id="rk-timber-heating" type="range" min="2" max="140" step="1" value="10"></div>
                <div class="rk-timber-control"><label for="rk-timber-overlay">Płyty rozkładające obciążenie <output id="rk-timber-overlay-out">22 kg/m²</output></label><input id="rk-timber-overlay" type="range" min="0" max="80" step="1" value="22"></div>
                <div class="rk-timber-control"><label for="rk-timber-finish-weight">Okładzina z klejem lub podkładem <output id="rk-timber-finish-weight-out">12 kg/m²</output></label><input id="rk-timber-finish-weight" type="range" min="2" max="45" step="1" value="12"></div>
                <div class="rk-timber-control"><label for="rk-timber-other">Pozostałe nowe warstwy <output id="rk-timber-other-out">4 kg/m²</output></label><input id="rk-timber-other" type="range" min="0" max="50" step="1" value="4"></div>
                <div class="rk-timber-control"><label for="rk-timber-limit">Limit od konstruktora <output id="rk-timber-limit-out">65 kg/m²</output></label><input id="rk-timber-limit" type="range" min="20" max="220" step="5" value="65"><small class="rk-timber-control-note">To nie jest wartość domyślna dla stropów — wpisz limit z obliczeń konkretnej konstrukcji.</small></div>
                <div class="rk-timber-control"><label for="rk-timber-demand">Wymagana moc pomieszczenia <output id="rk-timber-demand-out">55 W/m²</output></label><input id="rk-timber-demand" type="range" min="20" max="140" step="1" value="55"></div>
                <div class="rk-timber-control"><label for="rk-timber-output">Deklarowana moc systemu <output id="rk-timber-output-out">70 W/m²</output></label><input id="rk-timber-output" type="range" min="20" max="140" step="1" value="70"></div>
                <div class="rk-timber-control"><label for="rk-timber-finish-thickness">Grubość okładziny <output id="rk-timber-finish-thickness-out">12 mm</output></label><input id="rk-timber-finish-thickness" type="range" min="3" max="30" step="1" value="12"></div>
                <div class="rk-timber-control"><label for="rk-timber-lambda">Przewodność okładziny λ <output id="rk-timber-lambda-out">0,18 W/mK</output></label><input id="rk-timber-lambda" type="range" min="0.05" max="2.50" step="0.01" value="0.18"></div>
              </div>
              <div class="rk-timber-status" id="rk-timber-lab-status" aria-live="polite">Wariant mieści się w zadanym limicie i ma dodatni bilans mocy — oba wyniki wymagają potwierdzenia dokumentacją.</div>
            </div>

            <div class="rk-timber-visual">
              <div class="rk-timber-estimate">
                <span>Łączny ciężar dodawanych warstw</span>
                <strong id="rk-timber-total-result">48 kg/m²</strong>
                <small id="rk-timber-total-room">Dla 24 m² oznacza około 1152 kg dodatkowej masy rozłożonej powierzchniowo.</small>
                <div class="rk-timber-limit-bar" role="img" aria-label="Wykorzystanie limitu dodatkowego obciążenia"><div class="rk-timber-limit-fill" id="rk-timber-limit-fill"></div></div>
              </div>

              <div class="rk-timber-results" aria-live="polite">
                <div class="rk-timber-result is-accent"><span>Rezerwa obciążenia</span><strong id="rk-timber-load-margin">17 kg/m²</strong></div>
                <div class="rk-timber-result"><span>Wykorzystanie limitu</span><strong id="rk-timber-load-use">74%</strong></div>
                <div class="rk-timber-result"><span>Opór samej okładziny</span><strong id="rk-timber-r-result">0,067 m²K/W</strong></div>
                <div class="rk-timber-result"><span>Rezerwa mocy</span><strong id="rk-timber-power-margin">15 W/m²</strong></div>
                <div class="rk-timber-result"><span>Potrzebna moc w pokoju</span><strong id="rk-timber-room-need">1,32 kW</strong></div>
                <div class="rk-timber-result"><span>Deklarowana moc w pokoju</span><strong id="rk-timber-room-output">1,68 kW</strong></div>
                <div class="rk-timber-result"><span>Porównanie z 120 kg/m²</span><strong id="rk-timber-wet-saving">72 kg/m² mniej</strong></div>
                <div class="rk-timber-result"><span>Ocena robocza</span><strong id="rk-timber-verdict-result">Do weryfikacji</strong></div>
              </div>

              <div class="rk-timber-cross-wrap">
                <div class="rk-timber-cross-card">
                  <span class="rk-timber-cross-title" id="rk-timber-cross-label">Dynamiczny przekrój: system suchy nad poszyciem</span>
                  <svg class="rk-timber-cross" viewBox="0 0 420 300" role="img" aria-labelledby="rk-timber-lab-svg-title rk-timber-lab-svg-desc">
                    <title id="rk-timber-lab-svg-title">Dynamiczny przekrój warstw ogrzewania podłogowego na stropie drewnianym</title>
                    <desc id="rk-timber-lab-svg-desc">Schemat pokazuje okładzinę, płyty, warstwę grzejną, poszycie i belki. Wysokości są poglądowe.</desc>
                    <rect id="rk-timber-svg-finish" x="34" y="34" width="352" height="28" rx="5" fill="#d8c0a1"></rect>
                    <rect id="rk-timber-svg-overlay" x="34" y="66" width="352" height="42" rx="4" fill="#d9e3e7"></rect>
                    <rect id="rk-timber-svg-heating" x="34" y="112" width="352" height="55" rx="4" fill="#eafcff" stroke="#28c9da" stroke-width="2"></rect>
                    <path id="rk-timber-svg-pipe" d="M54 140 H366" stroke="#ff6238" stroke-width="10" stroke-linecap="round"></path>
                    <rect x="34" y="171" width="352" height="28" rx="3" fill="#b87b45"></rect>
                    <rect x="55" y="203" width="46" height="65" fill="#9c6235"></rect><rect x="187" y="203" width="46" height="65" fill="#9c6235"></rect><rect x="319" y="203" width="46" height="65" fill="#9c6235"></rect>
                    <text id="rk-timber-svg-finish-text" x="210" y="53" text-anchor="middle">okładzina • 12 kg/m²</text>
                    <text id="rk-timber-svg-overlay-text" x="210" y="92" text-anchor="middle">płyty • 22 kg/m²</text>
                    <text id="rk-timber-svg-heating-text" x="210" y="132" text-anchor="middle">warstwa grzejna • 10 kg/m²</text>
                    <text x="210" y="191" text-anchor="middle">poszycie istniejące — poza bilansem</text>
                    <text x="210" y="246" text-anchor="middle">belki stropowe</text>
                  </svg>
                  <div class="rk-timber-legend"><span><i></i>płyty i poszycie</span><span class="pipe"><i></i>rura</span><span class="insulation"><i></i>warstwa systemowa</span></div>
                </div>

                <div class="rk-timber-energy-card">
                  <span class="rk-timber-energy-title">Porównanie masy [kg/m²]</span>
                  <svg class="rk-timber-energy-chart" id="rk-timber-mass-chart" viewBox="0 0 420 300" role="img" aria-label="Porównanie masy analizowanego systemu, limitu konstruktora i przykładowej masy wariantu mokrego">
                    <defs><linearGradient id="rk-timber-bar-gradient" x1="0" y1="1" x2="0" y2="0"><stop offset="0" stop-color="#078fbe"></stop><stop offset="1" stop-color="#28c9da"></stop></linearGradient></defs>
                    <line class="rk-timber-axis-line" x1="48" y1="252" x2="395" y2="252"></line>
                    <line class="rk-timber-axis-line" x1="48" y1="28" x2="48" y2="252"></line>
                    <g id="rk-timber-bars"></g>
                  </svg>
                  <p class="rk-timber-small">Słupek 120 kg/m² jest wyłącznie stałym przykładem masy 60 mm materiału o gęstości 2000 kg/m³ — nie opisuje każdego systemu mokrego.</p>
                </div>
              </div>
            </div>
          </div>
          <div class="rk-timber-disclaimer"><strong>Ważne:</strong> dodatni wynik nie jest zgodą na wykonanie instalacji. Narzędzie nie zna przekrojów belek, rozpiętości, podparcia, klasy i stanu drewna, połączeń, obciążeń istniejących, ugięć ani drgań. Nie uwzględnia też temperatury powierzchni, rozstawu rur i oporu całego systemu — deklarowaną moc należy wcześniej wyznaczyć dla rzeczywistych warunków.</div>
        </div>

        <div class="rk-timber-formula"><p><strong>Jak czytać dwa najważniejsze wyniki?</strong></p><code>rezerwa obciążenia = limit konstruktora − suma nowych warstw</code><code>rezerwa mocy = deklarowana moc systemu − projektowe obciążenie cieplne</code><p>Oba warunki powinny być dodatnie, ale to dopiero filtr wstępny. Nie zastępują sprawdzenia użytkowalności stropu ani pełnego obliczenia emisji cieplnej.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-moc" aria-labelledby="rk-timber-h2-6">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">06</div>
          <div><h2 id="rk-timber-h2-6">Czy sucha podłogówka ogrzeje pomieszczenie?</h2><p>Odpowiedź wynika z bilansu mocy, a nie z samej obecności rur.</p></div>
        </div>

        <p>Najpierw oblicza się projektowe obciążenie cieplne pomieszczenia w watach. Następnie dzieli się je przez aktywną powierzchnię grzejną, czyli część podłogi, która rzeczywiście może oddawać ciepło. Dopiero wtedy dobiera się rozstaw, temperaturę zasilania, średnią temperaturę wody, opór wykończenia oraz przepływ. Podłoga pod stałą zabudową może być wyłączona z aktywnej powierzchni, co zwiększa wymaganą moc z pozostałych metrów kwadratowych.</p>

        <div class="rk-timber-formula">
          <code>qₘᵢₙ = ΦHL / Aaktywna</code>
          <p>Jeżeli pomieszczenie potrzebuje 1200 W, a aktywna powierzchnia podłogi ma 18 m², system musi średnio dostarczyć około 66,7 W/m². Wynik trzeba zestawić z wydajnością wybranego układu przy konkretnej temperaturze wody i konkretnym oporze okładziny.</p>
        </div>

        <div class="rk-timber-card-grid four">
          <div class="rk-timber-card"><div class="rk-timber-card-icon">Φ</div><h4>Straty pomieszczenia</h4><p>Wynik obliczeń dla temperatury projektowej, uwzględniający przegrody, wentylację i warunki lokalne.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">A</div><h4>Aktywna powierzchnia</h4><p>Rzeczywista powierzchnia przekazująca ciepło po odjęciu stref, w których nie prowadzi się instalacji.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">R</div><h4>Opór warstw nad rurą</h4><p>Płyty rozdzielające i okładzina mogą ograniczyć strumień ciepła oraz wymusić wyższą temperaturę wody.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">ΔT</div><h4>Temperatura robocza</h4><p>Moc rośnie wraz z różnicą między średnią temperaturą powierzchni podłogi i powietrza w pomieszczeniu.</p></div>
        </div>

        <h3>System suchy a pompa ciepła</h3>
        <p>Mała masa systemu suchego pozwala szybciej reagować, ale nie gwarantuje automatycznie niskiej temperatury zasilania. Jeżeli warstwy mają duży opór, aktywna powierzchnia jest mała albo straty budynku są wysokie, potrzebna temperatura wody może wzrosnąć. Dlatego współpracę z pompą ciepła ocenia się na podstawie obliczeń, a nie hasła marketingowego. Powiązany poradnik wyjaśnia szczegółowo <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">dobór rozstawu rur ogrzewania podłogowego przy pompie ciepła</a>.</p>

        <div class="rk-timber-truth"><p><strong>Ogrzewanie podłogowe na legarach nie może ogrzewać głównie pustki stropowej.</strong> Element rozprowadzający ciepło powinien zapewniać dobry kontakt z warstwą oddającą energię do pomieszczenia, a izolacja poniżej ma ograniczać straty w dół. Geometrię i opory cieplne trzeba analizować jako pełny przekrój.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-okladzina" aria-labelledby="rk-timber-h2-7">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">07</div>
          <div><h2 id="rk-timber-h2-7">Drewno, panele, winyl czy płytki na suchej podłogówce?</h2><p>Liczą się jednocześnie masa, opór cieplny, temperatura i sposób montażu.</p></div>
        </div>

        <div class="rk-timber-table-wrap">
          <table class="rk-timber-table">
            <thead><tr><th>Wykończenie</th><th>Atut</th><th>Co sprawdzić</th><th>Typowe ryzyko</th></tr></thead>
            <tbody>
              <tr><td data-label="Wykończenie"><strong>Płytki</strong></td><td data-label="Atut">Niski opór i dobre przekazywanie ciepła</td><td data-label="Sprawdzenie">Sztywność podłoża, kompatybilny system płyt i kleju, szczeliny</td><td data-label="Ryzyko">Pękanie fug lub okładziny na podatnym stropie</td></tr>
              <tr><td data-label="Wykończenie"><strong>Deska warstwowa</strong></td><td data-label="Atut">Stabilniejsza wymiarowo niż wiele litych desek</td><td data-label="Sprawdzenie">Opór cieplny, wilgotność, maksymalną temperaturę i sposób klejenia</td><td data-label="Ryzyko">Szczeliny, łódkowanie lub przesuszenie przy złych warunkach</td></tr>
              <tr><td data-label="Wykończenie"><strong>Panele laminowane</strong></td><td data-label="Atut">Niewielka wysokość i łatwy montaż</td><td data-label="Sprawdzenie">Dopuszczenie na podłogówkę i łączny opór panelu z podkładem</td><td data-label="Ryzyko">Zbyt izolacyjny podkład i odgłosy kroków</td></tr>
              <tr><td data-label="Wykończenie"><strong>Winyl</strong></td><td data-label="Atut">Mała grubość i potencjalnie niski opór</td><td data-label="Sprawdzenie">Równość, sztywność, temperaturę i kompatybilność kleju</td><td data-label="Ryzyko">Odznaczanie nierówności lub deformacja na niestabilnym podłożu</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-timber-formula"><p><strong>Opór cieplny jednorodnej warstwy:</strong></p><code>R = d / λ</code><p>Dla deski o grubości 0,014 m i przewodności 0,14 W/(m·K) opór samej deski wynosi 0,10 m²K/W. Do wyniku należy doliczyć podkład, klej oraz pozostałe warstwy nad elementem grzejnym.</p></div>

        <p>Szczegółowe porównanie materiałów znajduje się w artykule <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane a panele laminowane przy ogrzewaniu podłogowym</a>. Sam sposób liczenia wyjaśnia poradnik o tym, czym jest <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R w konstrukcji podłogi</a>.</p>

        <div class="rk-timber-note"><p><strong>Nie stosuj jednej granicy temperatury jako „bezpiecznej dla każdego drewna”.</strong> Dopuszczalna temperatura powierzchni i warunki eksploatacji powinny wynikać z projektu cieplnego oraz instrukcji konkretnej okładziny, kleju i systemu grzejnego. Ochrona drewna obejmuje także stabilną wilgotność powietrza, właściwą wilgotność materiału przy montażu i łagodne uruchomienie.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-akustyka" aria-labelledby="rk-timber-h2-8">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">08</div>
          <div><h2 id="rk-timber-h2-8">Akustyka, drgania, ogień i wilgoć — cztery tematy, których nie wolno pominąć</h2><p>Poprawna termika nie naprawi błędnej konstrukcji podłogi.</p></div>
        </div>

        <div class="rk-timber-phase-grid">
          <div class="rk-timber-phase" data-step="A"><b>Dźwięki uderzeniowe</b><p>Warstwa sprężysta może ograniczać przenoszenie kroków, lecz jej ściśliwość i ułożenie muszą być zgodne z systemem. Miękki podkład nie może destabilizować płyt.</p></div>
          <div class="rk-timber-phase" data-step="B"><b>Drgania i skrzypienie</b><p>Luźne połączenia, pracujące styki i zbyt podatne poszycie mogą powodować dźwięki. Źródła nie usuwa się przez przypadkowe dokładanie miękkiej warstwy.</p></div>
          <div class="rk-timber-phase" data-step="C"><b>Odporność ogniowa</b><p>Otwory instalacyjne i przejścia nie mogą naruszać wymaganego układu zabezpieczeń. Wymagania zależą od całej przegrody, okładzin i uszczelnień.</p></div>
          <div class="rk-timber-phase" data-step="D"><b>Wilgoć</b><p>Drewno zmienia wymiary wraz ze zmianą wilgotności. Trzeba kontrolować źródła zawilgocenia, dyfuzję, szczelność instalacji i warunki podczas montażu.</p></div>
        </div>

        <h3>Dlaczego suchy system nie oznacza „braku problemu z wilgocią”?</h3>
        <p>System bez mokrego jastrychu ogranicza wilgoć technologiczną wnoszoną podczas wykonywania warstwy grzejnej. Nadal mogą jednak wystąpić przecieki, wilgoć budowlana z innych robót, kondensacja w źle zaprojektowanej przegrodzie albo zawilgocenie od strony nieogrzewanej przestrzeni. Zależność drewna od wilgotności i wynikające z niej zmiany wymiarów szeroko omawia <a href="https://research.fs.usda.gov/fpl/wood-handbook" target="_blank" rel="noopener noreferrer">Wood Handbook laboratorium USDA Forest Products</a>.</p>

        <div class="rk-timber-truth"><p><strong>Rura ma być szczelna przed zakryciem i pozostać możliwa do identyfikacji po wykonaniu podłogi.</strong> Wykonaj próbę zgodnie z dokumentacją systemu, zachowaj protokół, projekt pętli i zdjęcia z trwałymi punktami odniesienia. Zobacz także: <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności ogrzewania podłogowego</a>.</p></div>

        <p>Jeżeli strop oddziela ogrzewane pomieszczenie od zimnej przestrzeni, układ izolacji i warstw kontrolujących przepływ powietrza oraz pary wodnej musi odpowiadać rzeczywistym warunkom brzegowym. Ogólne zasady modernizacji podwieszonych podłóg drewnianych opisuje również <a href="https://www.gov.uk/government/publications/insulating-suspended-timber-floors-best-practice" target="_blank" rel="noopener noreferrer">brytyjski poradnik dobrych praktyk dla izolowania podwieszonych stropów drewnianych</a>.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-hydraulika" aria-labelledby="rk-timber-h2-9">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">09</div>
          <div><h2 id="rk-timber-h2-9">Rura, długość pętli, przepływ i strata ciśnienia</h2><p>Lekka konstrukcja podłogi nie zmienia praw hydrauliki.</p></div>
        </div>

        <p>Sucha podłogówka na drewnianym stropie wymaga takiego samego bilansu energii i przepływu jak każdy wodny system powierzchniowy. Dla każdej pętli trzeba znać moc przypisaną do strefy oraz projektową różnicę temperatury wody. Następnie wyznacza się strumień masy, dobiera średnicę przewodu i oblicza stratę ciśnienia z uwzględnieniem rury, łuków, przyłączy, rozdzielacza i armatury.</p>

        <div class="rk-timber-formula">
          <code>ṁ = Φ / (cₚ × ΔT)</code>
          <p>Dla pętli oddającej 800 W i różnicy temperatury wody 5 K orientacyjny strumień wynosi około 0,038 kg/s, czyli około 137 kg/h. To pierwszy krok; o wymaganej wysokości podnoszenia decydują jeszcze opory hydrauliczne najtrudniejszego obiegu.</p>
        </div>

        <div class="rk-timber-card-grid four">
          <div class="rk-timber-card"><div class="rk-timber-card-icon">L</div><h4>Długość pętli</h4><p>Obejmuje odcinek aktywny oraz dojście od rozdzielacza. Nie ustala się jej wyłącznie według powierzchni pokoju.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">d</div><h4>Średnica wewnętrzna</h4><p>Wpływa na prędkość przepływu i stratę ciśnienia; ten sam wymiar zewnętrzny nie gwarantuje tej samej hydrauliki.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">V̇</div><h4>Przepływ</h4><p>Wynika z mocy pętli i przyjętej różnicy temperatury, a następnie podlega regulacji na rozdzielaczu.</p></div>
          <div class="rk-timber-card"><div class="rk-timber-card-icon">Δp</div><h4>Opory</h4><p>Rosną wraz z długością i przepływem. Pętle powinny mieścić się w możliwościach pompy i zaworów regulacyjnych.</p></div>
        </div>

        <h3>Czy każda pętla może mieć 100 metrów?</h3>
        <p>Nie należy traktować 100 m jako uniwersalnego limitu. Dopuszczalna długość zależy od średnicy i budowy przewodu, przepływu, temperatur, mocy, dopuszczalnej straty ciśnienia, rozdzielacza oraz pompy. W systemach suchych czasem stosuje się mniejsze przewody i inne geometrie kanałów, dlatego pętla akceptowalna w klasycznym jastrychu może nie być poprawnym wzorcem.</p>

        <div class="rk-timber-note"><p><strong>Rozdzielacza nie ustawiaj „na równe przepływy”.</strong> Każdy obieg ma inne obciążenie i długość. Nastawy powinny wynikać z obliczeń hydraulicznych oraz przypisanej mocy, a nie z próby uzyskania identycznych wskazań na wszystkich rotametrach.</p></div>
      </section>

      <section class="rk-timber-section" id="rk-timber-pomieszczenia" aria-labelledby="rk-timber-h2-10">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">10</div>
          <div><h2 id="rk-timber-h2-10">Łazienka, poddasze i dom szkieletowy — kiedy wymagania rosną?</h2><p>Ten sam strop może wymagać różnych rozwiązań w różnych pomieszczeniach.</p></div>
        </div>

        <div class="rk-timber-example-grid">
          <div class="rk-timber-example"><h3>Łazienka na drewnianym stropie</h3><p>Często ma wysokie zapotrzebowanie na moc i małą aktywną powierzchnię. Trzeba skoordynować hydroizolację, odpływy, sztywność pod płytki, strefy bez rur oraz dopuszczalną temperaturę.</p><code>Priorytet: moc + szczelność + sztywność podłoża</code></div>
          <div class="rk-timber-example"><h3>Ogrzewane poddasze</h3><p><strong>Podłogówka na drewnianym poddaszu</strong> wymaga obliczeń mimo zwykle mniejszej powierzchni przegród pionowych. Ważne są akustyka stropu, wysokość progów oraz przebieg pionów do rozdzielacza.</p><code>Priorytet: wysokość warstw + trasy + akustyka</code></div>
          <div class="rk-timber-example"><h3>Dom szkieletowy</h3><p>W nowym budynku konstrukcję i podłogówkę można skoordynować od początku. Nie wolno jednak przenosić typowego przekroju z domu murowanego bez analizy sztywności, wilgoci i detali.</p><code>Priorytet: wspólny projekt konstrukcji i instalacji</code></div>
        </div>

        <p>Osobne wymagania budynku lekkiego rozwija poradnik <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">ogrzewanie podłogowe w domu szkieletowym — różnice i pułapki</a>. W łazience warto też rozważyć, czy powierzchnia podłogi sama pokryje moc projektową, czy potrzebne będzie dodatkowe źródło ciepła.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-kroki" aria-labelledby="rk-timber-h2-11">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">11</div>
          <div><h2 id="rk-timber-h2-11">Jak zaprojektować podłogówkę na drewnianym stropie krok po kroku?</h2><p>Właściwa kolejność ogranicza kosztowne cofanie decyzji.</p></div>
        </div>

        <ol class="rk-timber-howto">
          <li class="rk-timber-howto-step"><span>01</span><div><h3>Zinwentaryzuj strop</h3><p>Ustal geometrię, podparcie, przekroje, rozstaw, stan drewna, warstwy istniejące, miejsca osłabień i przebieg instalacji. W modernizacji wykonaj potrzebne odkrywki.</p></div></li>
          <li class="rk-timber-howto-step"><span>02</span><div><h3>Uzyskaj ocenę konstruktora</h3><p>Potwierdź nośność, ugięcia, drgania oraz dopuszczalny przyrost obciążenia stałego. Zapisz ograniczenia dotyczące otworów i wzmocnień.</p></div></li>
          <li class="rk-timber-howto-step"><span>03</span><div><h3>Policz obciążenie cieplne pomieszczeń</h3><p>Wyznacz straty w warunkach projektowych oraz aktywną powierzchnię podłogi. Nie opieraj doboru wyłącznie na metrażu domu.</p></div></li>
          <li class="rk-timber-howto-step"><span>04</span><div><h3>Porównaj warianty warstw</h3><p>Zestaw masę, wysokość, sztywność, akustykę, opór cieplny, bezwładność i możliwość przeprowadzenia rur bez naruszania belek.</p></div></li>
          <li class="rk-timber-howto-step"><span>05</span><div><h3>Oblicz moc i hydraulikę</h3><p>Dobierz rozstaw, temperaturę wody, długość pętli, przepływy i opory. Sprawdź współpracę z rozdzielaczem, pompą i automatyką.</p></div></li>
          <li class="rk-timber-howto-step"><span>06</span><div><h3>Skoordynuj okładzinę oraz detale</h3><p>Uwzględnij opór i masę posadzki, wymagania kleju, hydroizolację, szczeliny, progi, schody, drzwi, przejścia instalacyjne i ochronę ogniową.</p></div></li>
          <li class="rk-timber-howto-step"><span>07</span><div><h3>Wykonaj próbę i dokumentację powykonawczą</h3><p>Sprawdź szczelność przed zakryciem, sfotografuj przebieg pętli, zapisz długości oraz nastawy i zachowaj instrukcję uruchomienia.</p></div></li>
          <li class="rk-timber-howto-step"><span>08</span><div><h3>Uruchom układ zgodnie z dokumentacją</h3><p>Nie przyjmuj uniwersalnego tempa podnoszenia temperatury. Postępuj zgodnie z wymaganiami systemu grzejnego, płyt, kleju i okładziny.</p></div></li>
        </ol>

        <p>Pełny projekt powinien łączyć część cieplną i hydrauliczną z jednoznacznym rzutem pętli, zestawieniem długości, przepływów oraz temperatur. Sprawdź, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-bledy" aria-labelledby="rk-timber-h2-12">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">12</div>
          <div><h2 id="rk-timber-h2-12">Najczęstsze błędy przy ogrzewaniu podłogowym na drewnianym stropie</h2><p>Większość powstaje przed ułożeniem pierwszego metra rury.</p></div>
        </div>

        <div class="rk-timber-error-grid">
          <div class="rk-timber-error"><div class="rk-timber-error-no">01</div><div><h4>„System jest lekki, więc strop na pewno wytrzyma”</h4><p>Bez inwentaryzacji i obliczeń nie wiadomo, jaki zapas ma konstrukcja ani czy ograniczeniem nie są ugięcia lub drgania.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">02</div><div><h4>Liczenie tylko masy warstwy grzejnej</h4><p>Do bilansu trzeba włączyć płyty, okładzinę, klej, podkład, maty akustyczne i pozostałe nowe elementy.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">03</div><div><h4>Wycinanie belek dla wygodnej trasy</h4><p>Otwór w złym miejscu może istotnie osłabić element. Przejścia wymagają koordynacji z konstruktorem.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">04</div><div><h4>Brak obliczenia mocy podłogi</h4><p>Gęsty rozstaw nie gwarantuje pokrycia strat, jeśli aktywna powierzchnia jest mała albo opór warstw wysoki.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">05</div><div><h4>Miękki podkład jako lekarstwo na akustykę</h4><p>Zbyt podatna warstwa może pogorszyć stabilność podłogi. Rozwiązanie akustyczne musi współpracować z płytami.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">06</div><div><h4>Brak próby i zdjęć pętli</h4><p>Po zamknięciu warstw naprawa oraz bezpieczne wiercenie stają się trudniejsze. Dokumentacja powykonawcza jest elementem instalacji.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">07</div><div><h4>Jedna temperatura dla każdego drewna</h4><p>Ograniczenia zależą od konkretnej okładziny, wilgotności, sposobu montażu i zaleceń systemowych.</p></div></div>
          <div class="rk-timber-error"><div class="rk-timber-error-no">08</div><div><h4>Brak koordynacji progu i schodów</h4><p>Zmiana wysokości podłogi wpływa na drzwi, balustrady, pierwszy i ostatni stopień oraz połączenia z sąsiednimi pomieszczeniami.</p></div></div>
        </div>
      </section>

      <section class="rk-timber-section" id="rk-timber-zrodla" aria-labelledby="rk-timber-h2-13">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">13</div>
          <div><h2 id="rk-timber-h2-13">Podstawa techniczna i źródła</h2><p>Źródła neutralne: normy, instytucje publiczne i opracowania naukowo-techniczne.</p></div>
        </div>

        <div class="rk-timber-sources">
          <ul>
            <li><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener noreferrer">ISO 11855-5:2021</a> — zasady instalacji systemów ogrzewania i chłodzenia powierzchniowego.</li>
            <li><a href="https://www.iso.org/standard/64999.html" target="_blank" rel="noopener noreferrer">ISO 11855-6:2018</a> — wymagania dotyczące sterowania systemami powierzchniowymi.</li>
            <li><a href="https://www.iso.org/standard/69830.html" target="_blank" rel="noopener noreferrer">ISO 11855-7:2019</a> — obliczenia wejścia energii do systemów ogrzewania i chłodzenia powierzchniowego.</li>
            <li><a href="https://eurocodes.jrc.ec.europa.eu/publications/manual-design-timber-buildings-structures-eurocode-5" target="_blank" rel="noopener noreferrer">JRC: Manual for the design of timber building structures to Eurocode 5</a> — projektowanie konstrukcji drewnianych.</li>
            <li><a href="https://eurocodes.jrc.ec.europa.eu/publications/fire-safety-timber-buildings" target="_blank" rel="noopener noreferrer">JRC: Fire safety in timber buildings</a> — bezpieczeństwo pożarowe budynków drewnianych.</li>
            <li><a href="https://research.fs.usda.gov/fpl/wood-handbook" target="_blank" rel="noopener noreferrer">USDA Forest Products Laboratory: Wood Handbook</a> — właściwości drewna, wilgotność i projektowanie z wykorzystaniem materiałów drzewnych.</li>
            <li><a href="https://www.gov.uk/government/publications/insulating-suspended-timber-floors-best-practice" target="_blank" rel="noopener noreferrer">GOV.UK: Insulating suspended timber floors — best practice</a> — zasady izolowania podwieszonych podłóg drewnianych.</li>
          </ul>
        </div>
        <p class="rk-timber-small">Numery i zakres norm należy zawsze zestawić z aktualnymi, właściwymi dla inwestycji dokumentami krajowymi, projektem konstrukcji oraz dokumentacją konkretnego systemu. Artykuł nie zastępuje licencjonowanego opracowania technicznego.</p>
      </section>

      <section class="rk-timber-section" id="rk-timber-faq" aria-labelledby="rk-timber-h2-14">
        <div class="rk-timber-section-head">
          <div class="rk-timber-section-no">14</div>
          <div><h2 id="rk-timber-h2-14">FAQ — ogrzewanie podłogowe na drewnianym stropie</h2><p>Krótkie odpowiedzi na pytania z długiego ogona.</p></div>
        </div>

        <div class="rk-timber-faq-list">
          <details class="rk-timber-faq"><summary>Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</summary><div class="rk-timber-faq-answer"><p>Tak, jeżeli konstruktor potwierdzi możliwość przeniesienia nowych obciążeń i spełnienie warunków użytkowalności, a projektant instalacji sprawdzi moc, temperatury, przepływy i opory. Najczęściej stosuje się lekki system suchy, ale nie jest on automatycznie bezpieczny dla każdego stropu.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy sucha podłogówka na drewnianym stropie wymaga oceny konstruktora?</summary><div class="rk-timber-faq-answer"><p>Tak. Mała masa ogranicza obciążenie, lecz konstruktor nadal powinien ocenić belki, poszycie, podpory, stan drewna, połączenia, ugięcia i drgania oraz określić dopuszczalny przyrost obciążenia stałego.</p></div></details>
          <details class="rk-timber-faq"><summary>Ile waży ogrzewanie podłogowe bez wylewki?</summary><div class="rk-timber-faq-answer"><p>Nie ma jednej wartości. Należy zsumować masę płyt systemowych, elementów przewodzących, rur, suchych płyt rozkładających obciążenie, okładziny, kleju lub podkładu oraz warstw pomocniczych. Wiarygodny wynik pochodzi z kart produktów i projektu przekroju.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy można zrobić tradycyjną wylewkę na stropie drewnianym?</summary><div class="rk-timber-faq-answer"><p>Nie jest to wykluczone z definicji, ale wymaga obliczeń konstrukcji, sprawdzenia dużego obciążenia stałego, ugięć, wilgoci technologicznej, szczelności warstw i pracy materiałów. W istniejącym budynku decyzji nie należy podejmować bez inwentaryzacji.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy podłogówkę można ułożyć między belkami stropowymi?</summary><div class="rk-timber-faq-answer"><p>Tak, istnieją takie układy. Trzeba zapewnić dobry kontakt cieplny z podłogą, izolację od dołu, bezpieczne prowadzenie rur bez osłabiania belek oraz dostępne rozwiązanie przejść i przyłączy. Moc musi zostać obliczona dla rzeczywistego przekroju.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy można ułożyć ogrzewanie podłogowe na płycie OSB?</summary><div class="rk-timber-faq-answer"><p>Można rozważyć system przeznaczony do montażu na odpowiednim poszyciu drewnopochodnym, ale sama nazwa OSB nie potwierdza nośności ani sztywności. Liczą się typ, grubość, kierunek ułożenia, podparcie krawędzi, rozstaw belek, łączniki i dokumentacja systemu.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy sucha podłogówka współpracuje z pompą ciepła?</summary><div class="rk-timber-faq-answer"><p>Może współpracować bardzo dobrze, jeśli pokrywa obciążenie cieplne przy niskiej temperaturze zasilania. Trzeba policzyć wpływ aktywnej powierzchni, rozstawu rur, elementów przewodzących i oporu okładziny. Sam system suchy nie gwarantuje wysokiej sprawności pompy ciepła.</p></div></details>
          <details class="rk-timber-faq"><summary>Jaki rozstaw rur zastosować na drewnianym stropie?</summary><div class="rk-timber-faq-answer"><p>Rozstaw wynika z wymaganej mocy, temperatury wody, geometrii elementów systemowych i oporu warstw. Nie należy wybierać 10 lub 15 cm na podstawie zwyczaju. Trzeba użyć obliczeń dla danego pomieszczenia i konkretnego systemu.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy drewniana podłoga ogranicza moc ogrzewania?</summary><div class="rk-timber-faq-answer"><p>Tak, jej opór cieplny może ograniczać strumień ciepła. Znaczenie mają gatunek i budowa wyrobu, grubość, przewodność, sposób mocowania, podkład oraz dopuszczalna temperatura. Parametry należy potwierdzić w dokumentacji konkretnej okładziny.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy przy suchej podłogówce potrzebna jest próba szczelności?</summary><div class="rk-timber-faq-answer"><p>Tak. Próbę wykonuje się przed trwałym zakryciem przewodów zgodnie z projektem i dokumentacją systemu. Należy zachować protokół, zdjęcia przebiegu rur, długości pętli i dane dotyczące nastaw.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy system suchy zawsze jest cichy?</summary><div class="rk-timber-faq-answer"><p>Nie. Skrzypienie i dźwięki uderzeniowe zależą od sztywności poszycia, podparcia płyt, połączeń, warstw sprężystych, szczelin obwodowych oraz jakości montażu. Rozwiązanie cieplne i akustyczne trzeba koordynować.</p></div></details>
          <details class="rk-timber-faq"><summary>Czy można samodzielnie policzyć nośność stropu suwakiem online?</summary><div class="rk-timber-faq-answer"><p>Nie w sposób wiarygodny. Do oceny potrzebne są dane o geometrii, podparciu, klasie i stanie drewna, połączeniach, osłabieniach, obciążeniach, ugięciach i drganiach. Laboratorium w artykule tylko sumuje ciężar warstw i porównuje go z limitem podanym przez konstruktora.</p></div></details>
        </div>
      </section>

      <div class="rk-timber-cta" aria-label="Projekt ogrzewania podłogowego">
        <h3>Potrzebujesz podłogówki policzonej dla konkretnego budynku?</h3>
        <p>Projekt określa zapotrzebowanie cieplne pomieszczeń, aktywne powierzchnie, rozstaw i przebieg pętli, temperaturę zasilania, długości, przepływy, straty ciśnienia oraz nastawy rozdzielacza. W przypadku drewnianego stropu dokumentację instalacji należy skoordynować z oceną konstruktora i wybranym układem warstw.</p>
        <a class="rk-timber-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small>To jedyne CTA sprzedażowe w artykule. Odnośnik prowadzi do strony usługi Projekt-Ogrzewania.pl należącej do autora opracowania.</small>
      </div>

      <aside class="rk-timber-author-box" aria-labelledby="rk-timber-author-title">
        <div class="rk-timber-author-head">
          <div><h3 id="rk-timber-author-title">Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-timber-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-timber-author-main">
          <div class="rk-timber-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" width="174" height="174" loading="lazy">
            <h4>Robert Kucharski</h4>
            <span class="rk-timber-author-role">Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</span>
          </div>
          <div class="rk-timber-author-content">
            <div class="rk-timber-quote"><blockquote>„Na drewnianym stropie nie zaczynam od wyboru płyty systemowej. Najpierw ustalam, ile konstrukcja może bezpiecznie przyjąć, ile ciepła potrzebuje każde pomieszczenie i jak poprowadzić rury bez naruszania belek. Dopiero przecięcie tych trzech warunków daje poprawny przekrój podłogi.”</blockquote></div>
            <div class="rk-timber-tab-buttons" role="tablist" aria-label="Informacje o autorze">
              <button class="rk-timber-tab-button is-active" type="button" role="tab" aria-selected="true" data-timber-author-tab="about">O autorze</button>
              <button class="rk-timber-tab-button" type="button" role="tab" aria-selected="false" tabindex="-1" data-timber-author-tab="experience">Doświadczenie</button>
              <button class="rk-timber-tab-button" type="button" role="tab" aria-selected="false" tabindex="-1" data-timber-author-tab="portals">Portale</button>
            </div>
            <div class="rk-timber-tab-panel" role="tabpanel" data-timber-author-panel="about">
              <p>Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego oraz hydraulice instalacji. Łączę wymagania źródła ciepła, charakterystykę podłogi, przepływy i automatykę w jeden możliwy do wykonania układ.</p>
            </div>
            <div class="rk-timber-tab-panel" role="tabpanel" data-timber-author-panel="experience" hidden>
              <p>Przygotowuję techniczne opracowania dla inwestorów budujących i modernizujących domy. W analizach oddzielam dane projektowe od orientacyjnych przykładów, jasno wskazuję zakres odpowiedzialności konstruktora, projektanta instalacji i wykonawcy oraz dokumentuję powiązania właścicielskie serwisów.</p>
            </div>
            <div class="rk-timber-tab-panel" role="tabpanel" data-timber-author-panel="portals" hidden>
              <p>Jestem właścicielem i autorem publikacji w trzech serwisach branżowych. Linki są jawne i prowadzą do moich własnych portali:</p>
              <div class="rk-timber-portals">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/">Remont.biz.pl</a>
                <a href="https://sobir.pl/">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#webpage",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/",
      "name": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? System suchy, ciężar i poprawne warstwy",
      "description": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? Sprawdź system suchy, ciężar warstw, moc, akustykę, wilgoć i wymagane obliczenia.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "about": [
        { "@type": "Thing", "name": "Ogrzewanie podłogowe na drewnianym stropie" },
        { "@type": "Thing", "name": "Suchy system ogrzewania podłogowego" },
        { "@type": "Thing", "name": "Konstrukcje drewniane" }
      ],
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#article" },
      "dateModified": "2026-08-25",
      "potentialAction": {
        "@type": "ReadAction",
        "target": ["https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/"]
      }
    },
    {
      "@type": ["TechArticle", "Article"],
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#article",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#webpage" },
      "headline": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu? System suchy, ciężar i poprawne warstwy",
      "alternativeHeadline": "Ogrzewanie podłogowe na drewnianym stropie — system suchy, nośność, moc i montaż",
      "description": "Techniczny poradnik o suchej podłogówce na stropie drewnianym: ocena konstrukcji, ciężar warstw, moc cieplna, opór okładziny, hydraulika, akustyka, wilgoć i wykonanie.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-25",
      "author": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightYear": 2026,
      "articleSection": [
        "Ogrzewanie podłogowe",
        "System suchy",
        "Drewniany strop",
        "Hydraulika instalacji",
        "Budownictwo drewniane"
      ],
      "keywords": "czy ogrzewanie podłogowe nadaje się do drewnianego stropu, ogrzewanie podłogowe na drewnianym stropie, sucha podłogówka na drewnianym stropie, ogrzewanie podłogowe na legarach, podłogówka między belkami stropowymi, ogrzewanie podłogowe na płycie OSB, ogrzewanie podłogowe bez wylewki na drewnianym stropie, warstwy podłogówki na stropie drewnianym, podłogówka na drewnianym poddaszu, pompa ciepła i sucha podłogówka",
      "proficiencyLevel": "Expert",
      "educationalLevel": "Zaawansowany poradnik techniczny dla inwestora",
      "isAccessibleForFree": true,
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": ["#rk-timber-h2-1", ".rk-timber-answer", "#rk-timber-faq"]
      },
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#faq" },
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#laboratorium" }
      ],
      "citation": [
        "https://www.iso.org/standard/74685.html",
        "https://www.iso.org/standard/64999.html",
        "https://www.iso.org/standard/69830.html",
        "https://eurocodes.jrc.ec.europa.eu/publications/manual-design-timber-buildings-structures-eurocode-5",
        "https://eurocodes.jrc.ec.europa.eu/publications/fire-safety-timber-buildings",
        "https://research.fs.usda.gov/fpl/wood-handbook",
        "https://www.gov.uk/government/publications/insulating-suspended-timber-floors-best-practice"
      ],
      "about": [
        { "@type": "Thing", "name": "Wodne ogrzewanie podłogowe" },
        { "@type": "Thing", "name": "Drewniany strop" },
        { "@type": "Thing", "name": "Suchy jastrych" },
        { "@type": "Thing", "name": "Obciążenie stałe stropu" },
        { "@type": "Thing", "name": "Opór cieplny podłogi" },
        { "@type": "Thing", "name": "Hydraulika pętli grzewczych" }
      ],
      "mentions": [
        { "@type": "DefinedTerm", "name": "Eurokod 5" },
        { "@type": "DefinedTerm", "name": "ISO 11855" },
        { "@type": "DefinedTerm", "name": "Obciążenie cieplne" },
        { "@type": "DefinedTerm", "name": "Opór cieplny R" },
        { "@type": "DefinedTerm", "name": "Strata ciśnienia" },
        { "@type": "DefinedTerm", "name": "Dźwięki uderzeniowe" }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#howto",
      "name": "Jak zaprojektować ogrzewanie podłogowe na drewnianym stropie",
      "description": "Kolejność przygotowania bezpiecznego rozwiązania: od inwentaryzacji konstrukcji przez bilans mocy i hydraulikę po próbę szczelności oraz uruchomienie.",
      "inLanguage": "pl-PL",
      "tool": [
        { "@type": "HowToTool", "name": "Dokumentacja lub inwentaryzacja konstrukcji" },
        { "@type": "HowToTool", "name": "Obliczenia konstruktora" },
        { "@type": "HowToTool", "name": "Projekt cieplny i hydrauliczny" },
        { "@type": "HowToTool", "name": "Manometr do próby szczelności" }
      ],
      "supply": [
        { "@type": "HowToSupply", "name": "Kompatybilny system suchego ogrzewania podłogowego" },
        { "@type": "HowToSupply", "name": "Rury i elementy rozprowadzające ciepło" },
        { "@type": "HowToSupply", "name": "Płyty rozkładające obciążenie" },
        { "@type": "HowToSupply", "name": "Okładzina dopuszczona do ogrzewania podłogowego" }
      ],
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zinwentaryzuj strop", "text": "Ustal geometrię, podparcie, stan drewna, istniejące warstwy, osłabienia i trasy instalacji." },
        { "@type": "HowToStep", "position": 2, "name": "Uzyskaj ocenę konstruktora", "text": "Potwierdź nośność, ugięcia, drgania oraz dopuszczalny przyrost obciążenia stałego." },
        { "@type": "HowToStep", "position": 3, "name": "Policz obciążenie cieplne", "text": "Wyznacz straty każdego pomieszczenia i aktywną powierzchnię podłogi." },
        { "@type": "HowToStep", "position": 4, "name": "Porównaj warianty warstw", "text": "Zestaw masę, wysokość, sztywność, akustykę, opór cieplny i możliwość bezpiecznego prowadzenia rur." },
        { "@type": "HowToStep", "position": 5, "name": "Oblicz moc i hydraulikę", "text": "Dobierz rozstaw, temperaturę wody, długości pętli, przepływy i opory hydrauliczne." },
        { "@type": "HowToStep", "position": 6, "name": "Skoordynuj okładzinę i detale", "text": "Uwzględnij opór posadzki, hydroizolację, szczeliny, progi, schody oraz przejścia instalacyjne." },
        { "@type": "HowToStep", "position": 7, "name": "Wykonaj próbę szczelności", "text": "Sprawdź instalację przed zakryciem i przygotuj dokumentację powykonawczą przebiegu pętli." },
        { "@type": "HowToStep", "position": 8, "name": "Uruchom system zgodnie z dokumentacją", "text": "Zastosuj procedurę wymaganą przez system grzejny, płyty, klej i okładzinę." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        { "@type": "Question", "name": "Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeżeli konstruktor potwierdzi możliwość przeniesienia nowych obciążeń i spełnienie warunków użytkowalności, a projektant instalacji sprawdzi moc, temperatury, przepływy i opory. Najczęściej stosuje się lekki system suchy, ale nie jest on automatycznie bezpieczny dla każdego stropu." } },
        { "@type": "Question", "name": "Czy sucha podłogówka na drewnianym stropie wymaga oceny konstruktora?", "acceptedAnswer": { "@type": "Answer", "text": "Tak. Mała masa ogranicza obciążenie, lecz konstruktor nadal powinien ocenić belki, poszycie, podpory, stan drewna, połączenia, ugięcia i drgania oraz określić dopuszczalny przyrost obciążenia stałego." } },
        { "@type": "Question", "name": "Ile waży ogrzewanie podłogowe bez wylewki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie ma jednej wartości. Należy zsumować masę płyt systemowych, elementów przewodzących, rur, suchych płyt rozkładających obciążenie, okładziny, kleju lub podkładu oraz warstw pomocniczych. Wiarygodny wynik pochodzi z kart produktów i projektu przekroju." } },
        { "@type": "Question", "name": "Czy można zrobić tradycyjną wylewkę na stropie drewnianym?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest to wykluczone z definicji, ale wymaga obliczeń konstrukcji, sprawdzenia dużego obciążenia stałego, ugięć, wilgoci technologicznej, szczelności warstw i pracy materiałów. W istniejącym budynku decyzji nie należy podejmować bez inwentaryzacji." } },
        { "@type": "Question", "name": "Czy podłogówkę można ułożyć między belkami stropowymi?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, istnieją takie układy. Trzeba zapewnić dobry kontakt cieplny z podłogą, izolację od dołu, bezpieczne prowadzenie rur bez osłabiania belek oraz dostępne rozwiązanie przejść i przyłączy. Moc musi zostać obliczona dla rzeczywistego przekroju." } },
        { "@type": "Question", "name": "Czy można ułożyć ogrzewanie podłogowe na płycie OSB?", "acceptedAnswer": { "@type": "Answer", "text": "Można rozważyć system przeznaczony do montażu na odpowiednim poszyciu drewnopochodnym, ale sama nazwa OSB nie potwierdza nośności ani sztywności. Liczą się typ, grubość, kierunek ułożenia, podparcie krawędzi, rozstaw belek, łączniki i dokumentacja systemu." } },
        { "@type": "Question", "name": "Czy sucha podłogówka współpracuje z pompą ciepła?", "acceptedAnswer": { "@type": "Answer", "text": "Może współpracować bardzo dobrze, jeśli pokrywa obciążenie cieplne przy niskiej temperaturze zasilania. Trzeba policzyć wpływ aktywnej powierzchni, rozstawu rur, elementów przewodzących i oporu okładziny. Sam system suchy nie gwarantuje wysokiej sprawności pompy ciepła." } },
        { "@type": "Question", "name": "Jaki rozstaw rur zastosować na drewnianym stropie?", "acceptedAnswer": { "@type": "Answer", "text": "Rozstaw wynika z wymaganej mocy, temperatury wody, geometrii elementów systemowych i oporu warstw. Nie należy wybierać 10 lub 15 cm na podstawie zwyczaju. Trzeba użyć obliczeń dla danego pomieszczenia i konkretnego systemu." } },
        { "@type": "Question", "name": "Czy drewniana podłoga ogranicza moc ogrzewania?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jej opór cieplny może ograniczać strumień ciepła. Znaczenie mają budowa wyrobu, grubość, przewodność, sposób mocowania, podkład oraz dopuszczalna temperatura. Parametry należy potwierdzić w dokumentacji konkretnej okładziny." } },
        { "@type": "Question", "name": "Czy przy suchej podłogówce potrzebna jest próba szczelności?", "acceptedAnswer": { "@type": "Answer", "text": "Tak. Próbę wykonuje się przed trwałym zakryciem przewodów zgodnie z projektem i dokumentacją systemu. Należy zachować protokół, zdjęcia przebiegu rur, długości pętli i dane dotyczące nastaw." } },
        { "@type": "Question", "name": "Czy system suchy zawsze jest cichy?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Skrzypienie i dźwięki uderzeniowe zależą od sztywności poszycia, podparcia płyt, połączeń, warstw sprężystych, szczelin obwodowych oraz jakości montażu. Rozwiązanie cieplne i akustyczne trzeba koordynować." } },
        { "@type": "Question", "name": "Czy można samodzielnie policzyć nośność stropu suwakiem online?", "acceptedAnswer": { "@type": "Answer", "text": "Nie w sposób wiarygodny. Do oceny potrzebne są dane o geometrii, podparciu, klasie i stanie drewna, połączeniach, osłabieniach, obciążeniach, ugięciach i drganiach. Laboratorium w artykule tylko sumuje ciężar warstw i porównuje go z limitem podanym przez konstruktora." } }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#laboratorium",
      "name": "Laboratorium drewnianego stropu — ciężar, moc i opór okładziny",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#rk-timber-laboratorium",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Kalkulator techniczny ogrzewania podłogowego",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "featureList": [
        "Sumowanie dodatkowego obciążenia stałego warstw podłogi",
        "Porównanie ciężaru z limitem podanym przez konstruktora",
        "Obliczenie oporu cieplnego okładziny",
        "Porównanie wymaganej i deklarowanej mocy powierzchniowej",
        "Dynamiczny przekrój warstw",
        "Wykres porównawczy masy systemu"
      ],
      "offers": { "@type": "Offer", "price": "0", "priceCurrency": "PLN" },
      "softwareHelp": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/#article" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "description": "Projektant wodnego ogrzewania podłogowego, autor technicznych opracowań i właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl oraz Sobir.pl.",
      "knowsAbout": [
        "Ogrzewanie podłogowe",
        "Suche systemy ogrzewania podłogowego",
        "Hydraulika instalacji grzewczych",
        "Obciążenie cieplne budynków",
        "Pompy ciepła",
        "Efektywność energetyczna budynków",
        "Koordynacja instalacji z konstrukcją budynku"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy"
      ],
      "affiliation": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "owns": [
        { "@id": "https://projekt-ogrzewania.pl/#website" },
        { "@id": "https://remont.biz.pl/#website" },
        { "@id": "https://sobir.pl/#website" }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": { "@type": "ImageObject", "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-Ogrzewania-Logo.webp" },
      "founder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://remont.biz.pl/#website",
      "url": "https://remont.biz.pl/",
      "name": "Remont.biz.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://sobir.pl/#website",
      "url": "https://sobir.pl/",
      "name": "Sobir.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    }
  ]
}
</script>

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

  function initTimberGuide() {
    var root = document.getElementById("rk-timber-guide");
    if (!root) {
      return;
    }
    if (root.getAttribute("data-rk-timber-ready") === "1") {
      return;
    }
    root.setAttribute("data-rk-timber-ready", "1");

    function one(selector) {
      return root.querySelector(selector);
    }

    function many(selector) {
      return Array.prototype.slice.call(root.querySelectorAll(selector));
    }

    function valueOf(element, fallback) {
      if (!element) {
        return fallback;
      }
      var value = Number.parseFloat(element.value);
      if (Number.isFinite(value)) {
        return value;
      }
      return fallback;
    }

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

    function setText(selector, text) {
      var element = one(selector);
      if (element) {
        element.textContent = text;
      }
    }

    function svgElement(name, attributes, label) {
      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 label === "string") {
        element.textContent = label;
      }
      return element;
    }

    var fields = {
      area: one("#rk-timber-area"),
      heating: one("#rk-timber-heating"),
      overlay: one("#rk-timber-overlay"),
      finishWeight: one("#rk-timber-finish-weight"),
      other: one("#rk-timber-other"),
      limit: one("#rk-timber-limit"),
      demand: one("#rk-timber-demand"),
      output: one("#rk-timber-output"),
      finishThickness: one("#rk-timber-finish-thickness"),
      lambda: one("#rk-timber-lambda")
    };

    var activeVariant = "dry";
    var presets = {
      dry: {
        area: 24,
        heating: 10,
        overlay: 22,
        finishWeight: 12,
        other: 4,
        limit: 65,
        demand: 55,
        output: 70,
        finishThickness: 12,
        lambda: 0.18,
        label: "system suchy nad poszyciem"
      },
      between: {
        area: 24,
        heating: 7,
        overlay: 15,
        finishWeight: 10,
        other: 3,
        limit: 55,
        demand: 48,
        output: 58,
        finishThickness: 10,
        lambda: 0.18,
        label: "rury między belkami"
      },
      wet: {
        area: 24,
        heating: 120,
        overlay: 0,
        finishWeight: 20,
        other: 5,
        limit: 100,
        demand: 60,
        output: 90,
        finishThickness: 10,
        lambda: 1.20,
        label: "mokry wariant porównawczy"
      }
    };

    function updateCrossSection(heating, overlay, finishWeight) {
      var finish = one("#rk-timber-svg-finish");
      var overlayRect = one("#rk-timber-svg-overlay");
      var heatingRect = one("#rk-timber-svg-heating");
      var pipe = one("#rk-timber-svg-pipe");
      if (!finish) {
        return;
      }

      var finishHeight = 22 + Math.min(finishWeight, 45) / 45 * 16;
      var overlayHeight = 18 + Math.min(overlay, 80) / 80 * 38;
      var heatingHeight = 34 + Math.min(heating, 140) / 140 * 54;
      var finishY = 28;
      var overlayY = finishY + finishHeight + 4;
      var heatingY = overlayY + overlayHeight + 4;
      var pipeY = heatingY + heatingHeight / 2;

      finish.setAttribute("y", finishY.toFixed(1));
      finish.setAttribute("height", finishHeight.toFixed(1));
      if (overlayRect) {
        overlayRect.setAttribute("y", overlayY.toFixed(1));
        overlayRect.setAttribute("height", overlayHeight.toFixed(1));
      }
      if (heatingRect) {
        heatingRect.setAttribute("y", heatingY.toFixed(1));
        heatingRect.setAttribute("height", heatingHeight.toFixed(1));
      }
      if (pipe) {
        pipe.setAttribute("d", "M54 " + pipeY.toFixed(1) + " H366");
      }

      setText("#rk-timber-svg-finish-text", "okładzina • " + format(finishWeight, 0) + " kg/m²");
      setText("#rk-timber-svg-overlay-text", "płyty • " + format(overlay, 0) + " kg/m²");
      setText("#rk-timber-svg-heating-text", "warstwa grzejna • " + format(heating, 0) + " kg/m²");

      var finishText = one("#rk-timber-svg-finish-text");
      var overlayText = one("#rk-timber-svg-overlay-text");
      var heatingText = one("#rk-timber-svg-heating-text");
      if (finishText) {
        finishText.setAttribute("y", (finishY + finishHeight / 2 + 4).toFixed(1));
      }
      if (overlayText) {
        overlayText.setAttribute("y", (overlayY + overlayHeight / 2 + 4).toFixed(1));
      }
      if (heatingText) {
        heatingText.setAttribute("y", (heatingY + heatingHeight / 2 - 9).toFixed(1));
      }

      var preset = presets[activeVariant];
      if (preset) {
        setText("#rk-timber-cross-label", "Dynamiczny przekrój: " + preset.label);
      }
    }

    function updateMassChart(total, limit) {
      var group = one("#rk-timber-bars");
      var chart = one("#rk-timber-mass-chart");
      if (!group) {
        return;
      }
      while (group.firstChild) {
        group.removeChild(group.firstChild);
      }

      var values = [total, limit, 120];
      var labels = ["Nowe warstwy", "Limit", "Przykład mokry"];
      var colors = ["#28c9da", "#ff6238", "#14384d"];
      var maxValue = Math.max.apply(null, values) * 1.18;

      values.forEach(function (value, index) {
        var x = 72 + index * 112;
        var barHeight = value / maxValue * 180;
        var y = 242 - barHeight;
        group.appendChild(svgElement("rect", { x: x, y: y.toFixed(1), width: 62, height: barHeight.toFixed(1), rx: 9, fill: colors[index] }));
        group.appendChild(svgElement("text", { x: x + 31, y: y - 9, "text-anchor": "middle" }, format(value, 0)));
        group.appendChild(svgElement("text", { x: x + 31, y: 268, "text-anchor": "middle" }, labels[index]));
      });

      if (chart) {
        chart.setAttribute("aria-label", "Nowe warstwy " + format(total, 0) + " kilogramów na metr kwadratowy, limit konstruktora " + format(limit, 0) + " kilogramów na metr kwadratowy, przykład mokry 120 kilogramów na metr kwadratowy");
      }
    }

    function renderLaboratory() {
      var area = valueOf(fields.area, 24);
      var heating = valueOf(fields.heating, 10);
      var overlay = valueOf(fields.overlay, 22);
      var finishWeight = valueOf(fields.finishWeight, 12);
      var other = valueOf(fields.other, 4);
      var limit = valueOf(fields.limit, 65);
      var demand = valueOf(fields.demand, 55);
      var output = valueOf(fields.output, 70);
      var finishThickness = valueOf(fields.finishThickness, 12);
      var lambda = valueOf(fields.lambda, 0.18);

      var total = heating + overlay + finishWeight + other;
      var totalRoom = total * area;
      var loadMargin = limit - total;
      var loadUse = limit > 0 ? total / limit * 100 : 0;
      var resistance = finishThickness / 1000 / lambda;
      var powerMargin = output - demand;
      var roomNeed = area * demand / 1000;
      var roomOutput = area * output / 1000;
      var wetSaving = 120 - total;

      setText("#rk-timber-area-out", format(area, 0) + " m²");
      setText("#rk-timber-heating-out", format(heating, 0) + " kg/m²");
      setText("#rk-timber-overlay-out", format(overlay, 0) + " kg/m²");
      setText("#rk-timber-finish-weight-out", format(finishWeight, 0) + " kg/m²");
      setText("#rk-timber-other-out", format(other, 0) + " kg/m²");
      setText("#rk-timber-limit-out", format(limit, 0) + " kg/m²");
      setText("#rk-timber-demand-out", format(demand, 0) + " W/m²");
      setText("#rk-timber-output-out", format(output, 0) + " W/m²");
      setText("#rk-timber-finish-thickness-out", format(finishThickness, 0) + " mm");
      setText("#rk-timber-lambda-out", format(lambda, 2) + " W/mK");

      setText("#rk-timber-total-result", format(total, 0) + " kg/m²");
      setText("#rk-timber-total-room", "Dla " + format(area, 0) + " m² oznacza około " + format(totalRoom, 0) + " kg dodatkowej masy rozłożonej powierzchniowo.");
      setText("#rk-timber-load-margin", (loadMargin >= 0 ? "+" : "") + format(loadMargin, 0) + " kg/m²");
      setText("#rk-timber-load-use", format(loadUse, 0) + "%");
      setText("#rk-timber-r-result", format(resistance, 3) + " m²K/W");
      setText("#rk-timber-power-margin", (powerMargin >= 0 ? "+" : "") + format(powerMargin, 0) + " W/m²");
      setText("#rk-timber-room-need", format(roomNeed, 2) + " kW");
      setText("#rk-timber-room-output", format(roomOutput, 2) + " kW");
      setText("#rk-timber-wet-saving", wetSaving >= 0 ? format(wetSaving, 0) + " kg/m² mniej" : format(Math.abs(wetSaving), 0) + " kg/m² więcej");

      var fill = one("#rk-timber-limit-fill");
      if (fill) {
        var fillWidth = Math.min(Math.max(loadUse, 0), 100);
        fill.style.width = fillWidth.toFixed(1) + "%";
        if (loadUse > 100) {
          fill.style.background = "#ff6238";
        } else {
          fill.style.background = "linear-gradient(90deg, #28c9da, #078fbe)";
        }
      }

      var status = one("#rk-timber-lab-status");
      var loadOk = total <= limit;
      var powerOk = output >= demand;
      if (status) {
        if (!loadOk) {
          status.textContent = "Suma nowych warstw przekracza wpisany limit konstruktora o " + format(Math.abs(loadMargin), 0) + " kg/m². Tego wariantu nie należy akceptować bez zmiany warstw lub ponownej analizy konstrukcji.";
          status.classList.add("is-warning");
          setText("#rk-timber-verdict-result", "Przekroczony limit");
        } else if (!powerOk) {
          status.textContent = "Ciężar mieści się w wpisanym limicie, ale deklarowana moc jest niższa od wymaganej o " + format(Math.abs(powerMargin), 0) + " W/m². Trzeba skorygować system lub ograniczyć straty budynku.";
          status.classList.add("is-warning");
          setText("#rk-timber-verdict-result", "Niedobór mocy");
        } else if (resistance > 0.15) {
          status.textContent = "Bilans ciężaru i mocy jest dodatni, lecz opór samej okładziny jest wysoki. Sprawdź limit całego zestawu oraz wydajność systemu dla tej warstwy.";
          status.classList.add("is-warning");
          setText("#rk-timber-verdict-result", "Sprawdź okładzinę");
        } else {
          status.textContent = "Wariant mieści się w zadanym limicie i ma dodatni bilans mocy — oba wyniki wymagają potwierdzenia dokumentacją konstrukcji i konkretnego systemu.";
          status.classList.remove("is-warning");
          setText("#rk-timber-verdict-result", "Warunkowo dodatnia");
        }
      }

      updateCrossSection(heating, overlay, finishWeight);
      updateMassChart(total, limit);
    }

    Object.keys(fields).forEach(function (key) {
      var field = fields[key];
      if (!field) {
        return;
      }
      field.addEventListener("input", renderLaboratory);
      field.addEventListener("change", renderLaboratory);
    });

    many("[data-timber-preset]").forEach(function (button) {
      button.addEventListener("click", function () {
        var key = button.getAttribute("data-timber-preset");
        var preset = presets[key];
        if (!preset) {
          return;
        }
        activeVariant = key;
        Object.keys(fields).forEach(function (fieldKey) {
          if (fields[fieldKey]) {
            fields[fieldKey].value = String(preset[fieldKey]);
          }
        });
        many("[data-timber-preset]").forEach(function (item) {
          item.classList.toggle("is-active", item === button);
        });
        renderLaboratory();
      });
    });

    many(".rk-timber-nav a").forEach(function (link) {
      link.addEventListener("click", function (event) {
        var selector = link.getAttribute("href");
        if (!selector) {
          return;
        }
        var target = root.querySelector(selector);
        if (target) {
          event.preventDefault();
          target.scrollIntoView({ behavior: "smooth", block: "start" });
        }
      });
    });

    var tabButtons = many("[data-timber-author-tab]");
    var tabPanels = many("[data-timber-author-panel]");

    function activateAuthorTab(key) {
      tabButtons.forEach(function (button) {
        var active = button.getAttribute("data-timber-author-tab") === key;
        button.classList.toggle("is-active", active);
        button.setAttribute("aria-selected", active ? "true" : "false");
        button.tabIndex = active ? 0 : -1;
      });
      tabPanels.forEach(function (panel) {
        var active = panel.getAttribute("data-timber-author-panel") === key;
        panel.hidden = !active;
      });
    }

    tabButtons.forEach(function (button, index) {
      button.addEventListener("click", function () {
        activateAuthorTab(button.getAttribute("data-timber-author-tab"));
      });
      button.addEventListener("keydown", function (event) {
        if (event.key !== "ArrowRight") {
          if (event.key !== "ArrowLeft") {
            return;
          }
        }
        event.preventDefault();
        var movement = event.key === "ArrowRight" ? 1 : -1;
        var nextIndex = (index + movement + tabButtons.length) % tabButtons.length;
        var nextButton = tabButtons[nextIndex];
        activateAuthorTab(nextButton.getAttribute("data-timber-author-tab"));
        nextButton.focus();
      });
    });

    var progress = one(".rk-timber-progress");
    function updateProgress() {
      if (!progress) {
        return;
      }
      var articleTop = root.getBoundingClientRect().top + window.scrollY;
      var articleHeight = root.offsetHeight - window.innerHeight;
      var travelled = window.scrollY - articleTop;
      var percentage = articleHeight > 0 ? travelled / articleHeight * 100 : 0;
      percentage = Math.min(Math.max(percentage, 0), 100);
      progress.style.width = percentage.toFixed(2) + "%";
    }

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

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initTimberGuide);
  } else {
    initTimberGuide();
  }
  window.setTimeout(initTimberGuide, 500);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">Czy ogrzewanie podłogowe nadaje się do drewnianego stropu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
