{"id":8821,"date":"2026-07-18T18:30:27","date_gmt":"2026-07-18T18:30:27","guid":{"rendered":"https:\/\/rolloninsulation.se\/?page_id=8821"},"modified":"2026-07-22T19:08:25","modified_gmt":"2026-07-22T19:08:25","slug":"kalkyl-kyltransport","status":"publish","type":"page","link":"https:\/\/rolloninsulation.se\/en\/kalkyl-kyltransport\/","title":{"rendered":"Kalkyl-kyltransport"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"vc_row wpb_row vc_row-fluid vc_row-no-padding\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div data-rellax-speed=\"0.7\" data-rellax-percentage=\"0.7\" class=\"vc_row wpb_row vc_inner vc_row-fluid\"><div class=\"wpb_column vc_column_container vc_col-sm-2\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><div class=\"wpb_column vc_column_container vc_col-sm-8\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div class=\"vc_empty_space\"   style=\"height: 40px\"><span class=\"vc_empty_space_inner\"><\/span><\/div>\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<ol>\n<li>\n<p data-path-to-node=\"1,0,0\">\ud83d\ude9a <b data-path-to-node=\"1,0,0\" data-index-in-node=\"3\">Maxa lastutrymmet (Mer plats f\u00f6r varor)<\/b> Traditionell isolering i kylbilar och containrar stj\u00e4l enormt mycket v\u00e4rdefullt utrymme p\u00e5 insidan, vilket minskar m\u00e4ngden varor du kan transportera per k\u00f6rning. Eftersom Roll-On Insulation ers\u00e4tter tjock isolering med en tunn bel\u00e4ggning beh\u00e5ller du maximal volym i lastutrymmet. Du kan lasta mer p\u00e5 samma yta utan att kompromissa med kylkapaciteten.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"1,1,0\">\ud83d\udcc9 <b data-path-to-node=\"1,1,0\" data-index-in-node=\"3\">S\u00e4nk br\u00e4nsle- och energikostnaderna<\/b> Att h\u00e5lla ett lastutrymme kallt kr\u00e4ver att kylaggregatet jobbar konstant, vilket drar stora m\u00e4ngder br\u00e4nsle eller el. Roll-On fungerar som en h\u00f6gteknologisk vakuumbarri\u00e4r (U-v\u00e4rde 0,175 W\/m\u00b2K) som aktivt reflekterar bort utifr\u00e5n kommande str\u00e5lningsv\u00e4rme fr\u00e5n sol och asfalt. Det g\u00f6r att kylaggregatet inte beh\u00f6ver jobba lika h\u00e5rt f\u00f6r att h\u00e5lla r\u00e4tt temperatur, vilket kapar bilens driftskostnader direkt.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"1,2,0\">\ud83d\udca7 <b data-path-to-node=\"1,2,0\" data-index-in-node=\"3\">Slipp kondens och m\u00f6gel (Hygieniskt och s\u00e4kert)<\/b> Snabba temperaturv\u00e4xlingar i kyltransporter skapar l\u00e4tt kondens. Med traditionell isolering rinner fukten ofta in bakom v\u00e4ggarna, vilket f\u00f6rst\u00f6r materialet och orsakar rost eller dolda m\u00f6gelangrepp. Roll-On appliceras helt s\u00f6ml\u00f6st direkt p\u00e5 ytan och \u00e4r diffusions\u00f6ppet. Det eliminerar k\u00f6ldbryggor och g\u00f6r att fukt aldrig kan st\u00e4ngas in \u2013 en absolut n\u00f6dv\u00e4ndighet f\u00f6r s\u00e4kra livsmedels- och l\u00e4kemedelstransporter.<\/p>\n<\/li>\n<\/ol>\n\n\t\t<\/div>\n\t<\/div>\n<div class=\"vc_empty_space\"   style=\"height: 40px\"><span class=\"vc_empty_space_inner\"><\/span><\/div><\/div><\/div><\/div><div class=\"wpb_column vc_column_container vc_col-sm-2\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><\/div><\/div><\/div><\/div>\n\t<div  class=\"parallax-mousemove wpb_single_image wpb_content_element vc_align_center\">\n\t\t\n\t\t\n\t\t<figure class=\"wpb_wrapper vc_figure\">\n\t\t\t<div class=\"vc_single_image-wrapper   vc_box_border_grey\"><\/div>\n\t\t<\/figure>\n\t<\/div>\n\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- Vi laddar in diagramverktyget (Chart.js) via CDN -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n\n<div class=\"calculator-container\">\n  <h2>Kyltransport-Kalkylen<\/h2>\n  <p class=\"intro-text\">S\u00e4nk aggregatets f\u00f6rbrukning, minska slitaget och s\u00e4kra kylkedjan under varma sommardagar.<\/p>\n  \n  <div class=\"calc-workspace\">\n    \n    <!-- V\u00c4NSTER SIDA: INMATNING -->\n    <div class=\"calc-side-inputs\">\n      <!-- FORDONSTYP -->\n      <div class=\"input-group\">\n        <label for=\"vehicle_type\">V\u00e4lj fordonstyp \/ storlek:<\/label>\n        <select id=\"vehicle_type\">\n          <option value=\"van\" selected>Mindre sk\u00e5pbil (transportbil) \u2014 ca 15 m\u00b2<\/option>\n          <option value=\"truck\">Distributionsbil (medelstor) \u2014 ca 50 m\u00b2<\/option>\n          <option value=\"trailer\">Trailer \/ Fj\u00e4rrbil (stor) \u2014 ca 120 m\u00b2<\/option>\n          <option value=\"custom\">Egen yta (ange m\u00b2 manuellt)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- MANUELL YTA (VISAS BARA VID EGEN YTA) -->\n      <div class=\"input-group\" id=\"custom_area_div\" style=\"display: none; background: #ebf8ff; padding: 12px; border-radius: 8px;\">\n        <label for=\"custom_area\">Ange total yta (m\u00b2):<\/label>\n        <input type=\"number\" id=\"custom_area\" value=\"30\">\n      <\/div>\n\n      <!-- BEFINTLIG ISOLERING -->\n      <div class=\"input-group\">\n        <label for=\"existing_insulation\">Befintlig fabriksisolering i sk\u00e5pet (PUR):<\/label>\n        <select id=\"existing_insulation\">\n          <option value=\"4cm\">4 cm PUR (Motsvarar ca 6,5 cm mineralull)<\/option>\n          <option value=\"6cm\" selected>6 cm PUR (Motsvarar ca 10 cm mineralull)<\/option>\n          <option value=\"10cm\">10 cm PUR (Motsvarar ca 16 cm mineralull)<\/option>\n          <option value=\"aged\">\u00c5ldrad fabriksisolering (Tappat 20\u201330% effekt)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- PRODUKTVAL -->\n      <div class=\"input-group\">\n        <label>V\u00e4lj produkter (2 skikt per produkt):<\/label>\n        <div class=\"checkbox-box\">\n          <div class=\"checkbox-container\">\n            <input type=\"checkbox\" id=\"prod_mass\" checked>\n            <span><strong>Roll-On Mass<\/strong> (Utsidan \u2014 Solreflektion)<\/span>\n          <\/div>\n          <div class=\"checkbox-container\" style=\"margin-top: 10px;\">\n            <input type=\"checkbox\" id=\"prod_inside\">\n            <span><strong>Roll-On Inside<\/strong> (Insidan \u2014 Termisk barri\u00e4r)<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- TEMPERATURKRAV -->\n      <div class=\"input-group\">\n        <label for=\"temp_target\">\u00d6nskad temperatur i sk\u00e5pet:<\/label>\n        <select id=\"temp_target\">\n          <option value=\"chilled\" selected>-4 \u00b0C (Kyltransport)<\/option>\n          <option value=\"frozen\">-18 \u00b0C (Frystransport)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- ENERGIK\u00c4LLA F\u00d6R AGGREGAT -->\n      <div class=\"input-group\">\n        <label for=\"power_source\">Aggregatets drivmedel:<\/label>\n        <select id=\"power_source\">\n          <option value=\"diesel\" selected>Diesel (Kylaggregat p\u00e5 br\u00e4nsle)<\/option>\n          <option value=\"electric\">El \/ Hybrid (Batteridrivet aggregat)<\/option>\n        <\/select>\n      <\/div>\n\n      <!-- DIESELPRIS -->\n      <div class=\"input-group\" id=\"diesel_price_div\">\n        <label for=\"diesel_price\">Aktuellt dieselpris (kr\/liter):<\/label>\n        <input type=\"number\" id=\"diesel_price\" value=\"18\" step=\"0.5\">\n      <\/div>\n\n      <!-- ELPRIS -->\n      <div class=\"input-group\" id=\"el_price_div\" style=\"display: none;\">\n        <label for=\"el_price\">Aktuellt elpris (kr\/kWh):<\/label>\n        <input type=\"number\" id=\"el_price\" value=\"2.5\" step=\"0.1\">\n      <\/div>\n\n      <!-- DRIFTTIMMAR PER \u00c5R -->\n      <div class=\"input-group\">\n        <label for=\"operating_hours\">Antal drifttimmar per \u00e5r (Aggregat):<\/label>\n        <input type=\"number\" id=\"operating_hours\" value=\"2000\">\n      <\/div>\n\n      <!-- KOSTNAD PER KVM -->\n      <div class=\"input-group\">\n        <label for=\"sqm_cost\">Kostnad per m\u00b2 (kr, per vald produkt):<\/label>\n        <input type=\"number\" id=\"sqm_cost\" value=\"700\">\n      <\/div>\n\n      <button id=\"calc_trigger_btn\">Ber\u00e4kna din besparing<\/button>\n    <\/div>\n\n    <!-- H\u00d6GER SIDA: LIVE-RESULTAT -->\n    <div id=\"results\" class=\"results-box\" style=\"display:none;\">\n      <h3>Ditt resultat &amp; ROI<\/h3>\n      \n      <div class=\"simplified-specs-box\">\n        <h4>Reflektion &amp; Isolering<\/h4>\n        <div class=\"spec-row\">\n          <span>Solreflektion:<\/span>\n          <strong>\u00d6ver 90%<\/strong>\n        <\/div>\n        <div class=\"spec-row\">\n          <span>\u00c5tg\u00e5ng:<\/span>\n          <strong>1L = 2m\u00b2<\/strong>\n        <\/div>\n      <\/div>\n\n      <div class=\"result-row\">\n        <span>\u26fd \u00c5rlig energibesparing:<\/span>\n        <strong id=\"energy_saved_val\">0<\/strong>\n      <\/div>\n      <div class=\"result-row\">\n        <span>\ud83d\udcb0 \u00c5rlig ekonomisk besparing:<\/span>\n        <strong id=\"money_saved\">0<\/strong>\n      <\/div>\n      <div class=\"result-row\">\n        <span>\ud83d\udce6 Total material\u00e5tg\u00e5ng (liter):<\/span>\n        <strong id=\"liters_needed\">0<\/strong>\n      <\/div>\n      <div class=\"result-row\" id=\"total_cost_row\">\n        <span>\ud83d\udcb5 Din investering:<\/span>\n        <strong id=\"total_cost\" style=\"color: #4a5568;\">0<\/strong>\n      <\/div>\n      <div class=\"result-row\" id=\"roi_row\" style=\"background: #ebf8ff; font-weight: bold; padding: 12px; border-radius: 8px; margin-top: 10px;\">\n        <span>\u23f1\ufe0f \u00c5terbetalningstid (ROI):<\/span>\n        <strong id=\"roi_years\" style=\"color: #3182ce; font-size: 1.25rem;\">0 \u00e5r<\/strong>\n      <\/div>\n\n      <!-- AVLASTNINGS-HIGHLIGHT -->\n      <div class=\"comparison-highlight\">\n        <h4>\u2699\ufe0f Minskat slitage p\u00e5 aggregatet<\/h4>\n        <p>Genom att h\u00e5lla sk\u00e5pets utsida sval avlastas kompressorn i kylaggregatet. Det s\u00e4nker underh\u00e5llskostnaderna drastiskt.<\/p>\n      <\/div>\n\n      <!-- DIAGRAM -->\n      <div class=\"chart-wrapper\">\n        <h4>\ud83d\udcc8 Ekonomisk nettovinst \u00f6ver 10 \u00e5r<\/h4>\n        <div style=\"position: relative; height:180px; width:100%;\">\n          <canvas id=\"roiChart\"><\/canvas>\n        <\/div>\n      <\/div>\n      \n      <!-- EGENSKAPER RUTA -->\n      <div class=\"feature-box transport-bg\">\n        <h4>\ud83d\ude9a F\u00f6rdelar f\u00f6r logistik:<\/h4>\n        <ul>\n          <li><strong>S\u00e4krar kylkedjan:<\/strong> Temperaturen stiger inte lika snabbt vid lossning\/d\u00f6rr\u00f6ppning.<\/li>\n          <li><strong>Maximerad lastvikt:<\/strong> V\u00e4ger n\u00e4stan ingenting j\u00e4mf\u00f6rt med skivisolering.<\/li>\n        <\/ul>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  .calculator-container, \n  .calculator-container *, \n  .calculator-container *::before, \n  .calculator-container *::after {\n    box-sizing: border-box !important;\n    max-width: 100%;\n  }\n\n  .calculator-container {\n    width: 100%;\n    max-width: 1050px;\n    margin: 20px auto;\n    padding: 30px;\n    background: #ffffff;\n    border-radius: 16px;\n    box-shadow: 0 10px 30px rgba(0,0,0,0.08);\n    font-family: 'Segoe UI', system-ui, sans-serif;\n    color: #2d3748;\n    overflow-wrap: break-word;\n    word-wrap: break-word;\n    overflow-x: hidden;\n  }\n\n  .calculator-container h2 {\n    text-align: center;\n    color: #1a202c;\n    font-size: 1.6rem;\n    margin-bottom: 5px;\n    font-weight: 700;\n  }\n  .intro-text {\n    text-align: center;\n    font-size: 0.9rem;\n    color: #718096;\n    margin-bottom: 30px;\n    line-height: 1.4;\n  }\n\n  .calc-workspace {\n    display: flex;\n    flex-direction: column;\n    gap: 30px;\n    width: 100%;\n  }\n  \n  @media (min-width: 768px) {\n    .calc-workspace {\n      display: grid;\n      grid-template-columns: 1fr 1.1fr;\n    }\n  }\n\n  .calc-side-inputs, .results-box {\n    min-width: 0; \n    width: 100%;\n  }\n\n  .input-group {\n    margin-bottom: 18px;\n    width: 100%;\n  }\n  .input-group label {\n    display: block;\n    font-weight: 600;\n    margin-bottom: 6px;\n    color: #4a5568;\n    font-size: 0.88rem;\n  }\n  .input-group input, .input-group select {\n    width: 100%;\n    padding: 11px;\n    border: 1px solid #cbd5e0;\n    border-radius: 8px;\n    font-size: 0.95rem;\n    background: #f7fafc;\n    color: #2d3748;\n  }\n  .checkbox-box {\n    background: #f7fafc;\n    border: 1px solid #e2e8f0;\n    border-radius: 8px;\n    padding: 12px;\n    width: 100%;\n  }\n  .checkbox-container {\n    display: flex;\n    align-items: center;\n    font-size: 0.9rem;\n    color: #2d3748;\n    cursor: pointer;\n  }\n  .checkbox-container input {\n    width: auto;\n    margin-right: 10px;\n    flex-shrink: 0;\n  }\n\n  .results-box {\n    background: #ffffff;\n    border: 1px solid #e2e8f0;\n    border-radius: 12px;\n    padding: 20px;\n    box-shadow: 0 4px 12px rgba(0,0,0,0.02);\n  }\n  .results-box h3 {\n    margin: 0 0 15px 0;\n    font-size: 1.2rem;\n    color: #1a202c;\n  }\n\n  .result-row {\n    display: flex;\n    flex-wrap: wrap; \n    justify-content: space-between;\n    align-items: center;\n    padding: 10px 0;\n    border-bottom: 1px dashed #e2e8f0;\n    font-size: 0.95rem;\n    gap: 5px;\n  }\n  .result-row strong {\n    color: #3182ce;\n    font-size: 1.05rem;\n    flex-shrink: 0;\n  }\n\n  .simplified-specs-box {\n    background: #f7fafc;\n    border: 1px solid #cbd5e0;\n    border-radius: 8px;\n    padding: 12px;\n    margin-bottom: 15px;\n    width: 100%;\n  }\n  .simplified-specs-box h4 {\n    margin: 0 0 8px 0;\n    font-size: 0.85rem;\n    color: #4a5568;\n    border-bottom: 1px solid #e2e8f0;\n    padding-bottom: 5px;\n  }\n  .spec-row {\n    display: flex;\n    justify-content: space-between;\n    font-size: 0.85rem;\n    margin-bottom: 6px;\n    color: #4a5568;\n    gap: 10px;\n  }\n  .spec-row strong {\n    color: #2b6cb0;\n    flex-shrink: 0;\n  }\n\n  .comparison-highlight {\n    background: #fffaf0;\n    border-left: 4px solid #dd6b20;\n    padding: 10px;\n    border-radius: 6px;\n    margin: 15px 0;\n    font-size: 0.82rem;\n  }\n  .comparison-highlight h4 {\n    margin: 0 0 2px 0;\n    color: #dd6b20;\n  }\n  .comparison-highlight p {\n    margin: 0;\n    color: #7b341e;\n  }\n  \n  .chart-wrapper {\n    margin: 15px 0;\n    padding: 12px;\n    background: #fff;\n    border: 1px solid #e2e8f0;\n    border-radius: 12px;\n    width: 100%;\n  }\n  .chart-wrapper h4 {\n    margin: 0 0 8px 0;\n    font-size: 0.85rem;\n    text-align: center;\n  }\n  \n  .feature-box {\n    margin-top: 12px;\n    padding: 12px;\n    border-radius: 8px;\n    font-size: 0.82rem;\n    line-height: 1.4;\n  }\n  .feature-box h4 {\n    margin: 0 0 4px 0;\n  }\n  .feature-box ul {\n    margin: 0;\n    padding-left: 15px;\n  }\n  .transport-bg {\n    background: #ebf8ff;\n    border-left: 4px solid #3182ce;\n    color: #2b6cb0;\n  }\n  .transport-bg h4 {\n    color: #2b6cb0;\n  }\n\n  button {\n    width: 100%;\n    padding: 14px 10px;\n    background: #3182ce;\n    color: white;\n    border: none;\n    border-radius: 8px;\n    font-size: 1.05rem;\n    cursor: pointer;\n    font-weight: bold;\n    margin-top: 10px;\n    white-space: normal;\n  }\n  button:hover {\n    background: #2b6cb0;\n  }\n\n  @media (max-width: 767px) {\n    .calculator-container {\n      padding: 15px;\n      border-radius: 8px;\n    }\n    .intro-text {\n      margin-bottom: 20px;\n      font-size: 0.85rem;\n    }\n    .results-box {\n      padding: 12px;\n    }\n    .result-row {\n      font-size: 0.88rem;\n    }\n  }\n<\/style>\n\n<script>\n(function() {\n  let roiChartInstance = null;\n\n  function updateFields() {\n    const typeEl = document.getElementById('vehicle_type');\n    const customAreaDiv = document.getElementById('custom_area_div');\n    const sourceEl = document.getElementById('power_source');\n    const dieselPriceDiv = document.getElementById('diesel_price_div');\n    const elPriceDiv = document.getElementById('el_price_div');\n\n    if(typeEl && customAreaDiv) {\n      customAreaDiv.style.display = typeEl.value === 'custom' ? 'block' : 'none';\n    }\n    if(sourceEl && dieselPriceDiv && elPriceDiv) {\n      dieselPriceDiv.style.display = sourceEl.value === 'diesel' ? 'block' : 'none';\n      elPriceDiv.style.display = sourceEl.value === 'electric' ? 'block' : 'none';\n    }\n  }\n\n  function calculateKyla() {\n    const vTypeEl = document.getElementById('vehicle_type');\n    const tempTargetEl = document.getElementById('temp_target');\n    const powerSourceEl = document.getElementById('power_source');\n    const insulationEl = document.getElementById('existing_insulation');\n    const hoursEl = document.getElementById('operating_hours');\n    const sqmCostEl = document.getElementById('sqm_cost');\n    const prodMassEl = document.getElementById('prod_mass');\n    const prodInsideEl = document.getElementById('prod_inside');\n\n    if (!vTypeEl || !tempTargetEl || !powerSourceEl || !insulationEl || !hoursEl || !sqmCostEl) return;\n\n    const vType = vTypeEl.value;\n    const tempTarget = tempTargetEl.value;\n    const powerSource = powerSourceEl.value;\n    const insulation = insulationEl.value;\n    const hours = parseFloat(hoursEl.value) || 0;\n    const sqmCost = parseFloat(sqmCostEl.value) || 0;\n\n    const prodMass = prodMassEl ? prodMassEl.checked : false;\n    const prodInside = prodInsideEl ? prodInsideEl.checked : false;\n\n    if (!prodMass && !prodInside) {\n      const resultsBox = document.getElementById('results');\n      if(resultsBox) resultsBox.style.display = 'none';\n      return;\n    }\n\n    let productCount = 0;\n    if (prodMass) productCount++;\n    if (prodInside) productCount++;\n\n    const dieselPriceEl = document.getElementById('diesel_price');\n    const elPriceEl = document.getElementById('el_price');\n    const fuelPrice = dieselPriceEl ? (parseFloat(dieselPriceEl.value) || 0) : 0; \n    const elPrice = elPriceEl ? (parseFloat(elPriceEl.value) || 0) : 0;\n\n    let area = 0;\n    if (vType === 'van') area = 15;\n    else if (vType === 'truck') area = 50;\n    else if (vType === 'trailer') area = 120;\n    else {\n      const customAreaEl = document.getElementById('custom_area');\n      area = customAreaEl ? (parseFloat(customAreaEl.value) || 0) : 0;\n    }\n\n    let baseKwhSavedPerSqm1000h = 60; \n    if (tempTarget === 'frozen') {\n      baseKwhSavedPerSqm1000h = 95; \n    }\n\n    \/\/ P\u00e5verkan fr\u00e5n den valda fabriksisoleringen\n    let insulationMultiplier = 1.0;\n    if (insulation === '4cm') insulationMultiplier = 1.15;\n    if (insulation === '10cm') insulationMultiplier = 0.85;\n    if (insulation === 'aged') insulationMultiplier = 1.30;\n\n    const efficiencyMultiplier = productCount === 2 ? 1.6 : 1.0;\n    const totalThermalKwhSaved = (baseKwhSavedPerSqm1000h * area * (hours \/ 1000)) * efficiencyMultiplier * insulationMultiplier;\n\n    let energySavedText = \"\";\n    let moneySaved = 0;\n\n    if (powerSource === 'diesel') {\n      const dieselSaved = Math.round(totalThermalKwhSaved \/ 3);\n      moneySaved = Math.round(dieselSaved * fuelPrice);\n      energySavedText = dieselSaved.toLocaleString('sv-SE') + \" liter diesel\";\n    } else {\n      const elSavedKwh = Math.round(totalThermalKwhSaved \/ 1.5);\n      moneySaved = Math.round(elSavedKwh * elPrice);\n      energySavedText = elSavedKwh.toLocaleString('sv-SE') + \" kWh el\";\n    }\n\n    const litersNeeded = Math.ceil(area * productCount);\n    const totalCost = area * sqmCost * productCount;\n\n    \/\/ S\u00e4kra DOM-uppdateringar\n    const eSavedEl = document.getElementById('energy_saved_val');\n    const mSavedEl = document.getElementById('money_saved');\n    const litEl = document.getElementById('liters_needed');\n    const costEl = document.getElementById('total_cost');\n    const costRowEl = document.getElementById('total_cost_row');\n    const roiYEl = document.getElementById('roi_years');\n    const roiRowEl = document.getElementById('roi_row');\n    const resBoxEl = document.getElementById('results');\n\n    if (eSavedEl) eSavedEl.innerText = energySavedText;\n    if (mSavedEl) mSavedEl.innerText = moneySaved.toLocaleString('sv-SE') + \" kr\";\n    if (litEl) litEl.innerText = litersNeeded.toLocaleString('sv-SE');\n\n    if (totalCost > 0) {\n      if (costEl) costEl.innerText = totalCost.toLocaleString('sv-SE') + \" kr\";\n      if (costRowEl) costRowEl.style.display = 'flex';\n      \n      if (moneySaved > 0) {\n        const roiYears = (totalCost \/ moneySaved).toFixed(1);\n        if (roiYEl) roiYEl.innerText = roiYears + \" \u00e5r\";\n        if (roiRowEl) roiRowEl.style.display = 'flex';\n      } else {\n        if (roiRowEl) roiRowEl.style.display = 'none';\n      }\n    } else {\n      if (costRowEl) costRowEl.style.display = 'none';\n      if (roiRowEl) roiRowEl.style.display = 'none';\n    }\n\n    if (resBoxEl) resBoxEl.style.display = 'block';\n\n    try {\n      generateChart(totalCost, moneySaved);\n    } catch (error) {\n      console.warn(error);\n    }\n  }\n\n  function generateChart(investment, annualSavings) {\n    if (typeof Chart === 'undefined') return;\n\n    const canvas = document.getElementById('roiChart');\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    \n    const labels = ['Start', '\u00c5r 1', '\u00c5r 2', '\u00c5r 3', '\u00c5r 4', '\u00c5r 5', '\u00c5r 6', '\u00c5r 7', '\u00c5r 8', '\u00c5r 9', '\u00c5r 10'];\n    const data = [-investment]; \n    \n    for (let year = 1; year <= 10; year++) {\n      data.push((year * annualSavings) - investment);\n    }\n\n    if (roiChartInstance) {\n      roiChartInstance.destroy();\n    }\n\n    roiChartInstance = new Chart(ctx, {\n      type: 'bar',\n      data: {\n        labels: labels,\n        datasets: [{\n          data: data,\n          backgroundColor: data.map(v => v >= 0 ? 'rgba(49, 130, 206, 0.85)' : 'rgba(229, 62, 62, 0.85)'),\n          borderColor: data.map(v => v >= 0 ? '#3182ce' : '#e53e3e'),\n          borderWidth: 1.5,\n          borderRadius: 4\n        }]\n      },\n      options: {\n        responsive: true,\n        maintainAspectRatio: false,\n        plugins: { legend: { display: false } },\n        scales: {\n          y: { ticks: { font: { size: 10 }, callback: function(v) { return v.toLocaleString('sv-SE') + ' kr'; } } },\n          x: { ticks: { font: { size: 10 } } }\n        }\n      }\n    });\n  }\n\n  \/\/ Fels\u00e4ker global event-lyssnare (Event Delegation)\n  document.addEventListener('change', function(e) {\n    if (!e.target) return;\n    if (['vehicle_type', 'existing_insulation', 'temp_target', 'power_source', 'prod_mass', 'prod_inside'].includes(e.target.id)) {\n      updateFields();\n      calculateKyla();\n    }\n  });\n\n  document.addEventListener('input', function(e) {\n    if (!e.target) return;\n    if (['custom_area', 'diesel_price', 'el_price', 'operating_hours', 'sqm_cost'].includes(e.target.id)) {\n      calculateKyla();\n    }\n  });\n\n  document.addEventListener('click', function(e) {\n    if (!e.target) return;\n    if (e.target.id === 'calc_trigger_btn') {\n      e.preventDefault();\n      updateFields();\n      calculateKyla();\n    }\n  });\n\n  \/\/ S\u00e4kerst\u00e4ll k\u00f6rning vid start genom en loop tills elementen finns p\u00e5 plats\n  let checkExist = setInterval(function() {\n    if (document.getElementById('vehicle_type')) {\n      updateFields();\n      calculateKyla();\n      clearInterval(checkExist);\n    }\n  }, 100);\n  \n  setTimeout(function() { clearInterval(checkExist); }, 6000);\n})();\n<\/script>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"\ud83d\ude9a Maxa lastutrymmet (Mer plats f\u00f6r varor) Traditionell isolering i kylbilar och containrar stj\u00e4l enormt mycket v\u00e4rdefullt utrymme p\u00e5 insidan, vilket minskar m\u00e4ngden varor du kan transportera per k\u00f6rning. Eftersom Roll-On Insulation ers\u00e4tter tjock isolering med en tunn bel\u00e4ggning beh\u00e5ller du maximal volym i lastutrymmet. Du kan lasta mer p\u00e5 samma yta utan att kompromissa [...]","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8821","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages\/8821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/comments?post=8821"}],"version-history":[{"count":16,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages\/8821\/revisions"}],"predecessor-version":[{"id":8870,"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/pages\/8821\/revisions\/8870"}],"wp:attachment":[{"href":"https:\/\/rolloninsulation.se\/en\/wp-json\/wp\/v2\/media?parent=8821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}