{"id":12140,"date":"2026-07-12T15:15:17","date_gmt":"2026-07-12T12:15:17","guid":{"rendered":"https:\/\/altal.md\/?page_id=12140"},"modified":"2026-07-12T22:55:11","modified_gmt":"2026-07-12T19:55:11","slug":"calcul-necesar-termic","status":"publish","type":"page","link":"https:\/\/altal.md\/uk\/instrumente-hvac\/calcul-necesar-termic\/","title":{"rendered":"Calcul necesar termic"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12140\" class=\"elementor elementor-12140\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8991ab e-flex e-con-boxed e-con e-parent\" data-id=\"d8991ab\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-08aa1f3 elementor-widget elementor-widget-heading\" data-id=\"08aa1f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Calcul necesar termic pentru alegerea unei pompe de c\u0103ldur\u0103\n\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4d713d74 e-flex e-con-boxed e-con e-parent\" data-id=\"4d713d74\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0790466 elementor-widget elementor-widget-text-editor\" data-id=\"0790466\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Calculul necesarului termic este primul pas pentru dimensionarea corect\u0103 a unui sistem de \u00eenc\u0103lzire.<br \/>Un calcul corect permite alegerea unei pompe de c\u0103ldur\u0103 cu puterea potrivit\u0103, evit\u00e2nd at\u00e2t supradimensionarea, c\u00e2t \u0219i func\u021bionarea insuficient\u0103 a echipamentului.<br \/>ALTAL ofer\u0103 instrumente inteligente pentru estimarea necesarului de c\u0103ldur\u0103 al locuin\u021belor \u0219i configurarea sistemelor HVAC eficiente.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cc42fba elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"cc42fba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f42a28 elementor-widget elementor-widget-html\" data-id=\"1f42a28\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n\/* ===== ALTAL HEAT LOSS CALCULATOR v2.1 ===== *\/\r\n.altal-hl-wrapper {\r\n    max-width: 960px;\r\n    margin: 40px auto;\r\n    padding: 30px 24px;\r\n    background: #ffffff;\r\n    border-radius: 20px;\r\n    box-shadow: 0 10px 40px rgba(0,0,0,0.08);\r\n    font-family: Arial, sans-serif;\r\n    color: #1a2332;\r\n}\r\n.altal-hl-wrapper .step { display: none; }\r\n.altal-hl-wrapper .step.active { display: block; }\r\n.altal-hl-wrapper .step-dot { display: inline-block; width: 30px; height: 4px; background: #ddd; margin: 0 2px; border-radius: 4px; }\r\n.altal-hl-wrapper .step-dot.active { background: #0057a8; }\r\n.altal-hl-wrapper .step-dot.done { background: #34a853; }\r\n.altal-hl-wrapper input, .altal-hl-wrapper select { width: 100%; padding: 10px 14px; border: 1px solid #ddd; border-radius: 8px; font-size: 14px; margin-top: 4px; }\r\n.altal-hl-wrapper .row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 14px; }\r\n.altal-hl-wrapper .field { margin-bottom: 14px; }\r\n.altal-hl-wrapper label { font-weight: 600; font-size: 13px; display: block; margin-bottom: 3px; }\r\n.altal-hl-wrapper .hint { font-weight: 400; color: #888; font-size: 12px; }\r\n.altal-hl-wrapper .btn { padding: 12px 30px; border: none; border-radius: 8px; font-weight: 600; cursor: pointer; font-size: 15px; }\r\n.altal-hl-wrapper .btn-primary { background: #0057a8; color: #fff; }\r\n.altal-hl-wrapper .btn-primary:hover { background: #004a8f; }\r\n.altal-hl-wrapper .btn-secondary { background: #eee; color: #333; }\r\n.altal-hl-wrapper .btn-secondary:hover { background: #ddd; }\r\n.altal-hl-wrapper .btn-success { background: #34a853; color: #fff; }\r\n.altal-hl-wrapper .btn-success:hover { background: #2d9348; }\r\n.altal-hl-wrapper .btn-success:disabled { opacity: 0.6; cursor: not-allowed; }\r\n.altal-hl-wrapper .buttons { display: flex; justify-content: space-between; margin-top: 20px; padding-top: 16px; border-top: 1px solid #eee; }\r\n.altal-hl-wrapper .checkbox-group { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }\r\n.altal-hl-wrapper .checkbox-item { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 8px 18px; border: 2px solid #dce0e6; border-radius: 10px; transition: all 0.2s; background: #fafbfc; font-size: 14px; user-select: none; }\r\n.altal-hl-wrapper .checkbox-item:hover { border-color: #0057a8; }\r\n.altal-hl-wrapper .checkbox-item.checked { border-color: #0057a8; background: #eef4fc; }\r\n.altal-hl-wrapper .checkbox-item input[type=\"checkbox\"] { width: 18px; height: 18px; margin: 0; accent-color: #0057a8; cursor: pointer; flex-shrink: 0; }\r\n.altal-hl-wrapper .results-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; margin: 16px 0; }\r\n.altal-hl-wrapper .result-card { padding: 16px 20px; border-radius: 12px; border: 1px solid #e4ecf7; background: #f8faff; }\r\n.altal-hl-wrapper .result-card .label { font-size: 11px; text-transform: uppercase; color: #888; }\r\n.altal-hl-wrapper .result-card .value { font-size: 28px; font-weight: 700; color: #0057a8; }\r\n.altal-hl-wrapper .result-card .value .unit { font-size: 14px; color: #888; font-weight: 400; }\r\n.altal-hl-wrapper .result-card.highlight { background: #0057a8; border-color: #0057a8; }\r\n.altal-hl-wrapper .result-card.highlight .label { color: rgba(255,255,255,0.7); }\r\n.altal-hl-wrapper .result-card.highlight .value { color: #fff; }\r\n.altal-hl-wrapper .result-card.highlight .value .unit { color: rgba(255,255,255,0.6); }\r\n.altal-hl-wrapper .result-card.green { background: #ebf7ee; border-color: #34a853; }\r\n.altal-hl-wrapper .result-card.green .value { color: #1e7e34; }\r\n.altal-hl-wrapper .result-card.warning-card { background: #fff3e0; border-color: #ff9800; }\r\n.altal-hl-wrapper .result-card.warning-card .value { color: #e65100; }\r\n.altal-hl-wrapper .recommendations { background: #fef9f0; border: 1px solid #fde6c2; border-radius: 12px; padding: 16px 20px; margin: 16px 0; }\r\n.altal-hl-wrapper .recommendations h4 { margin: 0 0 8px 0; color: #b45f06; }\r\n.altal-hl-wrapper .recommendations ul { margin: 0; padding-left: 20px; }\r\n.altal-hl-wrapper .recommendations ul li { list-style-type: \"\u2705 \"; padding-left: 6px; }\r\n.altal-hl-wrapper .recommendations ul li.warning { list-style-type: \"\u26a0\ufe0f \"; color: #a0522d; }\r\n.altal-hl-wrapper .result-summary { background: #f0f5ff; border-radius: 12px; padding: 16px 20px; margin: 16px 0; border: 1px solid #d4e0f0; }\r\n.altal-hl-wrapper .result-summary table { width: 100%; border-collapse: collapse; font-size: 13px; }\r\n.altal-hl-wrapper .result-summary td { padding: 4px 8px; border-bottom: 1px solid #e4ecf7; }\r\n.altal-hl-wrapper .result-summary td:first-child { font-weight: 600; color: #1a2332; width: 40%; }\r\n.altal-hl-wrapper .result-summary td:last-child { color: #555; }\r\n.altal-hl-wrapper .field-disabled { opacity: 0.5; pointer-events: none; }\r\n.altal-hl-wrapper .spinner { display: inline-block; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: spin 0.6s linear infinite; vertical-align: middle; margin-right: 6px; }\r\n@keyframes spin { to { transform: rotate(360deg); } }\r\n.altal-hl-wrapper .note-box { background: #fff8e1; border-left: 4px solid #ff9800; padding: 10px 16px; border-radius: 4px; margin-top: 8px; font-size: 13px; color: #6d5a1a; }\r\n.altal-hl-wrapper .alert-box { background: #ffebee; border: 2px solid #c62828; padding: 16px 20px; border-radius: 10px; margin: 12px 0; font-size: 14px; color: #b71c1c; }\r\n.altal-hl-wrapper .alert-box strong { font-size: 16px; }\r\n.altal-hl-wrapper .alert-box .big { font-size: 24px; font-weight: 700; }\r\n.altal-hl-wrapper .stats-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 12px; margin: 12px 0; }\r\n@media (max-width: 768px) {\r\n    .altal-hl-wrapper .results-grid { grid-template-columns: 1fr; }\r\n    .altal-hl-wrapper .stats-grid { grid-template-columns: 1fr 1fr; }\r\n    .altal-hl-wrapper .row { grid-template-columns: 1fr; }\r\n    .altal-hl-wrapper { padding: 16px 12px; margin: 20px 10px; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"altal-hl-wrapper\">\r\n\r\n    <!-- HEADER -->\r\n    <div style=\"display:flex;align-items:center;gap:14px;padding-bottom:20px;border-bottom:2px solid #f0f2f5;margin-bottom:24px;\">\r\n        <div style=\"width:44px;height:44px;background:#0057a8;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:700;\">A<\/div>\r\n        <div>\r\n            <h2 style=\"margin:0;color:#0057a8;font-size:22px;\">ALTAL Heat Loss Calculator<\/h2>\r\n            <p style=\"margin:2px 0 0;color:#888;font-size:13px;\">Calcul termic profesional pentru cl\u0103diri de la 50 la 100.000 m\u00b2<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- PROGRESS -->\r\n    <div id=\"hlProgress\" style=\"display:flex;gap:4px;margin-bottom:24px;flex-wrap:wrap;\">\r\n        <div class=\"step-dot active\" data-step=\"1\"><\/div>\r\n        <div class=\"step-dot\" data-step=\"2\"><\/div>\r\n        <div class=\"step-dot\" data-step=\"3\"><\/div>\r\n        <div class=\"step-dot\" data-step=\"4\"><\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 1: Loca\u021bie \u0219i clim\u0103 -->\r\n    <div class=\"step active\" data-step=\"1\">\r\n        <h3>\ud83d\udccd Loca\u021bie, clim\u0103 \u0219i confort interior<\/h3>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>\u021aara *<\/label>\r\n                <select id=\"hlCountry\" onchange=\"hlUpdateCities()\">\r\n                    <option value=\"MD\">Moldova<\/option>\r\n                    <option value=\"RO\">Rom\u00e2nia<\/option>\r\n                    <option value=\"UA\">Ucraina<\/option>\r\n                <\/select>\r\n            <\/div>\r\n            <div class=\"field\"><label>Ora\u0219ul *<\/label>\r\n                <select id=\"hlCity\" onchange=\"hlUpdateTemperatures()\">\r\n                    <!-- Populat dinamic -->\r\n                <\/select>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Temperatur\u0103 exterioar\u0103 iarn\u0103 (calcul) * <span class=\"hint\">\u00b0C<\/span><\/label>\r\n                <input type=\"number\" id=\"hlWinterTemp\" value=\"-15\" min=\"-35\" max=\"10\" step=\"0.5\">\r\n            <\/div>\r\n            <div class=\"field\"><label>Temperatur\u0103 exterioar\u0103 var\u0103 * <span class=\"hint\">\u00b0C<\/span><\/label>\r\n                <input type=\"number\" id=\"hlSummerTemp\" value=\"32\" min=\"20\" max=\"45\" step=\"0.5\">\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Temperatur\u0103 interioar\u0103 iarn\u0103 (\u00eenc\u0103lzire) * <span class=\"hint\">\u00b0C<\/span><\/label>\r\n                <input type=\"number\" id=\"hlInteriorWinter\" value=\"22\" min=\"8\" max=\"35\" step=\"0.5\">\r\n                <div class=\"note-box\">\ud83d\udca1 Recomandat: 20-22\u00b0C locuin\u021be, 12-16\u00b0C depozite\/industriale, 28\u00b0C piscine<\/div>\r\n            <\/div>\r\n            <div class=\"field\"><label>Temperatur\u0103 interioar\u0103 var\u0103 (r\u0103cire) * <span class=\"hint\">\u00b0C<\/span><\/label>\r\n                <input type=\"number\" id=\"hlInteriorSummer\" value=\"24\" min=\"16\" max=\"38\" step=\"0.5\">\r\n                <div class=\"note-box\">\ud83d\udca1 Recomandat: 24-26\u00b0C pentru confort, 18-22\u00b0C pentru birouri<\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"buttons\"><span><\/span><button class=\"btn btn-primary\" onclick=\"hlNextStep(2)\">Pasul 2 \u2192<\/button><\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 2: Tipul cl\u0103dirii -->\r\n    <div class=\"step\" data-step=\"2\">\r\n        <h3>\ud83c\udfd7\ufe0f Tipul \u0219i destina\u021bia cl\u0103dirii<\/h3>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Categoria cl\u0103dirii *<\/label>\r\n                <select id=\"hlBuildingType\">\r\n                    <option value=\"Vil\u0103\">Vil\u0103 \/ Cas\u0103 privat\u0103<\/option>\r\n                    <option value=\"Reziden\u021bial\">Reziden\u021bial (bloc locuin\u021be)<\/option>\r\n                    <option value=\"Oficiu\">Oficiu \/ Cl\u0103dire administrativ\u0103<\/option>\r\n                    <option value=\"Recrea\u021bie\">Recrea\u021bie (piscin\u0103, saun\u0103, SPA)<\/option>\r\n                    <option value=\"Festivit\u0103\u021bi\">Festivit\u0103\u021bi (sal\u0103 evenimente, restaurant)<\/option>\r\n                    <option value=\"Industrial\u0103 tehnic\u0103\">Industrial\u0103 tehnic\u0103 (produc\u021bie)<\/option>\r\n                    <option value=\"Industrie alimentar\u0103\">Industrie alimentar\u0103<\/option>\r\n                    <option value=\"Industrie chimic\u0103\">Industrie chimic\u0103<\/option>\r\n                    <option value=\"Spital\">Spital \/ Clinic\u0103<\/option>\r\n                    <option value=\"Depozit\">Depozit \/ Logistic\u0103<\/option>\r\n                    <option value=\"Seral\u0103\">Seral\u0103 \/ Complex agricol<\/option>\r\n                <\/select>\r\n            <\/div>\r\n            <div class=\"field\"><label>Num\u0103r de persoane <span class=\"hint\">(1-3000)<\/span><\/label>\r\n                <input type=\"number\" id=\"hlResidentsCount\" value=\"4\" min=\"1\" max=\"3000\" step=\"1\">\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"buttons\"><button class=\"btn btn-secondary\" onclick=\"hlPrevStep(1)\">\u2190 \u00cenapoi<\/button><button class=\"btn btn-primary\" onclick=\"hlNextStep(3)\">Pasul 3 \u2192<\/button><\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 3: Datele cl\u0103dirii -->\r\n    <div class=\"step\" data-step=\"3\">\r\n        <h3>\ud83d\udcd0 Datele constructive ale cl\u0103dirii<\/h3>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Suprafa\u021ba util\u0103 * <span class=\"hint\">m\u00b2<\/span><\/label>\r\n                <input type=\"number\" id=\"hlArea\" value=\"150\" min=\"10\" max=\"100000\">\r\n            <\/div>\r\n            <div class=\"field\"><label>\u00cen\u0103l\u021bimea medie * <span class=\"hint\">m<\/span><\/label>\r\n                <input type=\"number\" id=\"hlHeight\" value=\"2.75\" min=\"2.4\" max=\"12\" step=\"0.05\">\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Volum <span class=\"hint\">m\u00b3 (automat)<\/span><\/label>\r\n                <input type=\"number\" id=\"hlVolume\" readonly style=\"background:#f0f2f5;cursor:not-allowed;\">\r\n            <\/div>\r\n            <div class=\"field\"><label>Num\u0103r de etaje *<\/label>\r\n                <select id=\"hlFloors\">\r\n                    <option value=\"1\">1<\/option><option value=\"2\" selected>2<\/option><option value=\"3\">3<\/option>\r\n                    <option value=\"4\">4<\/option><option value=\"5\">5<\/option><option value=\"6\">6<\/option>\r\n                    <option value=\"7\">7<\/option><option value=\"8\">8<\/option><option value=\"9\">9<\/option>\r\n                    <option value=\"10\">10<\/option><option value=\"11\">11<\/option><option value=\"12\">12<\/option>\r\n                    <option value=\"13\">13<\/option><option value=\"14\">14<\/option><option value=\"15\">15<\/option>\r\n                    <option value=\"16\">16<\/option><option value=\"17\">17<\/option><option value=\"18\">18<\/option>\r\n                    <option value=\"19\">19<\/option><option value=\"20\">20<\/option><option value=\"21\">21<\/option>\r\n                <\/select>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Material pere\u021bi exteriori *<\/label>\r\n                <select id=\"hlWallMaterial\">\r\n                    <option value=\"C\u0103r\u0103mid\u0103\">C\u0103r\u0103mid\u0103 plin\u0103 (\u03bb=0.5)<\/option>\r\n                    <option value=\"BCA\" selected>BCA (\u03bb=0.3)<\/option>\r\n                    <option value=\"Lemn\">Lemn (\u03bb=0.6)<\/option>\r\n                    <option value=\"P+\">P+ (\u03bb=0.15)<\/option>\r\n                    <option value=\"Cotelac\">Cotelac \/ Calcar (\u03bb=0.6)<\/option>\r\n                    <option value=\"Sandwich\">Sandwich panel (\u03bb=0.04)<\/option>\r\n                    <option value=\"Gazobeton\">Gazobeton (\u03bb=0.2)<\/option>\r\n                    <option value=\"Silicat\">C\u0103r\u0103mid\u0103 silicat\u0103 (\u03bb=0.6)<\/option>\r\n                    <option value=\"Beton\">Beton armat (\u03bb=1.5)<\/option>\r\n                <\/select>\r\n            <\/div>\r\n            <div class=\"field\"><label>Grosime pere\u021bi exteriori * <span class=\"hint\">mm<\/span><\/label>\r\n                <input type=\"number\" id=\"hlWallThickness\" value=\"400\" min=\"50\" max=\"2000\" step=\"10\">\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Izola\u021bie termic\u0103 pere\u021bi *<\/label>\r\n                <select id=\"hlWallInsulation\">\r\n                    <option value=\"F\u0103r\u0103\">F\u0103r\u0103 izola\u021bie<\/option>\r\n                    <option value=\"Spum\u0103 5cm\">Spum\u0103 polistiren 5cm<\/option>\r\n                    <option value=\"Spum\u0103 10cm\" selected>Spum\u0103 polistiren 10cm<\/option>\r\n                    <option value=\"Spum\u0103 15cm\">Spum\u0103 polistiren 15cm<\/option>\r\n                    <option value=\"Spum\u0103 20cm\">Spum\u0103 polistiren 20cm<\/option>\r\n                    <option value=\"Spum\u0103 30cm\">Spum\u0103 polistiren 30cm<\/option>\r\n                    <option value=\"Vat\u0103 5cm\">Vat\u0103 mineral\u0103 5cm<\/option>\r\n                    <option value=\"Vat\u0103 10cm\">Vat\u0103 mineral\u0103 10cm<\/option>\r\n                    <option value=\"Vat\u0103 15cm\">Vat\u0103 mineral\u0103 15cm<\/option>\r\n                    <option value=\"Vat\u0103 20cm\">Vat\u0103 mineral\u0103 20cm<\/option>\r\n                    <option value=\"Vat\u0103 30cm\">Vat\u0103 mineral\u0103 30cm<\/option>\r\n                    <option value=\"Poliuretan 5cm\">Poliuretan 5cm<\/option>\r\n                    <option value=\"Poliuretan 10cm\">Poliuretan 10cm<\/option>\r\n                    <option value=\"Poliuretan 15cm\">Poliuretan 15cm<\/option>\r\n                    <option value=\"Ventilat 5cm\">Fa\u021bad\u0103 ventilat\u0103 5cm<\/option>\r\n                    <option value=\"Ventilat 10cm\">Fa\u021bad\u0103 ventilat\u0103 10cm<\/option>\r\n                    <option value=\"Ventilat 15cm\">Fa\u021bad\u0103 ventilat\u0103 15cm<\/option>\r\n                    <option value=\"Ventilat 20cm\">Fa\u021bad\u0103 ventilat\u0103 20cm<\/option>\r\n                <\/select>\r\n            <\/div>\r\n            <div class=\"field\"><label>Tip ferestre *<\/label>\r\n                <select id=\"hlWindowType\">\r\n                    <option value=\"Sticl\u0103 simpl\u0103\">Sticl\u0103 simpl\u0103 (U=5.0)<\/option>\r\n                    <option value=\"Termopan 2cam\" selected>Termopan 2 camere (U=1.6)<\/option>\r\n                    <option value=\"Termopan 3cam\">Termopan 3 camere (U=0.9)<\/option>\r\n                    <option value=\"Termopan 3cam Low-E\">Termopan 3 camere Low-E (U=0.6)<\/option>\r\n                <\/select>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"row\">\r\n            <div class=\"field\"><label>Aria total\u0103 a ferestrelor * <span class=\"hint\">m\u00b2<\/span><\/label>\r\n                <input type=\"number\" id=\"hlWindowArea\" value=\"22.5\" min=\"0\" max=\"5000\" step=\"0.5\">\r\n            <\/div>\r\n            <div class=\"field\"><label>Izola\u021bia acoperi\u0219ului *<\/label>\r\n                <select id=\"hlRoofInsulation\">\r\n                    <option value=\"F\u0103r\u0103\">F\u0103r\u0103 izola\u021bie (U=2.0)<\/option>\r\n                    <option value=\"Spum\u0103 10cm\" selected>Spum\u0103 10cm (U=0.4)<\/option>\r\n                    <option value=\"Spum\u0103 20cm\">Spum\u0103 20cm (U=0.2)<\/option>\r\n                    <option value=\"Spum\u0103 30cm\">Spum\u0103 30cm (U=0.13)<\/option>\r\n                    <option value=\"Vat\u0103 10cm\">Vat\u0103 mineral\u0103 10cm (U=0.35)<\/option>\r\n                    <option value=\"Vat\u0103 20cm\">Vat\u0103 mineral\u0103 20cm (U=0.18)<\/option>\r\n                    <option value=\"Vat\u0103 30cm\">Vat\u0103 mineral\u0103 30cm (U=0.12)<\/option>\r\n                    <option value=\"Poliuretan 5cm\">Poliuretan 5cm (U=0.3)<\/option>\r\n                    <option value=\"Poliuretan 10cm\">Poliuretan 10cm (U=0.15)<\/option>\r\n                    <option value=\"Poliuretan 15cm\">Poliuretan 15cm (U=0.1)<\/option>\r\n                    <option value=\"L\u00e2n\u0103 15cm\">L\u00e2n\u0103 de oaie 15cm (U=0.25)<\/option>\r\n                <\/select>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"buttons\"><button class=\"btn btn-secondary\" onclick=\"hlPrevStep(2)\">\u2190 \u00cenapoi<\/button><button class=\"btn btn-primary\" onclick=\"hlNextStep(4)\">Pasul 4 \u2192<\/button><\/div>\r\n    <\/div>\r\n\r\n    <!-- STEP 4: Rezultate -->\r\n    <div class=\"step\" data-step=\"4\">\r\n        <h3>\ud83d\udcca Rezultatele calculului termic<\/h3>\r\n\r\n        <!-- ALERTA RO\u0218IE -->\r\n        <div class=\"alert-box\">\r\n            <strong>\u26a0\ufe0f ATEN\u021aIE!<\/strong><br>\r\n            Acest calcul reprezint\u0103 <strong>necesarul termic teoretic pentru func\u021bionare continu\u0103 24\/7\/30<\/strong> (f\u0103r\u0103 \u00eentrerupere) la temperatura exterioar\u0103 de dimensionare.<br><br>\r\n            <span style=\"font-size:15px;\">Pentru dimensionarea real\u0103 a echipamentului, aplica\u021bi un <strong>factor de corec\u021bie<\/strong> conform recomand\u0103rilor de mai jos:<\/span><br>\r\n            <span style=\"display:inline-block;margin-top:8px;padding:8px 16px;background:#fff;border-radius:8px;\">\r\n                <span style=\"font-weight:700;\">Q_echipament = Q_teoretic \u00d7 Factor<\/span>\r\n            <\/span>\r\n        <\/div>\r\n\r\n        <!-- REZUMAT -->\r\n        <div class=\"result-summary\" id=\"hlSummary\">\r\n            <h4 style=\"margin:0 0 10px 0;color:#0057a8;\">\ud83d\udccb Rezumatul condi\u021biilor introduse<\/h4>\r\n            <table id=\"hlSummaryTable\">\r\n                <tr><td>\ud83c\udf0d \u021aar\u0103 \/ Ora\u0219<\/td><td id=\"hlS_location\">-<\/td><\/tr>\r\n                <tr><td>\ud83c\udfd7\ufe0f Tip cl\u0103dire<\/td><td id=\"hlS_building\">-<\/td><\/tr>\r\n                <tr><td>\ud83d\udcd0 Suprafa\u021b\u0103 \/ Volum<\/td><td id=\"hlS_area\">-<\/td><\/tr>\r\n                <tr><td>\ud83e\uddf1 Pere\u021bi<\/td><td id=\"hlS_walls\">-<\/td><\/tr>\r\n                <tr><td>\ud83e\ude9f Ferestre<\/td><td id=\"hlS_windows\">-<\/td><\/tr>\r\n                <tr><td>\ud83c\udfe0 Acoperi\u0219<\/td><td id=\"hlS_roof\">-<\/td><\/tr>\r\n                <tr><td>\ud83c\udf21\ufe0f Temperaturi exterioare<\/td><td id=\"hlS_temps\">-<\/td><\/tr>\r\n                <tr><td>\ud83c\udf21\ufe0f Temperaturi interioare<\/td><td id=\"hlS_interior\">-<\/td><\/tr>\r\n                <tr><td>\ud83d\udc65 Ocupan\u021bi<\/td><td id=\"hlS_people\">-<\/td><\/tr>\r\n            <\/table>\r\n        <\/div>\r\n\r\n        <!-- REZULTATE -->\r\n        <div class=\"results-grid\">\r\n            <div class=\"result-card highlight\">\r\n                <div class=\"label\">\u26a1 Necesar termic (Q_teoretic)<\/div>\r\n                <div class=\"value\" id=\"hlResultQpeak\">0 <span class=\"unit\">kW<\/span><\/div>\r\n                <div style=\"font-size:11px;color:#888;margin-top:4px;\">24\/7\/30 - f\u0103r\u0103 \u00eentrerupere<\/div>\r\n            <\/div>\r\n            <div class=\"result-card green\">\r\n                <div class=\"label\">\ud83d\udcc8 Necesar specific<\/div>\r\n                <div class=\"value\" id=\"hlResultSpecific\">0 <span class=\"unit\">W\/m\u00b2<\/span><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\">\r\n                <div class=\"label\">\ud83d\udcd0 Clas\u0103 energetic\u0103 estimat\u0103<\/div>\r\n                <div class=\"value\" id=\"hlResultClass\" style=\"font-size:22px;\">A<\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- DETALII SUPLIMENTARE -->\r\n        <div class=\"stats-grid\">\r\n            <div style=\"background:#f8faff;border-radius:10px;padding:12px 16px;border:1px solid #e4ecf7;text-align:center;\">\r\n                <div style=\"font-size:11px;text-transform:uppercase;color:#888;\">\u0394T iarn\u0103<\/div>\r\n                <div style=\"font-size:20px;font-weight:700;color:#0057a8;\" id=\"hlResultDeltaWinter\">0 <span style=\"font-size:14px;color:#888;\">\u00b0C<\/span><\/div>\r\n            <\/div>\r\n            <div style=\"background:#f8faff;border-radius:10px;padding:12px 16px;border:1px solid #e4ecf7;text-align:center;\">\r\n                <div style=\"font-size:11px;text-transform:uppercase;color:#888;\">\u0394T var\u0103<\/div>\r\n                <div style=\"font-size:20px;font-weight:700;color:#0057a8;\" id=\"hlResultDeltaSummer\">0 <span style=\"font-size:14px;color:#888;\">\u00b0C<\/span><\/div>\r\n            <\/div>\r\n            <div style=\"background:#f8faff;border-radius:10px;padding:12px 16px;border:1px solid #e4ecf7;text-align:center;\">\r\n                <div style=\"font-size:11px;text-transform:uppercase;color:#888;\">Consum \u00eenc\u0103lzire<\/div>\r\n                <div style=\"font-size:18px;font-weight:700;color:#0057a8;\" id=\"hlResultConsumptionHeat\">0 <span style=\"font-size:14px;color:#888;\">kWh<\/span><\/div>\r\n                <div style=\"font-size:10px;color:#888;\">(sezon rece - 180 zile)<\/div>\r\n            <\/div>\r\n            <div style=\"background:#f8faff;border-radius:10px;padding:12px 16px;border:1px solid #e4ecf7;text-align:center;\">\r\n                <div style=\"font-size:11px;text-transform:uppercase;color:#888;\">Consum r\u0103cire<\/div>\r\n                <div style=\"font-size:18px;font-weight:700;color:#0057a8;\" id=\"hlResultConsumptionCool\">0 <span style=\"font-size:14px;color:#888;\">kWh<\/span><\/div>\r\n                <div style=\"font-size:10px;color:#888;\">(sezon cald - 90 zile)<\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- FACTOR DE COREC\u021aIE -->\r\n        <div style=\"background:#f0f5ff;border-radius:12px;padding:16px 20px;border:1px solid #0057a8;margin:12px 0;\">\r\n            <div style=\"display:flex;align-items:center;gap:16px;flex-wrap:wrap;\">\r\n                <label style=\"font-weight:600;color:#1a2332;font-size:14px;\">\ud83d\udcca Factor de corec\u021bie pentru dimensionare:<\/label>\r\n                <select id=\"hlCorrectionFactor\" style=\"padding:8px 16px;border:2px solid #0057a8;border-radius:8px;font-size:14px;font-weight:600;background:#fff;\">\r\n                    <option value=\"1.0\">1.0 - Teoretic (24\/7\/30)<\/option>\r\n                    <option value=\"1.5\">1.5 - Termostat programabil<\/option>\r\n                    <option value=\"2.0\" selected>2.0 - Recomandat general<\/option>\r\n                    <option value=\"2.5\">2.5 - Cas\u0103 slab izolat\u0103 \/ zile reci<\/option>\r\n                    <option value=\"3.0\">3.0 - Sistem cu acumulare \/ \u00eenc\u0103lzire rapid\u0103<\/option>\r\n                <\/select>\r\n                <button class=\"btn btn-primary\" onclick=\"hlApplyCorrection()\" style=\"padding:8px 24px;\">Aplic\u0103 factor<\/button>\r\n            <\/div>\r\n            <div style=\"margin-top:10px;font-size:13px;color:#555;\">\r\n                <strong>Q_echipament recomandat:<\/strong> <span id=\"hlCorrectedPower\" style=\"font-size:20px;font-weight:700;color:#c62828;\">0<\/span> kW\r\n                <span style=\"font-size:12px;color:#888;margin-left:10px;\">(Q_teoretic \u00d7 factor)<\/span>\r\n            <\/div>\r\n            <div style=\"margin-top:6px;font-size:12px;color:#888;\">\r\n                \u26a1 Pentru \u00eenc\u0103lzire: se aplic\u0103 factorul la Q_teoretic\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- RECOMAND\u0102RI -->\r\n        <div class=\"recommendations\">\r\n            <h4>\ud83d\udca1 Recomand\u0103ri pentru sistemul de \u00eenc\u0103lzire<\/h4>\r\n            <ul id=\"hlRecList\">\r\n                <li>Rezultate estimative. Pentru un proiect detaliat, consulta\u021bi un inginer specialist.<\/li>\r\n            <\/ul>\r\n        <\/div>\r\n\r\n        <!-- BUTON CONFIGURATOR -->\r\n        <div style=\"text-align:center;margin:24px 0 12px;padding:20px;background:#eef4fc;border-radius:12px;border:1px solid #0057a8;\">\r\n            <p style=\"font-size:15px;color:#1a2332;margin-bottom:12px;\">\ud83d\udd27 <strong>Acest rezultat poate fi folosit \u00een Configuratorul ALTAL<\/strong> pentru a selecta pompa de c\u0103ldur\u0103 \u0219i componentele sistemului.<\/p>\r\n            <button class=\"btn btn-success\" onclick=\"alert('Transfera\u021bi Q_echipament=' + document.getElementById('hlCorrectedPower').innerHTML.replace(\/[^0-9.]\/g,'') + ' kW \u00een Configurator')\" style=\"padding:14px 40px;font-size:16px;\">\r\n                \u27a1\ufe0f Deschide Configuratorul\r\n            <\/button>\r\n            <p style=\"font-size:12px;color:#888;margin-top:8px;\">Valoarea Q_echipament (cu factor de corec\u021bie) va fi transferat\u0103 automat<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"buttons\">\r\n            <button class=\"btn btn-secondary\" onclick=\"hlPrevStep(3)\">\u2190 Modific\u0103 date<\/button>\r\n            <button class=\"btn btn-secondary\" onclick=\"location.reload()\">\ud83d\udd04 Reset calculator<\/button>\r\n        <\/div>\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\n\/\/ ============================================================\r\n\/\/ DATE CLIMATICE PE \u021a\u0102RI \u0218I ORA\u0218E\r\n\/\/ ============================================================\r\nconst HL_CITIES = {\r\n    'MD': {\r\n        label: 'Moldova',\r\n        cities: {\r\n            'Chi\u0219in\u0103u': { winter: -15, summer: 32 },\r\n            'B\u0103l\u021bi': { winter: -18, summer: 31 },\r\n            'Tiraspol': { winter: -16, summer: 33 },\r\n            'Bender': { winter: -16, summer: 33 },\r\n            'Cahul': { winter: -14, summer: 34 },\r\n            'Orhei': { winter: -17, summer: 31 },\r\n            'Soroca': { winter: -19, summer: 30 },\r\n            'Comrat': { winter: -15, summer: 34 },\r\n            'Ungheni': { winter: -16, summer: 31 },\r\n            'C\u0103u\u0219eni': { winter: -15, summer: 33 },\r\n            'Edine\u021b': { winter: -20, summer: 30 },\r\n            'H\u00eence\u0219ti': { winter: -16, summer: 32 },\r\n            'Str\u0103\u0219eni': { winter: -16, summer: 32 },\r\n            'Flore\u0219ti': { winter: -18, summer: 30 },\r\n            'Alt\u0103 localitate': { winter: -15, summer: 32 }\r\n        }\r\n    },\r\n    'RO': {\r\n        label: 'Rom\u00e2nia',\r\n        cities: {\r\n            'Bucure\u0219ti': { winter: -12, summer: 35 },\r\n            'Cluj-Napoca': { winter: -15, summer: 32 },\r\n            'Timi\u0219oara': { winter: -13, summer: 34 },\r\n            'Ia\u0219i': { winter: -16, summer: 33 },\r\n            'Constan\u021ba': { winter: -8, summer: 33 },\r\n            'Craiova': { winter: -14, summer: 35 },\r\n            'Bra\u0219ov': { winter: -18, summer: 30 },\r\n            'Gala\u021bi': { winter: -14, summer: 34 },\r\n            'Ploie\u0219ti': { winter: -13, summer: 34 },\r\n            'Oradea': { winter: -14, summer: 33 },\r\n            'Bac\u0103u': { winter: -16, summer: 32 },\r\n            'Arad': { winter: -13, summer: 34 },\r\n            'Sibiu': { winter: -17, summer: 31 },\r\n            'T\u00e2rgu Mure\u0219': { winter: -16, summer: 32 },\r\n            'Alt\u0103 localitate': { winter: -12, summer: 35 }\r\n        }\r\n    },\r\n    'UA': {\r\n        label: 'Ucraina',\r\n        cities: {\r\n            'Kyiv': { winter: -18, summer: 31 },\r\n            'Odesa': { winter: -12, summer: 33 },\r\n            'Lviv': { winter: -16, summer: 30 },\r\n            'Kharkiv': { winter: -22, summer: 30 },\r\n            'Dnipro': { winter: -20, summer: 32 },\r\n            'Donetsk': { winter: -22, summer: 31 },\r\n            'Zaporizhzhia': { winter: -19, summer: 33 },\r\n            'Mykolaiv': { winter: -14, summer: 34 },\r\n            'Vinnytsia': { winter: -17, summer: 31 },\r\n            'Chernivtsi': { winter: -15, summer: 30 },\r\n            'Ivano-Frankivsk': { winter: -16, summer: 30 },\r\n            'Uzhhorod': { winter: -12, summer: 32 },\r\n            'Alt\u0103 localitate': { winter: -18, summer: 31 }\r\n        }\r\n    }\r\n};\r\n\r\n\/\/ ============================================================\r\n\/\/ UPDATE CITY LIST\r\n\/\/ ============================================================\r\nfunction hlUpdateCities() {\r\n    const country = document.getElementById('hlCountry').value;\r\n    const citySelect = document.getElementById('hlCity');\r\n    const cities = HL_CITIES[country]?.cities || {};\r\n\r\n    citySelect.innerHTML = '';\r\n    for (const [city, data] of Object.entries(cities)) {\r\n        const opt = document.createElement('option');\r\n        opt.value = city;\r\n        opt.textContent = city;\r\n        citySelect.appendChild(opt);\r\n    }\r\n\r\n    hlUpdateTemperatures();\r\n}\r\n\r\nfunction hlUpdateTemperatures() {\r\n    const country = document.getElementById('hlCountry').value;\r\n    const city = document.getElementById('hlCity').value;\r\n    const cities = HL_CITIES[country]?.cities || {};\r\n    const data = cities[city] || { winter: -15, summer: 32 };\r\n\r\n    document.getElementById('hlWinterTemp').value = data.winter;\r\n    document.getElementById('hlSummerTemp').value = data.summer;\r\n}\r\n\r\n\/\/ ============================================================\r\n\/\/ DATE DE BAZ\u0102\r\n\/\/ ============================================================\r\nconst HL_BUILDING_FACTORS = {\r\n    'Vil\u0103': 1.0, 'Reziden\u021bial': 1.1, 'Oficiu': 1.2, 'Recrea\u021bie': 1.3,\r\n    'Festivit\u0103\u021bi': 1.4, 'Industrial\u0103 tehnic\u0103': 1.5, 'Industrie alimentar\u0103': 1.6,\r\n    'Industrie chimic\u0103': 1.7, 'Spital': 1.3, 'Depozit': 0.9, 'Seral\u0103': 1.1\r\n};\r\n\r\nconst HL_U_WINDOW = {\r\n    'Sticl\u0103 simpl\u0103': 5.0, 'Termopan 2cam': 1.6,\r\n    'Termopan 3cam': 0.9, 'Termopan 3cam Low-E': 0.6\r\n};\r\n\r\nconst HL_U_ROOF = {\r\n    'F\u0103r\u0103': 2.0, 'Spum\u0103 10cm': 0.4, 'Spum\u0103 20cm': 0.2, 'Spum\u0103 30cm': 0.13,\r\n    'Vat\u0103 10cm': 0.35, 'Vat\u0103 20cm': 0.18, 'Vat\u0103 30cm': 0.12,\r\n    'Poliuretan 5cm': 0.3, 'Poliuretan 10cm': 0.15, 'Poliuretan 15cm': 0.1,\r\n    'L\u00e2n\u0103 15cm': 0.25\r\n};\r\n\r\nconst HL_U_WALL_INSULATION = {\r\n    'F\u0103r\u0103': 0,\r\n    'Spum\u0103 5cm': 0.8, 'Spum\u0103 10cm': 0.4, 'Spum\u0103 15cm': 0.27, 'Spum\u0103 20cm': 0.2, 'Spum\u0103 30cm': 0.13,\r\n    'Vat\u0103 5cm': 0.9, 'Vat\u0103 10cm': 0.45, 'Vat\u0103 15cm': 0.3, 'Vat\u0103 20cm': 0.22, 'Vat\u0103 30cm': 0.15,\r\n    'Poliuretan 5cm': 0.6, 'Poliuretan 10cm': 0.3, 'Poliuretan 15cm': 0.2,\r\n    'Ventilat 5cm': 0.7, 'Ventilat 10cm': 0.35, 'Ventilat 15cm': 0.25, 'Ventilat 20cm': 0.18\r\n};\r\n\r\nconst HL_LAMBDA = {\r\n    'C\u0103r\u0103mid\u0103': 0.5, 'BCA': 0.3, 'Lemn': 0.6, 'P+': 0.15,\r\n    'Cotelac': 0.6, 'Sandwich': 0.04, 'Gazobeton': 0.2, 'Silicat': 0.6, 'Beton': 1.5\r\n};\r\n\r\n\/\/ ============================================================\r\n\/\/ STEP NAVIGATION\r\n\/\/ ============================================================\r\nlet hlCurrentStep = 1;\r\n\r\nfunction hlUpdateProgress(step) {\r\n    document.querySelectorAll('#hlProgress .step-dot').forEach((dot, i) => {\r\n        const num = i + 1;\r\n        dot.className = 'step-dot';\r\n        if (num === step) dot.classList.add('active');\r\n        else if (num < step) dot.classList.add('done');\r\n    });\r\n}\r\n\r\nfunction hlShowStep(step) {\r\n    document.querySelectorAll('.altal-hl-wrapper .step').forEach(el => el.classList.remove('active'));\r\n    const target = document.querySelector('.altal-hl-wrapper .step[data-step=\"' + step + '\"]');\r\n    if (target) target.classList.add('active');\r\n    hlUpdateProgress(step);\r\n    const el = document.querySelector('.altal-hl-wrapper');\r\n    window.scrollTo({ top: el.offsetTop - 20, behavior: 'smooth' });\r\n}\r\n\r\nfunction hlNextStep(step) {\r\n    if (step === 4) { hlCalculate(); return; }\r\n    hlCurrentStep = step;\r\n    if (step === 3) hlUpdateVolume();\r\n    hlShowStep(step);\r\n}\r\n\r\nfunction hlPrevStep(step) {\r\n    hlCurrentStep = step;\r\n    hlShowStep(step);\r\n}\r\n\r\nfunction hlUpdateVolume() {\r\n    const area = parseFloat(document.getElementById('hlArea').value) || 0;\r\n    const height = parseFloat(document.getElementById('hlHeight').value) || 2.75;\r\n    document.getElementById('hlVolume').value = Math.round(area * height);\r\n}\r\n\r\n\/\/ ============================================================\r\n\/\/ CALCUL ENGINE\r\n\/\/ ============================================================\r\nlet _lastQpeak = 0;\r\n\r\nfunction hlGetData() {\r\n    return {\r\n        country: document.getElementById('hlCountry').value,\r\n        city: document.getElementById('hlCity').value,\r\n        t_ext_winter: parseFloat(document.getElementById('hlWinterTemp').value) || -15,\r\n        t_ext_summer: parseFloat(document.getElementById('hlSummerTemp').value) || 32,\r\n        t_int_winter: parseFloat(document.getElementById('hlInteriorWinter').value) || 22,\r\n        t_int_summer: parseFloat(document.getElementById('hlInteriorSummer').value) || 24,\r\n        building_type: document.getElementById('hlBuildingType').value,\r\n        area: parseFloat(document.getElementById('hlArea').value) || 150,\r\n        height: parseFloat(document.getElementById('hlHeight').value) || 2.75,\r\n        volume: parseFloat(document.getElementById('hlVolume').value) || 412,\r\n        floors: parseInt(document.getElementById('hlFloors').value) || 1,\r\n        wall_material: document.getElementById('hlWallMaterial').value,\r\n        wall_thickness: parseFloat(document.getElementById('hlWallThickness').value) || 400,\r\n        wall_insulation: document.getElementById('hlWallInsulation').value,\r\n        window_type: document.getElementById('hlWindowType').value,\r\n        window_area: parseFloat(document.getElementById('hlWindowArea').value) || 22.5,\r\n        roof_insulation: document.getElementById('hlRoofInsulation').value,\r\n        residents_count: parseInt(document.getElementById('hlResidentsCount').value) || 1,\r\n    };\r\n}\r\n\r\nfunction hlCalculate() {\r\n    const d = hlGetData();\r\n    const deltaT_winter = d.t_int_winter - d.t_ext_winter;\r\n    const deltaT_summer = d.t_ext_summer - d.t_int_summer;\r\n\r\n    \/\/ Coeficien\u021bi\r\n    const bf = HL_BUILDING_FACTORS[d.building_type] || 1.0;\r\n    const K_floor = d.floors === 1 ? 0.7 : 1.0;\r\n    const R_wall = (d.wall_thickness \/ 1000) \/ (HL_LAMBDA[d.wall_material] || 0.3);\r\n\r\n    \/\/ 1. Metoda simplificat\u0103 (specific\u0103)\r\n    const specific_loss = 70;\r\n    let Q_simple = (d.area * specific_loss \/ 1000) * (deltaT_winter \/ 30) * K_floor * bf;\r\n\r\n    \/\/ 2. Metoda detaliat\u0103\r\n    const insulationU = HL_U_WALL_INSULATION[d.wall_insulation] || 0;\r\n    const R_total = R_wall + (insulationU > 0 ? 1 \/ insulationU : 0);\r\n    const U_total = 1 \/ R_total;\r\n\r\n    const Q_walls = (d.area * 0.5 * U_total * deltaT_winter) \/ 1000;\r\n    const Q_windows = (d.window_area * (HL_U_WINDOW[d.window_type] || 1.6) * deltaT_winter) \/ 1000;\r\n    const Q_roof = (d.area * 0.2 * (HL_U_ROOF[d.roof_insulation] || 0.4) * deltaT_winter) \/ 1000;\r\n    const Q_vent = (d.volume * 0.15 * deltaT_winter) \/ 1000;\r\n\r\n    let Q_detailed = Q_walls + Q_windows + Q_roof + Q_vent;\r\n\r\n    \/\/ 3. Media ponderat\u0103\r\n    let Q = Q_simple * 0.4 + Q_detailed * 0.6;\r\n\r\n    \/\/ 4. Aport termic de la oameni (se scade din necesarul de \u00eenc\u0103lzire)\r\n    const Q_people = Math.min(d.residents_count * 0.1, Q * 0.3);\r\n    Q = Math.max(2, Q - Q_people * 0.3);\r\n\r\n    \/\/ 5. Rotunjire\r\n    let q_peak = Math.round(Q * 10) \/ 10;\r\n    _lastQpeak = q_peak;\r\n\r\n    \/\/ 6. Necesar specific (W\/m\u00b2)\r\n    let specific_power = Math.round((q_peak \/ d.area) * 1000);\r\n\r\n    \/\/ 7. Clasa energetic\u0103 estimat\u0103\r\n    let energyClass = 'A';\r\n    if (specific_power > 120) energyClass = 'G';\r\n    else if (specific_power > 100) energyClass = 'F';\r\n    else if (specific_power > 80) energyClass = 'E';\r\n    else if (specific_power > 60) energyClass = 'D';\r\n    else if (specific_power > 45) energyClass = 'C';\r\n    else if (specific_power > 30) energyClass = 'B';\r\n    else energyClass = 'A';\r\n\r\n    \/\/ 8. Consum estimativ pe sezoane\r\n    const heating_days = 180;\r\n    const cooling_days = 90;\r\n\r\n    const consumption_heat = Math.round(q_peak * 24 * heating_days * 0.6);\r\n\r\n    let consumption_cool = 0;\r\n    if (deltaT_summer > 5) {\r\n        const q_cool = q_peak * 0.65;\r\n        consumption_cool = Math.round(q_cool * 8 * cooling_days * 0.5);\r\n    }\r\n\r\n    \/\/ ============================================================\r\n    \/\/ AFI\u0218ARE\r\n    \/\/ ============================================================\r\n\r\n    \/\/ Rezumat\r\n    const countryLabel = HL_CITIES[d.country]?.label || d.country;\r\n    document.getElementById('hlS_location').textContent = countryLabel + ' \/ ' + d.city;\r\n    document.getElementById('hlS_building').textContent = d.building_type + ' | Etaje: ' + d.floors;\r\n    document.getElementById('hlS_area').textContent = d.area + ' m\u00b2 | ' + d.volume + ' m\u00b3';\r\n    document.getElementById('hlS_walls').textContent = d.wall_material + ' | ' + d.wall_thickness + ' mm | Izola\u021bie: ' + d.wall_insulation;\r\n    document.getElementById('hlS_windows').textContent = d.window_type + ' | ' + d.window_area + ' m\u00b2';\r\n    document.getElementById('hlS_roof').textContent = d.roof_insulation;\r\n    document.getElementById('hlS_temps').textContent = 'Iarn\u0103 ' + d.t_ext_winter + '\u00b0C \/ Var\u0103 ' + d.t_ext_summer + '\u00b0C';\r\n    document.getElementById('hlS_interior').textContent = 'Iarn\u0103 ' + d.t_int_winter + '\u00b0C \/ Var\u0103 ' + d.t_int_summer + '\u00b0C';\r\n    document.getElementById('hlS_people').textContent = d.residents_count + ' persoane';\r\n\r\n    \/\/ Rezultate\r\n    document.getElementById('hlResultQpeak').innerHTML = q_peak + ' <span class=\"unit\">kW<\/span>';\r\n    document.getElementById('hlResultSpecific').innerHTML = specific_power + ' <span class=\"unit\">W\/m\u00b2<\/span>';\r\n\r\n    \/\/ Clasa energetic\u0103\r\n    const classColors = {\r\n        'A': '#34a853', 'B': '#4caf50', 'C': '#8bc34a',\r\n        'D': '#ffeb3b', 'E': '#ff9800', 'F': '#f44336', 'G': '#d32f2f'\r\n    };\r\n    const classEl = document.getElementById('hlResultClass');\r\n    classEl.textContent = energyClass;\r\n    classEl.style.color = classColors[energyClass] || '#0057a8';\r\n\r\n    \/\/ Delta T\r\n    document.getElementById('hlResultDeltaWinter').innerHTML = deltaT_winter + ' <span style=\"font-size:14px;color:#888;\">\u00b0C<\/span>';\r\n    document.getElementById('hlResultDeltaSummer').innerHTML = deltaT_summer + ' <span style=\"font-size:14px;color:#888;\">\u00b0C<\/span>';\r\n\r\n    \/\/ Consum\r\n    document.getElementById('hlResultConsumptionHeat').innerHTML = consumption_heat + ' <span style=\"font-size:14px;color:#888;\">kWh<\/span>';\r\n    document.getElementById('hlResultConsumptionCool').innerHTML = consumption_cool + ' <span style=\"font-size:14px;color:#888;\">kWh<\/span>';\r\n\r\n    \/\/ Factor de corec\u021bie - ini\u021bializare\r\n    hlApplyCorrection();\r\n\r\n    \/\/ Recomand\u0103ri\r\n    let recs = [];\r\n    if (specific_power <= 30) {\r\n        recs.push('\ud83c\udfc6 Cl\u0103dire cu consum foarte sc\u0103zut - recomand\u0103m pomp\u0103 de c\u0103ldur\u0103 aer-ap\u0103 de mic\u0103 putere');\r\n    } else if (specific_power <= 45) {\r\n        recs.push('\u2705 Cl\u0103dire eficient\u0103 - pomp\u0103 de c\u0103ldur\u0103 aer-ap\u0103 sau ap\u0103-ap\u0103');\r\n    } else if (specific_power <= 60) {\r\n        recs.push('\ud83d\udcca Cl\u0103dire cu consum mediu - recomand\u0103m pomp\u0103 de c\u0103ldur\u0103 cu EVI');\r\n    } else if (specific_power <= 80) {\r\n        recs.push('\u26a0\ufe0f Cl\u0103dire cu consum ridicat - recomand\u0103m pomp\u0103 de c\u0103ldur\u0103 ap\u0103-ap\u0103 sau sistem bivalent');\r\n    } else {\r\n        recs.push('\ud83d\udd27 Cl\u0103dire cu consum foarte ridicat - se recomand\u0103 studiu termic detaliat \u0219i sistem industrial');\r\n    }\r\n\r\n    if (d.residents_count > 100) {\r\n        recs.push('\ud83c\udfed Cl\u0103dire cu ocupare mare - necesar ventila\u021bie crescut, recuperare de c\u0103ldur\u0103 recomandat\u0103');\r\n    }\r\n\r\n    if (d.area > 2000) {\r\n        recs.push('\ud83c\udfd7\ufe0f Cl\u0103dire de mari dimensiuni - se recomand\u0103 sistem cu mai multe pompe de c\u0103ldur\u0103 \u00een cascad\u0103');\r\n    }\r\n\r\n    const recommendedFactor = specific_power > 60 ? 2.5 : 2.0;\r\n    recs.push('\ud83d\udccc Factor de corec\u021bie recomandat: ' + recommendedFactor + ' (pentru ' + (specific_power > 60 ? 'cl\u0103diri cu consum ridicat' : 'cl\u0103diri eficiente') + ')');\r\n\r\n    recs.push('\ud83d\udccb Pentru o ofert\u0103 complet\u0103, merge\u021bi la Configuratorul ALTAL');\r\n\r\n    const recList = document.getElementById('hlRecList');\r\n    recList.innerHTML = '';\r\n    recs.forEach(r => {\r\n        const li = document.createElement('li');\r\n        li.textContent = r;\r\n        if (r.includes('\u26a0\ufe0f') || r.includes('\ud83d\udd27')) li.className = 'warning';\r\n        recList.appendChild(li);\r\n    });\r\n\r\n    \/\/ Stocare pentru transfer\r\n    window._hlResult = { q_peak: q_peak, specific_power: specific_power, energyClass: energyClass };\r\n\r\n    hlShowStep(4);\r\n}\r\n\r\n\/\/ ============================================================\r\n\/\/ APLICARE FACTOR DE COREC\u021aIE\r\n\/\/ ============================================================\r\nfunction hlApplyCorrection() {\r\n    const q_peak = _lastQpeak || parseFloat(document.getElementById('hlResultQpeak').innerHTML) || 0;\r\n    const factor = parseFloat(document.getElementById('hlCorrectionFactor').value) || 2.0;\r\n    const corrected = Math.round(q_peak * factor * 10) \/ 10;\r\n    document.getElementById('hlCorrectedPower').textContent = corrected + ' kW';\r\n}\r\n\r\n\/\/ ============================================================\r\n\/\/ EVENIMENTE\r\n\/\/ ============================================================\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n    \/\/ Ini\u021bializare ora\u0219e\r\n    hlUpdateCities();\r\n\r\n    \/\/ Checkbox styling\r\n    document.querySelectorAll('.altal-hl-wrapper .checkbox-item input[type=\"checkbox\"]').forEach(cb => {\r\n        cb.addEventListener('change', function() {\r\n            this.closest('.checkbox-item').classList.toggle('checked', this.checked);\r\n        });\r\n    });\r\n\r\n    \/\/ Actualizare volum\r\n    document.getElementById('hlArea').addEventListener('input', hlUpdateVolume);\r\n    document.getElementById('hlHeight').addEventListener('input', hlUpdateVolume);\r\n    hlUpdateVolume();\r\n\r\n    \/\/ Corec\u021bie automat\u0103 la schimbarea factorului\r\n    document.getElementById('hlCorrectionFactor').addEventListener('change', hlApplyCorrection);\r\n});\r\n\r\nconsole.log('\u2705 ALTAL Heat Loss Calculator v2.1 - FINAL');\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8166ea elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"d8166ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37937251 elementor-widget elementor-widget-text-editor\" data-id=\"37937251\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>\u00a0<\/h2><h2><span style=\"color: #333399;\">Ce este necesarul termic al unei cl\u0103diri?<\/span><\/h2><p>Necesarul termic reprezint\u0103 cantitatea de energie necesar\u0103 pentru men\u021binerea temperaturii dorite \u00eentr-o cl\u0103dire \u00een condi\u021bii de temperatur\u0103 exterioar\u0103 specifice.<br \/>Calcul necesar termic ia \u00een considerare pierderile de c\u0103ldur\u0103 prin pere\u021bi, ferestre, acoperi\u0219, podea \u0219i ventila\u021bie.<\/p><h2><span style=\"color: #333399;\">De ce este important calculul necesarului termic?<\/span><\/h2><h3>\ud83d\udd25 Alegerea corect\u0103 a pompei de c\u0103ldur\u0103<\/h3><p>O pomp\u0103 de c\u0103ldur\u0103 prea mic\u0103 nu poate asigura confortul necesar, iar una prea mare poate cre\u0219te costurile \u0219i reduce eficien\u021ba.<\/p><h3>\u26a1 Consum energetic optim<\/h3><p>Dimensionarea corect\u0103 contribuie la un <a href=\"https:\/\/en.wikipedia.org\/wiki\/Coefficient_of_performance\" target=\"_blank\" rel=\"noopener\">COP<\/a> \u0219i <a href=\"https:\/\/en.wikipedia.org\/wiki\/Seasonal_energy_efficiency_ratio\" target=\"_blank\" rel=\"noopener\">SCOP<\/a> mai bune \u0219i la reducerea consumului electric.<\/p><h3>\ud83c\udfe0 Confort constant<\/h3><p>Sistemul func\u021bioneaz\u0103 stabil \u0219i men\u021bine temperatura dorit\u0103 \u00een locuin\u021b\u0103.<\/p><h2><span style=\"color: #333399;\">Ce date sunt necesare pentru calcul?<\/span><\/h2><p>\u2713 Suprafa\u021ba locuin\u021bei<br \/>\u2713 Volumul \u00eenc\u0103perilor<br \/>\u2713 Zona climatic\u0103<br \/>\u2713 Izola\u021bia pere\u021bilor<br \/>\u2713 Tipul ferestrelor<br \/>\u2713 Temperatura interioar\u0103 dorit\u0103<br \/>\u2713 Sistemul de \u00eenc\u0103lzire utilizat<br \/>\u2713 Temperatura agentului termic<\/p><h3>Cum calculeaz\u0103 ALTAL AI necesarul termic?<\/h3><p><a href=\"https:\/\/altal.md\/ro\/altal-ai-asistent-inteligent\/\" target=\"_blank\" rel=\"noopener\">ALTAL AI<\/a> va putea analiza automat caracteristicile cl\u0103dirii \u0219i va recomanda puterea optim\u0103 a pompei de c\u0103ldur\u0103, calcul necesar termic, configura\u021bia sistemului \u0219i componentele necesare.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Calcul necesar termic pentru alegerea unei pompe de c\u0103ldur\u0103 Calculul necesarului termic este primul pas pentru dimensionarea corect\u0103 a unui sistem de \u00eenc\u0103lzire.Un calcul corect permite alegerea unei pompe de c\u0103ldur\u0103 cu puterea potrivit\u0103, evit\u00e2nd at\u00e2t supradimensionarea, c\u00e2t \u0219i func\u021bionarea insuficient\u0103 a echipamentului.ALTAL ofer\u0103 instrumente inteligente pentru estimarea necesarului de c\u0103ldur\u0103 al locuin\u021belor \u0219i configurarea&#8230;<\/p>","protected":false},"author":1,"featured_media":12191,"parent":12154,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"default","_kad_post_title":"default","_kad_post_layout":"default","_kad_post_sidebar_id":"","_kad_post_content_style":"default","_kad_post_vertical_padding":"default","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-12140","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/pages\/12140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/comments?post=12140"}],"version-history":[{"count":79,"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/pages\/12140\/revisions"}],"predecessor-version":[{"id":12273,"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/pages\/12140\/revisions\/12273"}],"up":[{"embeddable":true,"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/pages\/12154"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/media\/12191"}],"wp:attachment":[{"href":"https:\/\/altal.md\/uk\/wp-json\/wp\/v2\/media?parent=12140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}