{"id":2080,"date":"2026-04-29T17:00:06","date_gmt":"2026-04-29T16:00:06","guid":{"rendered":"https:\/\/realsolar.al\/?page_id=2080"},"modified":"2026-10-09T15:49:48","modified_gmt":"2026-10-09T14:49:48","slug":"kryesore-2","status":"publish","type":"page","link":"https:\/\/realsolar.al\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\n<style>\n\/* MINI CALCULATOR INPUT INSIDE HERO *\/\n\n.rs-hero-mini-calc .rs-calc-title {\n    display: flex !important;\n    align-items: center !important;\n    gap: 12px !important;\n}\n\n.rs-hero-mini-calc .rs-calc-title-icon {\n    width: 28px !important;\n    height: 28px !important;\n    min-width: 28px !important;\n    color: #ffffff !important;\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n}\n\n.rs-hero-mini-calc .rs-calc-title-icon svg {\n    width: 24px !important;\n    height: 24px !important;\n    display: block !important;\n}\n\n.rs-hero-mini-calc .rs-calc-row-input input {\n    width: 118px !important;\n    height: 42px !important;\n    border: 0 !important;\n    border-radius: 6px !important;\n    background: #ffffff !important;\n    color: #111111 !important;\n    font-size: 17px !important;\n    font-weight: 800 !important;\n    text-align: right !important;\n    padding: 0 12px !important;\n    outline: none !important;\n    box-shadow: inset 0 1px 2px rgba(0,0,0,0.22) !important;\n}\n\n.rs-hero-mini-calc .rs-calc-row-input input:focus {\n    box-shadow:\n        0 0 0 2px rgba(229,31,40,0.38),\n        inset 0 1px 2px rgba(0,0,0,0.22) !important;\n}\n\n@media (max-width: 768px) {\n    .rs-hero-mini-calc .rs-calc-row-input input {\n        width: 108px !important;\n        height: 40px !important;\n        font-size: 16px !important;\n    }\n}\n<\/style>\n\n<section class=\"rs-hero-new\">\n  <div class=\"rs-hero-new-inner\">\n\n    <div class=\"rs-hero-copy\">\n      <div class=\"rs-hero-badge\">REAL SOLAR | NATURAL ENERGY<\/div>\n\n      <h1>\n        Panele diellore p\u00ebr sht\u00ebpi dhe biznese\n        <span>n\u00eb Shqip\u00ebri<\/span>\n      <\/h1>\n\n      <p>\n        Llogaritni fuqin\u00eb e sistemit, kursimin vjetor dhe kthimin e investimit me Real Solar.\n      <\/p>\n\n      <div class=\"rs-hero-actions\">\n        <a href=\"\/cmimi-panele-diellore\/\" class=\"rs-btn-red\">Llogarit kursimet<\/a>\n        <a href=\"\/kontakt\/\" class=\"rs-btn-dark\">K\u00ebrko ofert\u00eb falas<\/a>\n      <\/div>\n    <\/div>\n\n    <div class=\"rs-calc-card rs-hero-mini-calc\">\n      <div class=\"rs-calc-title\">\n        <span class=\"rs-calc-title-icon\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n            <path d=\"M7 2h10v20H7V2Z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"\/>\n            <path d=\"M10 6h4M10 10h4M10 14h1M13 14h1M10 18h1M13 18h1\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n          <\/svg>\n        <\/span>\n        Kalkulator kursimesh\n      <\/div>\n\n      <div class=\"rs-calc-row rs-calc-row-input\">\n        <span>Konsumi vjetor (kWh)<\/span>\n        <input id=\"rsHeroConsumption\" type=\"number\" value=\"6000\" min=\"500\" step=\"100\" aria-label=\"Konsumi vjetor n\u00eb kWh\">\n      <\/div>\n      <div class=\"rs-calc-row rs-calc-row-select\">\n      <span>Lloji i klientit<\/span>\n      <select id=\"rsHeroClientType\" aria-label=\"Lloji i klientit\">\n       <option value=\"F\">Familjar<\/option>\n       <option value=\"Bu\">Biznes i vog\u00ebl\/mesatar<\/option>\n       <option value=\"BM\">Biznes i madh<\/option>\n     <\/select>\n    <\/div>\n\n      <div class=\"rs-calc-row\">\n        <span>Fuqia e rekomanduar (kWp)<\/span>\n        <strong id=\"rsHeroPower\">4.4<\/strong>\n      <\/div>\n\n      <div class=\"rs-calc-row\">\n        <span>Prodhimi vjetor (kWh)<\/span>\n        <strong class=\"red\" id=\"rsHeroProduction\">6,233<\/strong>\n      <\/div>\n\n      <div class=\"rs-calc-row\">\n        <span>Kursimi vjetor<\/span>\n        <strong class=\"red\" id=\"rsHeroSavings\">587 \u20ac<\/strong>\n      <\/div>\n\n      <div class=\"rs-calc-row\">\n        <span>Koha e kthimit t\u00eb investimit<\/span>\n        <strong class=\"red\" id=\"rsHeroPayback\">6.7 vite<\/strong>\n      <\/div>\n\n      <p class=\"rs-calc-note\">\n        * Vler\u00ebsim paraprak. Koha e kthimit = kostoja fillestare \/ kursimi vjetor sipas supozimeve t\u00eb kalkulatorit; rezultatet mund t\u00eb ndryshojn\u00eb.\n      <\/p>\n\n      <a class=\"rs-calc-link\" href=\"#kalkulatori\">Hap kalkulatorin e plot\u00eb \u2192<\/a>\n    <\/div>\n\n  <\/div>\n\n  <div class=\"rs-hero-stats\">\n    <div class=\"rs-stat-card\">\n      <div class=\"rs-stat-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n          <path d=\"M13 2L4 14h7l-1 8l10-13h-7V2Z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"rs-stat-content\">\n        <strong class=\"rs-stat-value\">\n          <span class=\"rs-count\" data-target=\"14160\" data-decimals=\"0\">0<\/span>\n          <small>kW<\/small>\n        <\/strong>\n        <span class=\"rs-stat-label\">Energji e instaluar<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"rs-stat-card\">\n      <div class=\"rs-stat-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n          <path d=\"M12 12a4 4 0 1 0 0-8a4 4 0 0 0 0 8Z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <path d=\"M4 21c1.5-4 4.2-6 8-6s6.5 2 8 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"rs-stat-content\">\n        <strong class=\"rs-stat-value\">\n          <span class=\"rs-count\" data-target=\"140\" data-decimals=\"0\">0<\/span>\n          <small>kWp<\/small>\n        <\/strong>\n        <span class=\"rs-stat-label\">Instalime individuale<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"rs-stat-card\">\n      <div class=\"rs-stat-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n          <path d=\"M3 21h18\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n          <path d=\"M5 21V9l5 3V9l5 3V6h4v15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <path d=\"M8 17h2M13 17h2M18 17h1\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"rs-stat-content\">\n        <strong class=\"rs-stat-value\">\n          <span class=\"rs-count\" data-target=\"2\" data-decimals=\"0\">0<\/span>\n          <small>MWp+<\/small>\n        <\/strong>\n        <span class=\"rs-stat-label\">Instalime industriale<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"rs-stat-card\">\n      <div class=\"rs-stat-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M8 21H16\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M12 4V21\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M9 7H15\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M8 10H16\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M7 13H17\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M9 7L6.5 21\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M15 7L17.5 21\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M8 10L6 13\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M16 10L18 13\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M17 9.5H21\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M19 9.5V12.5\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M18.2 12.5H19.8\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"rs-stat-content\">\n        <strong class=\"rs-stat-value\">\n          <span class=\"rs-count\" data-target=\"25\" data-decimals=\"0\">0<\/span>\n          <small>MWp<\/small>\n        <\/strong>\n        <span class=\"rs-stat-label\">Impiant prodhimi<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"rs-stat-card\">\n      <div class=\"rs-stat-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\">\n          <path d=\"M12 22s8-4 8-11V5l-8-3l-8 3v6c0 7 8 11 8 11Z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <path d=\"M9 12l2 2l4-5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"rs-stat-content\">\n        <strong class=\"rs-stat-value\">\n          <span class=\"rs-count\" data-target=\"78.1\" data-decimals=\"1\">0<\/span>\n          <small>MWp<\/small>\n        <\/strong>\n        <span class=\"rs-stat-label\">Eksperienc\u00eb projektuese\/aplikuese<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  \/* Mos inicializo skriptet brenda iframe-it t\u00eb editorit Gutenberg. *\/\n  if (window.self !== window.top) return;\n\n  const input = document.getElementById(\"rsHeroConsumption\");\n  const clientType = document.getElementById(\"rsHeroClientType\");\n  const powerEl = document.getElementById(\"rsHeroPower\");\n  const productionEl = document.getElementById(\"rsHeroProduction\");\n  const savingsEl = document.getElementById(\"rsHeroSavings\");\n  const paybackEl = document.getElementById(\"rsHeroPayback\");\n\n  if (!input || !powerEl || !productionEl || !savingsEl || !paybackEl) return;\n\n  const CONFIG = {\n    sizingKwhPerKwp: 1364,\n    yieldKwhPerKwp: 1417,\n    systemCostEuroPerKwp: 900\n  };\n\n  const CLIENT_PRICE = {\n    F: 0.095,\n    Bu: 0.140,\n    BM: 0.185\n  };\n\n  function formatNumber(value, decimals) {\n    return Number(value).toLocaleString(\"en-GB\", {\n      minimumFractionDigits: decimals,\n      maximumFractionDigits: decimals\n    });\n  }\n\n  let heroUsed=false, heroCompletedKey='', heroCompletionTimer;\n  function calculateHeroMiniCalc(event) {\n    const meaningful=Boolean(event?.isTrusted);\n    if(meaningful && !heroUsed){\n      heroUsed=true;\n      window.rsSolarTrack?.('calculator_used',{calculator_type:'hero'});\n    }\n    clearTimeout(heroCompletionTimer);\n    let consumption = parseFloat(input.value);\n\n    if (!Number.isFinite(consumption) || consumption <= 0) {\n      [powerEl,productionEl,savingsEl,paybackEl].forEach(el=>el.textContent='\u2014');\n      heroCompletedKey='';\n      return;\n    }\n\n    const selectedClient = clientType ? clientType.value : \"F\";\n    const euroPerKwh = CLIENT_PRICE[selectedClient] || 0.095;\n\n    const recommendedPower = consumption \/ CONFIG.sizingKwhPerKwp;\n    const annualProduction = recommendedPower * CONFIG.yieldKwhPerKwp;\n    const annualSavings = annualProduction * euroPerKwh;\n    const estimatedCost = recommendedPower * CONFIG.systemCostEuroPerKwp;\n    const paybackYears = annualSavings > 0 ? estimatedCost \/ annualSavings : 0;\n\n    powerEl.textContent = formatNumber(recommendedPower, 1);\n    productionEl.textContent = formatNumber(Math.round(annualProduction), 0);\n    savingsEl.textContent = formatNumber(Math.round(annualSavings), 0) + \" \u20ac\";\n    paybackEl.textContent = formatNumber(paybackYears, 1) + (\/^en(?:-|$)\/i.test(document.documentElement.lang) ? \" years\" : \" vite\");\n    const completionKey=consumption+'|'+selectedClient;\n    if(meaningful && completionKey!==heroCompletedKey && [recommendedPower,annualProduction,annualSavings,estimatedCost,paybackYears].every(Number.isFinite)){\n      heroCompletionTimer=setTimeout(function(){\n        heroCompletedKey=completionKey;\n        window.rsSolarTrack?.('calculator_completed',{calculator_type:'hero'});\n      },350);\n    }\n  }\n\n  input.addEventListener(\"input\", calculateHeroMiniCalc);\n  input.addEventListener(\"change\", calculateHeroMiniCalc);\n\n  if (clientType) {\n    clientType.addEventListener(\"change\", calculateHeroMiniCalc);\n  }\n\n  calculateHeroMiniCalc();\n})();\n<\/script>\n\n<script data-no-defer=\"1\">\n(function () {\n  if (window.self !== window.top) return;\n\n  function formatNumber(value, decimals) {\n    return Number(value).toLocaleString(\"en-GB\", {\n      minimumFractionDigits: decimals,\n      maximumFractionDigits: decimals\n    });\n  }\n\n  function animateCounter(el) {\n    if (!el || el.dataset.animated === \"true\") return;\n\n    el.dataset.animated = \"true\";\n\n    const target = parseFloat(el.getAttribute(\"data-target\") || \"0\");\n    const decimals = parseInt(el.getAttribute(\"data-decimals\") || \"0\", 10);\n\n    if (!Number.isFinite(target)) return;\n\n    const duration = 2200;\n    const startTime = performance.now();\n\n    function frame(now) {\n      const progress = Math.min((now - startTime) \/ duration, 1);\n      const eased = 1 - Math.pow(1 - progress, 3);\n      const current = target * eased;\n\n      el.textContent = formatNumber(current, decimals);\n\n      if (progress < 1) {\n        requestAnimationFrame(frame);\n      } else {\n        el.textContent = formatNumber(target, decimals);\n      }\n    }\n\n    requestAnimationFrame(frame);\n  }\n\n  function runCounters() {\n    document.querySelectorAll(\".rs-count\").forEach(function (el) {\n      animateCounter(el);\n    });\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", runCounters, { once: true });\n  } else {\n    runCounters();\n  }\n})();\n<\/script>\n\n\n\n\n<div id=\"pv-stack\" class=\"rs-full-calculator\">\n\n  <section class=\"rs-calc-full-section\">\n\n   <div class=\"rs-calc-full-head\">\n  <span class=\"rs-calc-full-eyebrow\">KALKULATORI I PLOT\u00cb<\/span>\n\n  <div class=\"rs-calc-full-row\">\n    <div class=\"rs-calc-full-left\">\n      <h2>Llogarit sistemin diellor p\u00ebr objektin tuaj<\/h2>\n    <\/div>\n\n    <div class=\"rs-calc-full-right\">\n      <p>\n        Vendosni konsumin, llojin e klientit dhe \u00e7mimin e energjis\u00eb\n        p\u00ebr t\u00eb marr\u00eb nj\u00eb vler\u00ebsim paraprak t\u00eb fuqis\u00eb, prodhimit,\n        kursimit dhe kthimit t\u00eb investimit.\n      <\/p>\n    <\/div>\n  <\/div>\n<\/div>\n\n    <section id=\"kalkulatori\" class=\"calc-section\">\n      <div class=\"pv-calc-wrap\">\n\n    <label for=\"pvw-use\" class=\"screen-reader-text\">\n        Konsumi vjetor i energjis\u00eb n\u00eb kWh\n    <\/label>\n\n      <style>\n  :root{\n    --pvw-accent:#e11d48;\n    --pvw-accent-2:#fb7185;\n    --pvw-ink:#0f172a;\n    --pvw-ink-soft:#334155;\n    --pvw-muted:#64748b;\n    --pvw-line:#e5e7eb;\n    --pvw-line-strong:#cbd5e1;\n    --pvw-bg:#f8fafc;\n    --pvw-card:#ffffff;\n    --pvw-card-2:#fcfcfd;\n    --pvw-shadow:0 20px 60px rgba(15,23,42,.08);\n    --pvw-shadow-soft:0 10px 30px rgba(15,23,42,.06);\n    --pvw-radius:24px;\n    --pvw-radius-sm:16px;\n    --pvw-radius-xs:12px;\n    --pvw-speed:.28s;\n    --pvw-ease:cubic-bezier(.22,.61,.36,1);\n  }\n\n  .pvw-wrap{\n    max-width:1020px;\n    margin:0 auto;\n    font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n    color:var(--pvw-ink);\n  }\n\n  .pvw-wrap > .pvw-container{\n    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));\n    border:1px solid rgba(255,255,255,.7);\n    box-shadow:var(--pvw-shadow);\n    border-radius:32px;\n    padding:28px;\n    backdrop-filter:blur(10px);\n    -webkit-backdrop-filter:blur(10px);\n    position:relative;\n    overflow:hidden;\n  }\n\n  .pvw-wrap > .pvw-container::before{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    pointer-events:none;\n    background:\n      radial-gradient(800px 240px at 50% -120px, rgba(225,29,72,.08), transparent 60%),\n      linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,0));\n  }\n\n  .pvw-stepbar{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    gap:10px;\n    margin:4px 0 22px;\n    flex-wrap:wrap;\n  }\n\n  .pvw-stepdot{\n    width:34px;\n    height:34px;\n    border-radius:999px;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    font-size:13px;\n    font-weight:800;\n    color:var(--pvw-muted);\n    background:#fff;\n    border:1px solid var(--pvw-line);\n    box-shadow:var(--pvw-shadow-soft);\n    transition:all var(--pvw-speed) var(--pvw-ease);\n  }\n\n  .pvw-stepdot.is-active{\n    color:#fff;\n    background:linear-gradient(135deg,var(--pvw-accent),var(--pvw-accent-2));\n    border-color:transparent;\n    transform:translateY(-1px) scale(1.03);\n    box-shadow:0 12px 30px rgba(225,29,72,.24);\n  }\n\n  .pvw-stepdot.is-done{\n    color:var(--pvw-accent);\n    border-color:rgba(225,29,72,.18);\n    background:rgba(225,29,72,.06);\n  }\n\n  .pvw-stepline{\n    width:46px;\n    height:2px;\n    border-radius:999px;\n    background:linear-gradient(90deg,#e2e8f0,#e2e8f0);\n    transition:all var(--pvw-speed) var(--pvw-ease);\n  }\n\n  .pvw-stepline.is-done{\n    background:linear-gradient(90deg,var(--pvw-accent),var(--pvw-accent-2));\n  }\n\n  .pvw-panel{\n    background:linear-gradient(180deg,var(--pvw-card),var(--pvw-card-2));\n    border:1px solid rgba(15,23,42,.06);\n    border-radius:var(--pvw-radius);\n    padding:26px;\n    margin-bottom:16px;\n    box-shadow:var(--pvw-shadow-soft);\n    transition:\n      transform var(--pvw-speed) var(--pvw-ease),\n      box-shadow var(--pvw-speed) var(--pvw-ease),\n      opacity var(--pvw-speed) var(--pvw-ease);\n  }\n\n  .pvw-step{\n    animation:pvwFadeSlide .45s var(--pvw-ease);\n  }\n\n  @keyframes pvwFadeSlide{\n    from{opacity:0; transform:translateY(10px) scale(.995)}\n    to{opacity:1; transform:translateY(0) scale(1)}\n  }\n\n  .pvw-h2{\n    margin:0 0 8px;\n    text-align:center;\n    font-size:28px;\n    font-weight:800;\n    color:var(--pvw-ink);\n  }\n\n  .pvw-h3{\n    margin:0 0 14px;\n    color:var(--pvw-ink);\n    font-size:30px;\n    line-height:1.15;\n    letter-spacing:-.03em;\n    font-weight:800;\n  }\n\n  .pvw-row{\n    display:flex;\n    gap:16px;\n    flex-wrap:wrap;\n    align-items:flex-end;\n  }\n\n  .pvw-row label{\n    display:block;\n    font-weight:700;\n    color:var(--pvw-ink);\n    font-size:14px;\n    letter-spacing:-.01em;\n  }\n\n  .pvw-field{\n    flex:1 1 220px;\n  }\n\n  .pvw-input,\n  .pvw-select{\n    width:100%;\n    min-height:52px;\n    padding:13px 16px;\n    border:1px solid var(--pvw-line);\n    border-radius:14px !important;\n    background:rgba(255,255,255,.98) !important;\n    color:var(--pvw-ink);\n    font-size:15px;\n    font-weight:600;\n    box-shadow:inset 0 1px 0 rgba(255,255,255,.65);\n    transition:\n      border-color var(--pvw-speed) var(--pvw-ease),\n      box-shadow var(--pvw-speed) var(--pvw-ease),\n      transform var(--pvw-speed) var(--pvw-ease);\n  }\n\n  .pvw-input:focus,\n  .pvw-select:focus{\n    outline:none;\n    border-color:rgba(225,29,72,.45) !important;\n    box-shadow:\n      0 0 0 5px rgba(225,29,72,.10),\n      0 10px 25px rgba(225,29,72,.08);\n    transform:translateY(-1px);\n  }\n\n  .pvw-selectbox{\n    position:relative;\n    min-width:220px;\n  }\n\n  .pvw-select{\n    appearance:none;\n    -webkit-appearance:none;\n    -moz-appearance:none;\n    padding-right:46px !important;\n    cursor:pointer;\n  }\n\n  .pvw-caret{\n    position:absolute;\n    right:16px;\n    top:50%;\n    transform:translateY(-50%);\n    width:10px;\n    height:10px;\n    border-right:2px solid #64748b;\n    border-bottom:2px solid #64748b;\n    rotate:45deg;\n    pointer-events:none;\n    transition:all var(--pvw-speed) var(--pvw-ease);\n  }\n\n  .pvw-select:focus + .pvw-caret{\n    border-color:var(--pvw-accent);\n  }\n\n  .pvw-val{\n    display:block;\n    font-size:clamp(42px,5vw,58px);\n    line-height:1;\n    letter-spacing:-.05em;\n    font-weight:900;\n    color:var(--pvw-accent);\n    margin:4px 0 18px;\n  }\n\n  .pvw-kwh{\n    font-size:.8em;\n    letter-spacing:-.03em;\n  }\n\n  .pvw-muted{\n    color:var(--pvw-muted);\n    font-size:14px;\n    line-height:1.6;\n  }\n\n  .pvw-slider{\n    --track-h:10px;\n    --thumb-d:22px;\n    --pvw-fill:0%;\n    width:100%;\n    appearance:none;\n    -webkit-appearance:none;\n    height:var(--track-h);\n    border-radius:999px;\n    outline:none;\n    background:\n      linear-gradient(90deg, #ff8aa2 0%, #e11d48 72%, #881337 100%) 0 \/ var(--pvw-fill) 100% no-repeat,\n      linear-gradient(90deg, #e2e8f0, #e2e8f0) 0 \/ 100% 100% no-repeat;\n    box-shadow:inset 0 1px 2px rgba(15,23,42,.08);\n    margin:8px 0 22px;\n  }\n\n  .pvw-slider::-webkit-slider-runnable-track{\n    height:var(--track-h);\n    background:transparent;\n    border-radius:999px;\n  }\n\n  .pvw-slider::-moz-range-track{\n    height:var(--track-h);\n    background:#e2e8f0;\n    border-radius:999px;\n  }\n\n  .pvw-slider::-moz-range-progress{\n    height:var(--track-h);\n    border-radius:999px;\n    background:linear-gradient(90deg, #ff8aa2 0%, #e11d48 72%, #881337 100%);\n  }\n\n  .pvw-slider::-webkit-slider-thumb{\n    -webkit-appearance:none;\n    width:var(--thumb-d);\n    height:var(--thumb-d);\n    margin-top:calc((var(--track-h) - var(--thumb-d)) \/ 2);\n    border-radius:50%;\n    background:linear-gradient(135deg,#fff,#ffe4ea);\n    border:2px solid var(--pvw-accent);\n    box-shadow:\n      0 6px 18px rgba(225,29,72,.22),\n      0 1px 2px rgba(15,23,42,.10);\n    cursor:pointer;\n    transition:transform .14s ease;\n  }\n\n  .pvw-slider::-webkit-slider-thumb:hover{\n    transform:scale(1.06);\n  }\n\n  .pvw-slider::-moz-range-thumb{\n    width:var(--thumb-d);\n    height:var(--thumb-d);\n    border-radius:50%;\n    background:linear-gradient(135deg,#fff,#ffe4ea);\n    border:2px solid var(--pvw-accent);\n    box-shadow:0 6px 18px rgba(225,29,72,.22);\n    cursor:pointer;\n  }\n\n  .pvw-cards{\n    display:grid;\n    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));\n    gap:14px;\n  }\n\n  .pvw-card{\n    position:relative;\n    border:1px solid var(--pvw-line);\n    border-radius:18px;\n    padding:18px 16px;\n    text-align:center;\n    cursor:pointer;\n    background:linear-gradient(180deg,#fff,#fcfcfd);\n    color:var(--pvw-ink);\n    font-weight:700;\n    transition:\n      transform var(--pvw-speed) var(--pvw-ease),\n      box-shadow var(--pvw-speed) var(--pvw-ease),\n      border-color var(--pvw-speed) var(--pvw-ease);\n    box-shadow:0 6px 18px rgba(15,23,42,.04);\n  }\n\n  .pvw-card:hover{\n    transform:translateY(-3px);\n    border-color:rgba(225,29,72,.22);\n    box-shadow:0 14px 36px rgba(15,23,42,.08);\n  }\n\n  .pvw-card.pvw-selected{\n    border-color:rgba(225,29,72,.24);\n    background:\n      linear-gradient(180deg, rgba(225,29,72,.06), rgba(255,255,255,.96)),\n      linear-gradient(180deg,#fff,#fcfcfd);\n    box-shadow:\n      0 0 0 4px rgba(225,29,72,.10),\n      0 18px 44px rgba(225,29,72,.12);\n    transform:translateY(-3px);\n  }\n\n  #pvw-map{\n    height:430px;\n    border:1px solid var(--pvw-line);\n    border-radius:20px;\n    overflow:hidden;\n    box-shadow:var(--pvw-shadow-soft);\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    color:var(--pvw-muted);\n    font-weight:700;\n    background:rgba(255,255,255,.75);\n  }\n\n  .pvw-sum{\n    display:grid;\n    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));\n    gap:16px;\n  }\n\n  .pvw-sum .pvw-panel{\n    margin:0;\n    text-align:center;\n    padding:22px 18px;\n    border-radius:22px;\n  }\n\n  .pvw-sum .pvw-muted{\n    font-size:13px;\n    letter-spacing:.01em;\n    text-transform:uppercase;\n    color:#64748b;\n  }\n\n  .pvw-sum .pvw-val{\n    font-size:40px;\n    margin-top:10px;\n  }\n\n  .pvw-btn{\n    position:relative;\n    min-height:52px;\n    padding:0 20px;\n    background:linear-gradient(135deg,var(--pvw-accent),var(--pvw-accent-2)) !important;\n    color:#fff !important;\n    border:none !important;\n    border-radius:16px !important;\n    font-size:15px;\n    font-weight:800 !important;\n    letter-spacing:-.01em;\n    cursor:pointer;\n    box-shadow:0 14px 30px rgba(225,29,72,.22);\n    transition:\n      transform var(--pvw-speed) var(--pvw-ease),\n      box-shadow var(--pvw-speed) var(--pvw-ease),\n      filter var(--pvw-speed) var(--pvw-ease),\n      opacity var(--pvw-speed) var(--pvw-ease);\n  }\n\n  .pvw-btn:hover{\n    transform:translateY(-2px);\n    filter:brightness(1.03);\n    box-shadow:0 18px 34px rgba(225,29,72,.28);\n  }\n\n  .pvw-btn:active{\n    transform:translateY(0);\n  }\n\n  .pvw-btn--ghost{\n    background:linear-gradient(180deg,#fff,#f8fafc) !important;\n    color:var(--pvw-ink) !important;\n    border:1px solid var(--pvw-line) !important;\n    box-shadow:0 8px 24px rgba(15,23,42,.06);\n  }\n\n  .pvw-btn--ghost:hover{\n    box-shadow:0 14px 30px rgba(15,23,42,.10);\n  }\n\n  .pvw-nav{\n    display:flex;\n    justify-content:space-between;\n    align-items:center;\n    gap:12px;\n    margin-top:18px;\n  }\n\n  #pvw-next,#pvw-back{\n    display:inline-flex !important;\n    align-items:center;\n    justify-content:center;\n  }\n\t#pvw-next[style*=\"display: none\"]{\n\t  display:none !important;\n\t}\n\n  #pvw-back{\n    transition:opacity .25s ease, transform .25s ease;\n  }\n\n  #pvw-back.is-hidden{\n    opacity:0;\n    pointer-events:none;\n    transform:translateY(4px);\n  }\n\n  .pvw-pre{\n    background:linear-gradient(180deg,#0f172a,#111827);\n    color:#e2e8f0;\n    border:none;\n    border-radius:18px;\n    padding:16px 18px;\n    white-space:pre-wrap;\n    box-shadow:var(--pvw-shadow-soft);\n  }\n\n  .pvw-h2{\n    display:none;\n  }\n\n  @media (max-width:900px){\n    .pvw-wrap > .pvw-container{\n      padding:18px;\n      border-radius:26px;\n    }\n\n    .pvw-panel{\n      padding:18px;\n      border-radius:20px;\n    }\n\n    .pvw-h3{\n      font-size:24px;\n    }\n\n    .pvw-nav{\n      position:sticky;\n      bottom:0;\n      background:rgba(255,255,255,.82);\n      backdrop-filter:blur(10px);\n      -webkit-backdrop-filter:blur(10px);\n      padding:12px;\n      margin:16px -6px -6px;\n      border-top:1px solid rgba(15,23,42,.06);\n      z-index:4;\n    }\n\n    .pvw-nav > button,\n    .pvw-nav > div > button{\n      flex:1 1 0;\n      width:100%;\n    }\n\n    .pvw-stepbar{\n      gap:8px;\n    }\n\n    .pvw-stepline{\n      width:24px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    .pvw-step,\n    .pvw-card,\n    .pvw-panel,\n    .pvw-btn,\n    .pvw-stepdot{\n      animation:none !important;\n      transition:none !important;\n    }\n  }\n<\/style>\n\n  <div class=\"pvw-wrap\" id=\"pvw-root\">\n    <div class=\"pvw-container\">\n\n      <div class=\"pvw-stepbar\" id=\"pvw-stepbar\">\n        <span class=\"pvw-stepdot is-active\" data-step=\"1\">1<\/span>\n        <span class=\"pvw-stepline\"><\/span>\n        <span class=\"pvw-stepdot\" data-step=\"2\">2<\/span>\n        <span class=\"pvw-stepline\"><\/span>\n        <span class=\"pvw-stepdot\" data-step=\"3\">3<\/span>\n        <span class=\"pvw-stepline\"><\/span>\n        <span class=\"pvw-stepdot\" data-step=\"4\">4<\/span>\n      <\/div>\n\n      <!-- STEP 1 -->\n      <section class=\"pvw-panel pvw-step\" id=\"pvw-step1\">\n        <h3 class=\"pvw-h3\">How many kWh of energy do you use per year<\/h3>\n        <span class=\"pvw-val\"><span id=\"pvw-useVal\">4300<\/span> <span class=\"pvw-kwh\">kWh<\/span><\/span>\n        <input id=\"pvw-use\" class=\"pvw-slider\" type=\"range\" min=\"1000\" max=\"100000\" step=\"100\" value=\"4300\" \/>\n        <div class=\"pvw-row\">\n          <label>Or enter manually <input id=\"pvw-useNum\" class=\"pvw-input\" type=\"number\" value=\"4300\" min=\"0\" step=\"100\"><\/label>\n\n          <div class=\"pvw-field\">\n            <label for=\"pvw-seg\">Customer type<\/label>\n            <div class=\"pvw-selectbox\">\n              <select id=\"pvw-seg\" class=\"pvw-select\">\n                <option value=\"F\">Residential<\/option>\n                <option value=\"Bu\"> Small\/medium business<\/option>\n                <option value=\"BM\">Large business<\/option>\n              <\/select>\n              <span class=\"pvw-caret\" aria-hidden=\"true\"><\/span>\n            <\/div>\n          <\/div>\n\n          <label>Energy price \u20ac\/kWh            <input id=\"pvw-price\" class=\"pvw-input\" type=\"number\" value=\"0.095\" step=\"0.001\">\n          <\/label>\n        <\/div>\n        <p class=\"pvw-muted\">Price is set automatically based on type, but you can adjust it according to your bill.<\/p>\n      <\/section>\n\n      <!-- STEP 2 -->\n      <section class=\"pvw-panel pvw-step\" id=\"pvw-step2\" style=\"display:none\">\n        <h3 class=\"pvw-h3\">Installation method<\/h3>\n        <div class=\"pvw-cards\" id=\"pvw-installs\">\n          <div class=\"pvw-card\" data-install=\"sloped\">Pitched roof<\/div>\n          <div class=\"pvw-card\" data-install=\"flat\">Flat roof<\/div>\n          <div class=\"pvw-card\" data-install=\"roofing\">Roof-integrated<\/div>\n          <div class=\"pvw-card\" data-install=\"ground\">Ground-mounted<\/div>\n          <div class=\"pvw-card\" data-install=\"facade\">On facade<\/div>\n        <\/div>\n        <p class=\"pvw-muted\">Fixed loss: 14%. Orientation is set to South (az=0). Angle is set based on method (default 30\u00b0).<\/p>\n      <\/section>\n\n      <!-- STEP 3 -->\n      <section class=\"pvw-panel pvw-step\" id=\"pvw-step3\" style=\"display:none\">\n        <h3 class=\"pvw-h3\">Location on map<\/h3>\n        <div class=\"pvw-row\">\n          <label class=\"pvw-inline\">Search address <input id=\"pvw-addr\" class=\"pvw-input\" type=\"text\" placeholder=\"Street, city\"><\/label>\n          <button id=\"pvw-find\" class=\"pvw-btn\" type=\"button\">Search<\/button>\n        <\/div>\n        <div id=\"pvw-map\">Duke ngarkuar hart\u00ebn...<\/div>\n        <p class=\"pvw-muted\">Map \u00a9 OpenStreetMap contributors. Search: Nominatim.<\/p>\n      <\/section>\n\n      <!-- STEP 4 -->\n      <section class=\"pvw-panel pvw-step\" id=\"pvw-step4\" style=\"display:none\">\n        <h3 class=\"pvw-h3\">Our solar system recommendation<\/h3>\n\n        <div class=\"pvw-sum\">\n          <div class=\"pvw-panel\"><div class=\"pvw-muted\">Recommended power<\/div><span class=\"pvw-val\"><span id=\"pvw-recKw\">\u2014<\/span> kWp<\/span><\/div>\n          <div class=\"pvw-panel\"><div class=\"pvw-muted\">Annual production<\/div><span class=\"pvw-val\"><span id=\"pvw-annKwh\">\u2014<\/span> kWh<\/span><\/div>\n          <div class=\"pvw-panel\"><div class=\"pvw-muted\">Annual savings<\/div><span class=\"pvw-val\"><span id=\"pvw-saveYear\">\u2014<\/span> \u20ac<\/span><\/div>\n        <\/div>\n\n        <div class=\"pvw-row\" style=\"margin-top:10px\">\n          <label>Do kapacitet tjet\u00ebr kWp <input id=\"pvw-userKw\" class=\"pvw-input\" type=\"number\" value=\"5\" min=\"0\" step=\"0.1\"><\/label>\n          <label>System cost (\u20ac\/kWp) <input id=\"pvw-priceKwp\" class=\"pvw-input\" type=\"number\" value=\"900\" step=\"10\"><\/label>\n          <label>Subsidy % <input id=\"pvw-subsidy\" class=\"pvw-input\" type=\"number\" value=\"0\" min=\"0\" max=\"100\"><\/label>\n        <\/div>\n\n        <div class=\"pvw-sum\" style=\"margin-top:10px\">\n          <div class=\"pvw-panel\"><div class=\"pvw-muted\">Estimated cost<\/div><span class=\"pvw-val\"><span id=\"pvw-costGross\">\u2014<\/span> \u20ac<\/span><\/div>\n          <div class=\"pvw-panel\"><div class=\"pvw-muted\">Price after subsidy<\/div><span class=\"pvw-val\"><span id=\"pvw-costNet\">\u2014<\/span> \u20ac<\/span><\/div>\n          <div class=\"pvw-panel\"><div class=\"pvw-muted\">Koha e kthimit t\u00eb investimit<\/div><span class=\"pvw-val\"><span id=\"pvw-payback\">\u2014<\/span> years<\/span><\/div>\n        <\/div>\n\n        <p class=\"pvw-muted\">kWp \u00ebsht\u00eb kapaciteti nominal i instaluar; kWh \u00ebsht\u00eb energjia e prodhuar ose e konsumuar; kW \u00ebsht\u00eb fuqia n\u00eb nj\u00eb \u00e7ast. Koha e kthimit \u00ebsht\u00eb nj\u00eb vler\u00ebsim i thjesht\u00eb: kostoja neto pjes\u00ebtuar me kursimin vjetor sipas supozimeve t\u00eb kalkulatorit, jo ROI p\u00ebr gjith\u00eb jet\u00ebn e sistemit.<\/p>\n        <p id=\"pvw-project-quote\" class=\"pvw-muted\" hidden>\u00c7mim sipas projektit \u2014 k\u00ebrko ofert\u00eb <a href=\"\/kontakt\/\">K\u00ebrko ofert\u00eb<\/a><\/p>\n        <pre id=\"pvw-debug\" class=\"pvw-pre\" style=\"margin-top:10px\"><\/pre>\n      <\/section>\n\n      <!-- NAV -->\n      <div class=\"pvw-nav\">\n        <button id=\"pvw-back\" class=\"pvw-btn pvw-btn--ghost\" type=\"button\">Back<\/button>\n        <div><button id=\"pvw-next\" class=\"pvw-btn\" type=\"button\">Next<\/button><\/div>\n      <\/div>\n\n      <p class=\"pvw-muted\" style=\"margin-top:10px\">Production is calculated using PVGIS. Loss 14%. South orientation, angle based on method.<\/p>\n    <\/div>\n  <\/div>\n\n<script>\n;(function(){\n  const root = document.getElementById('pvw-root');\n  if(!root || root.dataset.inited) return;\n  root.dataset.inited = '1';\n\n  const pvwI18n = {\"address_not_found\":\"Address not found\",\"pvgis_error\":\"PVGIS request error:\",\"coord\":\"Coordinates\",\"loss\":\"Loss\",\"angle\":\"Angle\",\"az\":\"Az\",\"production_per_1kwp\":\"Production per 1 kWp\",\"recommended_power\":\"Recommended power\",\"annual_production\":\"Prodhimi vjetor me %s kWp\",\"energy_price\":\"Energy price\",\"price_per_kwp\":\"\u20ac\/kWp (table)\",\"years\":\"years\",\"kwh_year\":\"kWh\/year\",\"loading_map\":\"Duke ngarkuar hart\u00ebn...\",\"map_failed\":\"Harta nuk u ngarkua\"};\n  const isEnglish=\/^en(?:-|$)\/i.test(document.documentElement.lang);\n  if(isEnglish) pvwI18n.annual_production='Annual production with %s kWp';\n  const prefersReduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  const LEAFLET_CSS = \"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\";\n  const LEAFLET_JS  = \"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\";\n\n  const fmt = n => Number(n || 0).toLocaleString('sq-AL');\n\n  const SEG_PRICE = { F: 0.095, Bu: 0.140, BM: 0.185 };\n  const LOSS = 14;\n  const USE_ADJUST = 1.03;\n\n  let tilt = 30, az = 0;\n  let lat = 41.327, lon = 19.819;\n\n  const $ = id => document.getElementById(id);\n  let step=1, maxStep=4, calculationRun=0, usedTracked=false;\n  function trackUsed(e){\n    if(!e.isTrusted || usedTracked) return;\n    usedTracked=true;\n    window.rsSolarTrack?.('calculator_used', {calculator_type:'pvgis'});\n  }\n  root.addEventListener('input',trackUsed);\n  root.addEventListener('change',trackUsed);\n  root.addEventListener('click',e=>{\n    if(e.target.closest('#pvw-next,.pvw-card,#pvw-find')) trackUsed(e);\n  });\n\n  const use      = $('pvw-use');\n  const useNum   = $('pvw-useNum');\n  const useVal   = $('pvw-useVal');\n  const segSel   = $('pvw-seg');\n  const priceEl  = $('pvw-price');\n  const installs = $('pvw-installs');\n\n  function animateValue(el, end, decimals = 0, duration = 500, formatter = null){\n    if(!el) return;\n    if(prefersReduced){\n      el.textContent = formatter ? formatter(end) : Number(end).toFixed(decimals);\n      return;\n    }\n\n    const animationToken=(el.rsAnimationToken || 0)+1;\n    el.rsAnimationToken=animationToken;\n    const rawStart = String(el.textContent || '0').replace(\/[^\\d.-]\/g,'');\n    const start = Number(rawStart || 0);\n    const startTime = performance.now();\n\n    function frame(now){\n      if(el.rsAnimationToken!==animationToken) return;\n      const p = Math.min(1, (now - startTime) \/ duration);\n      const eased = 1 - Math.pow(1 - p, 3);\n      const val = start + (end - start) * eased;\n      el.textContent = formatter\n        ? formatter(val)\n        : Number(val).toFixed(decimals);\n      if(p < 1) requestAnimationFrame(frame);\n    }\n    requestAnimationFrame(frame);\n  }\n\n  function setStepUI(n){\n    const dots = document.querySelectorAll('.pvw-stepdot');\n    const lines = document.querySelectorAll('.pvw-stepline');\n\n    dots.forEach(dot=>{\n      const s = Number(dot.dataset.step);\n      dot.classList.toggle('is-active', s === n);\n      dot.classList.toggle('is-done', s < n);\n    });\n\n    lines.forEach((line, idx)=>{\n      line.classList.toggle('is-done', idx < n - 1);\n    });\n  }\n\n  function loadLeafletCSS() {\n    return new Promise((resolve, reject) => {\n      if (document.querySelector('link[data-pvw-leaflet=\"1\"]')) {\n        resolve();\n        return;\n      }\n\n      const link = document.createElement('link');\n      link.rel = 'stylesheet';\n      link.href = LEAFLET_CSS;\n      link.dataset.pvwLeaflet = '1';\n      link.onload = () => resolve();\n      link.onerror = () => reject(new Error('Leaflet CSS failed'));\n      document.head.appendChild(link);\n    });\n  }\n\n  function loadLeafletJS() {\n    return new Promise((resolve, reject) => {\n      if (window.L) {\n        resolve();\n        return;\n      }\n\n      const existing = document.querySelector('script[data-pvw-leaflet=\"1\"]');\n      if (existing) {\n        existing.addEventListener('load', () => resolve(), { once:true });\n        existing.addEventListener('error', () => reject(new Error('Leaflet JS failed')), { once:true });\n        return;\n      }\n\n      const script = document.createElement('script');\n      script.src = LEAFLET_JS;\n      script.defer = true;\n      script.dataset.pvwLeaflet = '1';\n      script.onload = () => resolve();\n      script.onerror = () => reject(new Error('Leaflet JS failed'));\n      document.body.appendChild(script);\n    });\n  }\n\n  let leafletPromise = null;\n  function ensureLeaflet() {\n    if (window.L) return Promise.resolve();\n    if (leafletPromise) return leafletPromise;\n\n    leafletPromise = Promise.all([\n      loadLeafletCSS(),\n      loadLeafletJS()\n    ]).then(() => {\n      if (!window.L) throw new Error('Leaflet unavailable');\n    });\n\n    return leafletPromise;\n  }\n\n  async function showStep(n){\n  step = Math.min(Math.max(n,1), maxStep);\n\n  document.querySelectorAll('.pvw-step').forEach((el,i)=>{\n    el.style.display = (i === step - 1) ? 'block' : 'none';\n  });\n\n  $('pvw-back').classList.toggle('is-hidden', step === 1);\n\n  if (step === maxStep) {\n    $('pvw-next').style.display = 'none';\n    $('pvw-next').disabled = true;\n  } else {\n    $('pvw-next').style.display = 'inline-flex';\n    $('pvw-next').disabled = false;\n  }\n\n  setStepUI(step);\n\n  if(step === 3) {\n    try {\n      await initMap();\n    } catch (e) {\n      $('pvw-map').textContent = pvwI18n.map_failed || 'Map failed';\n    }\n  }\n\n  if(step === 4) calculate();\n}\n\n  function updateSliderFill(n){\n    const min = Number(use.min)||0;\n    const max = Number(use.max)||100;\n    const pct = Math.max(0, Math.min(100, 100*(n-min)\/(max-min)));\n    use.style.setProperty('--pvw-fill', pct + '%');\n  }\n\n  function syncUse(v){\n    const n = Math.max(0, Number(v)||0);\n    use.value = n;\n    useNum.value = n;\n    animateValue(useVal, n, 0, 320, val => fmt(Math.round(val)));\n    updateSliderFill(n);\n  }\n\n  use.addEventListener('input', e=> syncUse(e.target.value));\n  useNum.addEventListener('input', e=> { if(e.target.value !== '' && Number(e.target.value)>=0) syncUse(e.target.value); });\n\n  segSel.addEventListener('change', ()=>{\n    priceEl.value = SEG_PRICE[segSel.value] ?? 0.10;\n  });\n\n  priceEl.value = SEG_PRICE[segSel.value];\n\n  installs.addEventListener('click', e=>{\n    const card = e.target.closest('.pvw-card');\n    if(!card) return;\n\n    installs.querySelectorAll('.pvw-card').forEach(c=>c.classList.remove('pvw-selected'));\n    card.classList.add('pvw-selected');\n\n    const t = card.dataset.install;\n    tilt = (t==='flat') ? 10 : (t==='facade') ? 90 : 30;\n\n    setTimeout(()=> showStep(3), 140);\n  });\n\n  let map, marker, mapReady=false;\n\n  async function initMap(){\n    if(mapReady || typeof L!=='undefined' && map){\n      if(map) setTimeout(()=>map.invalidateSize(), 50);\n      return;\n    }\n\n    $('pvw-map').textContent = pvwI18n.loading_map || 'Loading map...';\n\n    await ensureLeaflet();\n\n    if(mapReady){\n      if(map) setTimeout(()=>map.invalidateSize(), 50);\n      return;\n    }\n\n    $('pvw-map').innerHTML = '';\n\n    map = L.map('pvw-map');\n    map.setView([lat, lon], 12);\n\n    L.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png',{\n      maxZoom:19,\n      attribution:'&copy; OpenStreetMap'\n    }).addTo(map);\n\n    marker = L.marker([lat, lon], {draggable:true}).addTo(map);\n    marker.on('dragend', ()=>{\n      const p = marker.getLatLng();\n      lat = p.lat;\n      lon = p.lng;\n    });\n\n    mapReady = true;\n    setTimeout(()=>map.invalidateSize(), 80);\n  }\n\n  $('pvw-find').addEventListener('click', async ()=>{\n    const q = $('pvw-addr').value.trim();\n    if(!q) return;\n\n    const r = await fetch(\n      'https:\/\/nominatim.openstreetmap.org\/search?format=json&q=' + encodeURIComponent(q),\n      { headers:{ 'Accept-Language':'sq' } }\n    );\n\n    const data = await r.json();\n\n    if(data.length){\n      lat = parseFloat(data[0].lat);\n      lon = parseFloat(data[0].lon);\n      await initMap();\n      map.setView([lat,lon],16);\n      marker.setLatLng([lat,lon]);\n    } else {\n      alert(pvwI18n.address_not_found || 'Address not found');\n    }\n  });\n\n  $('pvw-back').addEventListener('click', ()=> showStep(step-1));\n  $('pvw-next').addEventListener('click', ()=> showStep(step+1));\n\n  showStep(1);\n  syncUse(use.value);\n  updateSliderFill(use.value);\n\n  function tierPriceKwp(kW){\n    const v = Number(kW);\n    if (!Number.isFinite(v) || v <= 0 || v > 500) return null;\n    if (v <= 5) return 900;\n    if (v <= 10) return 800;\n    if (v <= 20) return 700;\n    if (v <= 30) return 600;\n    if (v <= 50) return 550;\n    if (v <= 100) return 500;\n    if (v <= 200) return 480;\n    return 450;\n  }\n\n  function getYearlyUse(){\n    const manualUse = Number(useNum.value) || 0;\n    const sliderUse = Number(use.value) || 0;\n    return useNum.value.trim() === '' ? NaN : Number(useNum.value);\n  }\n\n  function normalizedPvgisYield(json, english=false){\n    if(!json || typeof json!=='object' || Array.isArray(json) || json.error) throw new Error(english ? 'PVGIS: invalid response.' : 'PVGIS: p\u00ebrgjigje e pavlefshme.');\n    const annual=json?.outputs?.totals?.fixed?.E_y;\n    const peak=json?.inputs?.pv_module?.peak_power;\n    const validPositive=v=>(typeof v==='number' || (typeof v==='string' && v.trim()!=='')) && Number.isFinite(Number(v)) && Number(v)>0;\n    if(!validPositive(annual) || !validPositive(peak)) throw new Error(english ? 'PVGIS: valid annual output or peak capacity is missing.' : 'PVGIS: mungon prodhimi vjetor ose kapaciteti i vlefsh\u00ebm.');\n    const yieldPerKwp=Number(annual)\/Number(peak);\n    if(!Number.isFinite(yieldPerKwp) || yieldPerKwp<=0) throw new Error(english ? 'PVGIS: invalid yield.' : 'PVGIS: prodhim i pavlefsh\u00ebm.');\n    return yieldPerKwp;\n  }\n\n  async function calculate(){\n    const run=++calculationRun;\n    const yearlyUse = getYearlyUse();\n    ['pvw-recKw','pvw-annKwh','pvw-saveYear','pvw-costGross','pvw-costNet','pvw-payback'].forEach(id=>{ $(id).rsAnimationToken=($(id).rsAnimationToken || 0)+1; $(id).textContent='\u2014'; });\n    $('pvw-userKw').oninput=null;\n    $('pvw-priceKwp').oninput=null;\n    $('pvw-subsidy').oninput=null;\n    const useCalc   = yearlyUse * USE_ADJUST;\n    const priceE    = priceEl.value.trim() === '' ? NaN : Number(priceEl.value);\n\n    const aspect = az;\n    const qs = new URLSearchParams({\n      lat: lat.toFixed(5),\n      lon: lon.toFixed(5),\n      peakpower: 1,\n      loss: LOSS,\n      angle: tilt,\n      aspect,\n      outputformat: 'json'\n    }).toString();\n\n    try{\n      if(!Number.isFinite(yearlyUse) || yearlyUse<=0 || !Number.isFinite(priceE) || priceE<0) throw new Error(isEnglish ? 'Enter positive annual consumption and a valid energy price.' : 'Vendos konsum vjetor pozitiv dhe \u00e7mim energjie t\u00eb vlefsh\u00ebm.');\n      const res = await fetch('\/wp-json\/pvcalc\/v1\/call?' + qs);\n      if(!res.ok) throw new Error('HTTP ' + res.status);\n\n      const json = await res.json();\n\n      const Ey = normalizedPvgisYield(json,isEnglish);\n      if(run!==calculationRun) return;\n\n      const recKw = (useCalc>0 && Ey>0) ? (useCalc \/ Ey) : 0;\n      const recKwRound = Math.round(recKw*10)\/10;\n\n      const priceKwpEl = $('pvw-priceKwp');\n      priceKwpEl.value = tierPriceKwp(recKwRound) ?? '';\n\n      const userKwEl = $('pvw-userKw');\n      userKwEl.value = recKwRound;\n\n      function update(kW){\n        priceKwpEl.disabled=Number(kW)>500;\n        $('pvw-project-quote').hidden=!(Number(kW)>500);\n        const rawCapacity=String(kW).trim();\n        kW = rawCapacity === '' ? NaN : Number(kW);\n        const rawPrice=priceKwpEl.value.trim();\n        const rawSubsidy=$('pvw-subsidy').value.trim();\n        if(!Number.isFinite(kW) || kW<0 || (kW<=500 && rawPrice==='') || !Number.isFinite(Number(rawPrice)) || Number(rawPrice)<0 || rawSubsidy==='' || !Number.isFinite(Number(rawSubsidy))){\n          ['pvw-recKw','pvw-annKwh','pvw-saveYear','pvw-costGross','pvw-costNet','pvw-payback'].forEach(id=>{ $(id).rsAnimationToken=($(id).rsAnimationToken || 0)+1; $(id).textContent='\u2014'; });\n          $('pvw-debug').textContent=isEnglish ? 'Enter valid capacity, cost and subsidy values.' : 'Vendos kapacitet, kosto dhe mb\u00ebshtetje t\u00eb vlefshme.';\n          return false;\n        }\n\n        const ann = kW * Ey;\n        const save = Math.min(ann, useCalc) * priceE;\n\n        const priceKwp = Number(priceKwpEl.value)||0;\n        const subsidy = Math.max(0, Math.min(100, Number($('pvw-subsidy').value)||0))\/100;\n\n        const gross = kW > 500 ? 0 : kW * priceKwp;\n        const net = gross * (1 - subsidy);\n        const payYears = save > 0 ? (net \/ save) : 0;\n\n        animateValue($('pvw-recKw'), kW, 1, 520, v => Number(v).toFixed(1));\n        animateValue($('pvw-annKwh'), ann, 0, 560, v => Math.round(v).toLocaleString('sq-AL'));\n        animateValue($('pvw-saveYear'), save, 0, 560, v => Math.round(v).toLocaleString('sq-AL'));\n        if(kW<=500){\n          animateValue($('pvw-costGross'), gross, 0, 580, v => Math.round(v).toLocaleString('sq-AL'));\n          animateValue($('pvw-costNet'), net, 1, 580, v => Number(v).toFixed(1));\n        }\n        $('pvw-payback').textContent = kW<=500 && save > 0 ? payYears.toFixed(1) : '\u2014';\n        if(kW>500){\n          $('pvw-costGross').rsAnimationToken=($('pvw-costGross').rsAnimationToken || 0)+1;\n          $('pvw-costNet').rsAnimationToken=($('pvw-costNet').rsAnimationToken || 0)+1;\n          $('pvw-costGross').textContent='\u2014';\n          $('pvw-costNet').textContent='\u2014';\n        }\n\n        $('pvw-debug').textContent = [\n          `${pvwI18n.coord || 'Koord'}: ${lat.toFixed(5)} ${lon.toFixed(5)}`,\n          `${pvwI18n.loss || 'Humbje'}: ${LOSS}%  ${pvwI18n.angle || 'K\u00ebnd'}: ${tilt}\u00b0  ${pvwI18n.az || 'Az'}: ${az}\u00b0 (aspect ${aspect})`,\n          `${pvwI18n.production_per_1kwp || 'Prodhim p\u00ebr 1 kWp'}: ${Math.round(Ey)} ${pvwI18n.kwh_year || 'kWh\/vit'}`,\n          `${pvwI18n.recommended_power || 'Fuqia rekomanduar'}: ${kW.toFixed(1)} kWp`,\n          `${(pvwI18n.annual_production || 'Prodhimi vjetor me %s kWp').replace('%s', kW.toFixed(1))}: ${Math.round(ann).toLocaleString('sq-AL')} kWh`,\n          `${pvwI18n.energy_price || '\u00c7mimi energjis\u00eb'}: ${priceE} \u20ac\/kWh (seg: ${segSel.value})`,\n          `${pvwI18n.price_per_kwp || '\u20ac\/kWp (tabela)'}: ${kW>500 ? (isEnglish ? 'Project-specific price \u2014 request a quote' : '\u00c7mim sipas projektit \u2014 k\u00ebrko ofert\u00eb') : priceKwp}`\n        ].join('\\n');\n        return kW>0 && [ann,save,gross,net].every(Number.isFinite);\n      }\n\n      const completed=update(recKwRound);\n      if(completed && usedTracked) window.rsSolarTrack?.('calculator_completed',{calculator_type:'pvgis'});\n      userKwEl.oninput = ()=> {\n        priceKwpEl.value=tierPriceKwp(userKwEl.value) ?? '';\n        update(userKwEl.value);\n      };\n      priceKwpEl.oninput = ()=> update(userKwEl.value);\n      $('pvw-subsidy').oninput = ()=> update(userKwEl.value);\n\n    }catch(e){\n      if(run!==calculationRun) return;\n      $('pvw-debug').textContent = (pvwI18n.pvgis_error || 'Gabim n\u00eb k\u00ebrkes\u00ebn PVGIS:') + ' ' + e.message;\n    }\n  }\n})();\n<\/script>\n  \n\n     <\/div>\n    <\/section>\n    <div class=\"rs-calculator-quote\" style=\"margin:24px 0;text-align:center;\">\n      <a href=\"\/kontakt\/\" class=\"rs-btn-red\" style=\"display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;background:#e51f28;color:#ffffff;border-radius:6px;text-decoration:none;font-weight:700;\">K\u00ebrko ofert\u00eb falas<\/a>\n    <\/div>\n\n  <\/section>\n\n<\/div>\n\n<script>\n(function () {\n  \/* Leaflet inicializohet vet\u00ebm n\u00eb faqen publike. *\/\n  if (window.self !== window.top) return;\n\n  function fixLeafletMap() {\n    const mapHeight = window.innerWidth <= 768 ? 300 : 360;\n\n    const maps = document.querySelectorAll('#pv-stack .leaflet-container');\n\n    maps.forEach(function (mapEl) {\n      mapEl.style.setProperty('height', mapHeight + 'px', 'important');\n      mapEl.style.setProperty('min-height', mapHeight + 'px', 'important');\n      mapEl.style.setProperty('max-height', mapHeight + 'px', 'important');\n      mapEl.style.setProperty('width', '100%', 'important');\n    });\n\n    window.dispatchEvent(new Event('resize'));\n\n    setTimeout(function () {\n      window.dispatchEvent(new Event('resize'));\n    }, 250);\n\n    setTimeout(function () {\n      window.dispatchEvent(new Event('resize'));\n    }, 700);\n  }\n\n  document.addEventListener('click', function (e) {\n    const clickedButton = e.target.closest(\n      '#pv-stack button, #pv-stack .button, #pv-stack input[type=\"button\"], #pv-stack input[type=\"submit\"], #pv-stack a'\n    );\n\n    if (!clickedButton) return;\n\n    setTimeout(fixLeafletMap, 150);\n    setTimeout(fixLeafletMap, 500);\n    setTimeout(fixLeafletMap, 1000);\n  });\n\n  window.addEventListener('load', function () {\n    setTimeout(fixLeafletMap, 500);\n  });\n})();\n<\/script>\n\n\n\n<style data-wp-block-html=\"css\">\n\/* ===================================================\n   ABOUT SECTION 360 VIEW\n=================================================== *\/\n\n.rs-about-new .rs-about-360-wrap {\n    position: relative !important;\n    overflow: hidden !important;\n    border-radius: 22px !important;\n    background: #050505 !important;\n    border: 1px solid rgba(229,31,40,0.22) !important;\n    box-shadow: 0 28px 70px rgba(0,0,0,0.16) !important;\n    min-height: 520px !important;\n}\n\n.rs-about-new .rs-about-360 {\n    width: 100% !important;\n    height: 100% !important;\n    min-height: 520px !important;\n    display: block !important;\n    border: 0 !important;\n    border-radius: 22px !important;\n    background: #050505 !important;\n}\n\n\/* Placeholder i sigurt q\u00eb Gutenberg mund ta editoj\u00eb pa hapur iframe cross-origin. *\/\n.rs-about-new .rs-about-360-placeholder {\n    display: flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    padding: 70px 24px 24px !important;\n    color: rgba(255,255,255,0.72) !important;\n    font-size: 14px !important;\n    font-weight: 800 !important;\n    letter-spacing: 0.04em !important;\n    text-align: center !important;\n}\n\n\/* Small premium label *\/\n.rs-about-new .rs-about-360-badge {\n    position: absolute !important;\n    top: 18px !important;\n    left: 18px !important;\n    bottom: auto !important;\n    z-index: 3 !important;\n\n    padding: 8px 12px !important;\n    border-radius: 999px !important;\n    background: rgba(0,0,0,0.72) !important;\n    border: 1px solid rgba(229,31,40,0.55) !important;\n    color: #ffffff !important;\n\n    font-size: 12px !important;\n    font-weight: 900 !important;\n    letter-spacing: 0.12em !important;\n    text-transform: uppercase !important;\n\n    backdrop-filter: blur(8px) !important;\n    -webkit-backdrop-filter: blur(8px) !important;\n    pointer-events: none !important;\n}\n\n\/* Mobile *\/\n@media (max-width: 768px) {\n    .rs-about-new .rs-about-360-wrap {\n        min-height: 360px !important;\n        border-radius: 18px !important;\n    }\n\n    .rs-about-new .rs-about-360 {\n        min-height: 360px !important;\n        border-radius: 18px !important;\n    }\n\n    .rs-about-new .rs-about-360-badge {\n        top: 18px !important;\n        left: 14px !important;\n        bottom: auto !important;\n        font-size: 10px !important;\n    }\n}\n<\/style>\n\n<section id=\"rreth-nesh\" class=\"rs-about-new\">\n  <div class=\"rs-about-inner\">\n\n    <div class=\"rs-about-image rs-about-360-wrap\">\n      <div\n        id=\"rsAbout360\"\n        class=\"rs-about-360 rs-about-360-placeholder\"\n        data-src=\"https:\/\/momento360.com\/e\/uc\/2c61466512ab46f38da2907e2e33b64f?utm_campaign=embed&amp;utm_source=other&amp;utm_medium=embed&amp;size=medium&amp;display-plan=true\"\n        role=\"img\"\n        aria-label=\"Pamje 360 grad\u00eb e projektit Real Solar\"\n      >\n        Pamja 360\u00b0 ngarkohet automatikisht n\u00eb faqen publike.\n      <\/div>\n\n      <div class=\"rs-about-360-badge\">360\u00b0 REAL SOLAR<\/div>\n    <\/div>\n\n    <div class=\"rs-about-content\">\n      <span class=\"rs-about-eyebrow\">RRETH NESH<\/span>\n\n      <h2>Real Solar, partneri juaj p\u00ebr energji diellore n\u00eb Shqip\u00ebri<\/h2>\n\n      <p>\n        Panelet diellore fotovoltaike prodhojn\u00eb energji elektrike p\u00ebr sht\u00ebpi,\n        biznese dhe industri. Real Solar ofron projektim, instalim dhe\n        mir\u00ebmbajtje sistemesh fotovoltaike n\u00eb Shqip\u00ebri, me analiz\u00eb t\u00eb konsumit,\n        hij\u00ebzimit dhe prodhimit t\u00eb pritsh\u00ebm p\u00ebr \u00e7do objekt.\n      <\/p>\n\n      <div class=\"rs-about-features\">\n        <div class=\"rs-about-feature\">\n          <div class=\"rs-about-feature-icon\"><svg viewBox=\"0 0 64 64\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n  <path d=\"M36 4L16 34h12l-4 26 24-34H36V4z\" fill=\"none\" stroke=\"#000000\" stroke-width=\"4\" stroke-linejoin=\"round\" stroke-linecap=\"round\"><\/path>\n<\/svg><\/div>\n          <div>\n            <strong>Eksperienc\u00eb dhe teknologji<\/strong>\n            <span>Zgjidhje moderne dhe t\u00eb avancuara<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs-about-feature\">\n          <div class=\"rs-about-feature-icon\"><svg viewBox=\"0 0 64 64\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n  <path d=\"M32 6\n           L48 12\n           V26\n           C48 38 40.5 48 32 54\n           C23.5 48 16 38 16 26\n           V12\n           Z\" fill=\"#000000\"><\/path>\n<\/svg><\/div>\n          <div>\n            <strong>Materiale cil\u00ebsore<\/strong>\n            <span>Garanci dhe produkte t\u00eb besueshme<\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs-about-feature\">\n          <div class=\"rs-about-feature-icon\"><svg viewBox=\"0 0 64 64\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n  <path d=\"M18 31\n           C18 22 24 16 32 16\n           C40 16 46 22 46 31\" fill=\"none\" stroke=\"#000000\" stroke-width=\"4\" stroke-linecap=\"round\"><\/path>\n\n  <rect x=\"14\" y=\"28\" width=\"8\" height=\"14\" rx=\"4\" fill=\"none\" stroke=\"#000000\" stroke-width=\"4\"><\/rect>\n\n  <rect x=\"42\" y=\"28\" width=\"8\" height=\"14\" rx=\"4\" fill=\"none\" stroke=\"#000000\" stroke-width=\"4\"><\/rect>\n\n  <path d=\"M46 42\n           V46\n           C46 50 42 54 38 54\n           H34\" fill=\"none\" stroke=\"#000000\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n\n  <rect x=\"26\" y=\"50\" width=\"10\" height=\"6\" rx=\"3\" fill=\"#000000\"><\/rect>\n<\/svg><\/div>\n          <div>\n            <strong>Mb\u00ebshtetje teknike<\/strong>\n            <span>Mir\u00ebmbajtje afatgjat\u00eb pas instalimit<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  function loadRealSolar360() {\n    \/* Gutenberg e hap p\u00ebrmbajtjen n\u00eb iframe; aty nuk ngarkojm\u00eb Momento360. *\/\n    if (window.self !== window.top) return;\n\n    const placeholder = document.getElementById(\"rsAbout360\");\n    if (!placeholder || placeholder.dataset.loaded === \"true\") return;\n\n    const source = placeholder.getAttribute(\"data-src\");\n    if (!source) return;\n\n    const frame = document.createElement(\"iframe\");\n    frame.className = \"rs-about-360\";\n    frame.src = source;\n    frame.title = \"Pamje 360 grad\u00eb e projektit Real Solar\";\n    frame.loading = \"lazy\";\n    frame.setAttribute(\"allowfullscreen\", \"\");\n    frame.setAttribute(\"referrerpolicy\", \"strict-origin-when-cross-origin\");\n\n    placeholder.dataset.loaded = \"true\";\n    placeholder.replaceWith(frame);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", loadRealSolar360, { once: true });\n  } else {\n    loadRealSolar360();\n  }\n})();\n<\/script>\n\n\n\n<section class=\"rs-why-new\">\n  <div class=\"rs-why-inner\">\n\n    <div class=\"rs-why-head\">\n      <span class=\"rs-why-eyebrow\">PSE T\u00cb NA ZGJIDHNI?<\/span>\n      <h2>\u00c7far\u00eb e b\u00ebn Real Solar zgjedhjen e duhur?<\/h2>\n    <\/div>\n\n    <div class=\"rs-why-grid\">\n\n      <div class=\"rs-why-card\">\n        <div class=\"rs-why-icon\"><svg viewBox=\"0 0 64 64\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n  <!-- compass top -->\n  <circle cx=\"32\" cy=\"12\" r=\"4\" fill=\"#ffffff\"\/>\n\n  <!-- compass legs -->\n  <path d=\"M32 16L20 54\"\n        stroke=\"#ffffff\"\n        stroke-width=\"5\"\n        stroke-linecap=\"round\"\n        stroke-linejoin=\"round\"\/>\n\n  <path d=\"M32 16L44 54\"\n        stroke=\"#ffffff\"\n        stroke-width=\"5\"\n        stroke-linecap=\"round\"\n        stroke-linejoin=\"round\"\/>\n\n  <!-- cross bar -->\n  <path d=\"M24 34h16\"\n        stroke=\"#ffffff\"\n        stroke-width=\"4\"\n        stroke-linecap=\"round\"\/>\n\n  <!-- left point -->\n  <path d=\"M18 58h8\"\n        stroke=\"#ffffff\"\n        stroke-width=\"4\"\n        stroke-linecap=\"round\"\/>\n\n  <!-- right point -->\n  <path d=\"M40 58h8\"\n        stroke=\"#ffffff\"\n        stroke-width=\"4\"\n        stroke-linecap=\"round\"\/>\n<\/svg><\/div>\n        <div class=\"rs-why-content\">\n          <h3>Inxhinieri, jo vet\u00ebm instalim<\/h3>\n          <p>\n            Projektojm\u00eb \u00e7do zgjidhje mbi analiza teknike p\u00ebr performanc\u00eb\n            maksimale dhe siguri afatgjat\u00eb.\n          <\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"rs-why-card\">\n        <div class=\"rs-why-icon\"><svg viewBox=\"0 0 64 64\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n  <!-- chart frame -->\n  <rect x=\"12\" y=\"10\" width=\"40\" height=\"44\" rx=\"6\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"4\"\/>\n\n  <!-- chart line -->\n  <path d=\"M20 42L28 33L35 38L45 22\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n\n  <!-- arrow -->\n  <path d=\"M40 22H45V27\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n\n  <!-- axes -->\n  <path d=\"M20 46H44\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"4\" stroke-linecap=\"round\"\/>\n  <path d=\"M20 46V20\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"4\" stroke-linecap=\"round\"\/>\n<\/svg><\/div>\n        <div class=\"rs-why-content\">\n          <h3>Llogaritje t\u00eb qarta t\u00eb kursimit<\/h3>\n          <p>\n            Vler\u00ebsime t\u00eb sakta t\u00eb prodhimit, kursimit dhe kthimit t\u00eb investimit,\n            pa surpriza.\n          <\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"rs-why-card\">\n        <div class=\"rs-why-icon\"><svg viewBox=\"0 0 64 64\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n  <!-- wrench -->\n  <path d=\"M24 17C21 20 20.5 24.5 22.5 28L14 36.5L18.5 41L27 32.5C30.5 34.5 35 34 38 31\n           C34.5 30.5 32 27.5 32 24C32 20.5 34.5 17.5 38 17\n           C34 14 28.5 14 24 17Z\"\n        fill=\"#ffffff\"\/>\n\n  <!-- screwdriver -->\n  <path d=\"M39 14L50 25\" stroke=\"#ffffff\" stroke-width=\"5\" stroke-linecap=\"round\"\/>\n  <path d=\"M51 12L54 15L49 20L46 17Z\" fill=\"#ffffff\"\/>\n  <path d=\"M25 38L39 52\" stroke=\"#ffffff\" stroke-width=\"5\" stroke-linecap=\"round\"\/>\n  <path d=\"M22 41L17 46L18 53L25 54L30 49Z\" fill=\"#ffffff\"\/>\n<\/svg><\/div>\n        <div class=\"rs-why-content\">\n          <h3>Instalim dhe mir\u00ebmbajtje profesionale<\/h3>\n          <p>\n            Ekip i certifikuar, instalim me standarde evropiane dhe mir\u00ebmbajtje\n            p\u00ebr efikasitet t\u00eb q\u00ebndruesh\u00ebm t\u00eb sistemit.\n          <\/p>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<section class=\"rs-services-clean\">\n  <div class=\"rs-services-clean-inner\">\n\n    <div class=\"rs-services-clean-head\">\n      <span>SH\u00cbRBIMET TONA<\/span>\n      <h2>Zgjidhje diellore p\u00ebr \u00e7do nevoj\u00eb<\/h2>\n    <\/div>\n\n    <div class=\"rs-services-clean-grid\">\n\n      <article class=\"rs-services-clean-card\">\n        <div class=\"rs-services-clean-icon\">\n          <svg viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n            <path d=\"M10 30L32 12L54 30\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <path d=\"M18 27V52H46V27\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <path d=\"M28 52V38H36V52\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/div>\n\n        <div class=\"rs-services-clean-content\">\n          <h3>P\u00ebr sht\u00ebpi<\/h3>\n          <p>\n            Sisteme fotovoltaike p\u00ebr sht\u00ebpin\u00eb tuaj, t\u00eb p\u00ebrmasuara sipas konsumit,\n            sip\u00ebrfaqes s\u00eb \u00e7atis\u00eb dhe kushteve t\u00eb instalimit.\n          <\/p>\n          <a href=\"\/sherbimet\/#rs-s-individuale\" class=\"rs-services-clean-link\">\n            Panele diellore p\u00ebr sht\u00ebpi <span>\u2192<\/span>\n          <\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"rs-services-clean-card\">\n        <div class=\"rs-services-clean-icon\">\n          <svg viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n            <path d=\"M14 52V18L32 12V52\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <path d=\"M32 52V24L50 28V52\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <path d=\"M22 22V24\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n            <path d=\"M22 30V32\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n            <path d=\"M22 38V40\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n            <path d=\"M40 34V36\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n            <path d=\"M40 42V44\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n            <path d=\"M10 52H54\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n          <\/svg>\n        <\/div>\n\n        <div class=\"rs-services-clean-content\">\n          <h3>P\u00ebr biznese<\/h3>\n          <p>\n            Zgjidhje t\u00eb personalizuara p\u00ebr biznesin tuaj. Ulni kostot operative\n            dhe rrisni q\u00ebndrueshm\u00ebrin\u00eb.\n          <\/p>\n          <a href=\"\/sherbimet\/#rs-s-industriale\" class=\"rs-services-clean-link\">\n            Sisteme fotovoltaike p\u00ebr biznese <span>\u2192<\/span>\n          <\/a>\n        <\/div>\n      <\/article>\n\n      <article class=\"rs-services-clean-card\">\n        <div class=\"rs-services-clean-icon\">\n          <svg viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n            <path d=\"M16 52V26L26 20V52\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <path d=\"M26 52V32L38 26V52\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <path d=\"M38 52V38L50 32V52\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <path d=\"M22 20V12\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n            <path d=\"M18 16H26\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n            <path d=\"M12 52H54\" stroke=\"#111111\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n          <\/svg>\n        <\/div>\n\n        <div class=\"rs-services-clean-content\">\n          <h3>P\u00ebr industri dhe investitor\u00eb<\/h3>\n          <p>\n            Impiante me kapacitete t\u00eb m\u00ebdha p\u00ebr industri dhe investitor\u00eb.\n            Projektim, analiz\u00eb performance dhe mb\u00ebshtetje teknike.\n          <\/p>\n          <a href=\"\/sherbimet\/#rs-s-impiante\" class=\"rs-services-clean-link\">\n            Projekte fotovoltaike p\u00ebr industri <span>\u2192<\/span>\n          <\/a>\n        <\/div>\n      <\/article>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n<section class=\"rs-projects-section\">\n  <div class=\"rs-projects-inner\">\n\n    <div class=\"rs-projects-head\">\n      <span class=\"rs-projects-eyebrow\">PROJEKTET TONA<\/span>\n      <h2>Disa nga projektet tona t\u00eb realizuara<\/h2>\n    <\/div>\n\n    <div class=\"rs-projects-grid\">\n\n      <!-- Project 1 -->\n      <a class=\"rs-project-card\" href=\"https:\/\/realsolar.al\/prodhues-energjie-11400kwp-installed\/\">\n        <div class=\"rs-project-card-image\">\n          <img decoding=\"async\" src=\"https:\/\/realsolar.al\/wp-content\/uploads\/2025\/03\/IMG-20250306-WA0153.jpg\" alt=\"Impiant fotovoltaik n\u00eb Ballsh\">\n        <\/div>\n        <div class=\"rs-project-card-overlay\"><\/div>\n        <div class=\"rs-project-card-content\">\n          <h3>Prodhues Energjie \u2013 Ballsh<\/h3>\n          <p>Impiant fotovoltaik me kapacitet t\u00eb instaluar 11.4 MWp.<\/p>\n          <span class=\"rs-project-card-link\">Shiko projektin \u2192<\/span>\n        <\/div>\n      <\/a>\n\n      <!-- Project 2 -->\n      <a class=\"rs-project-card\" href=\"https:\/\/realsolar.al\/autoprodhim-fabrike-riciklimi1300kwp\/\">\n        <div class=\"rs-project-card-image\">\n          <img decoding=\"async\" src=\"https:\/\/realsolar.al\/wp-content\/uploads\/2025\/03\/IMG-20250306-WA0169.jpg\" alt=\"Impiant fotovoltaik p\u00ebr p\u00ebrpunim alumini n\u00eb Tiran\u00eb\">\n        <\/div>\n        <div class=\"rs-project-card-overlay\"><\/div>\n        <div class=\"rs-project-card-content\">\n          <h3>P\u00ebrpunim Alumini \u2013 Tiran\u00eb<\/h3>\n          <p>Sistem fotovoltaik industrial me kapacitet t\u00eb instaluar 1,300 kWp.<\/p>\n          <span class=\"rs-project-card-link\">Shiko projektin \u2192<\/span>\n        <\/div>\n      <\/a>\n\n      <!-- Project 3 -->\n      <a class=\"rs-project-card\" href=\"https:\/\/realsolar.al\/ferme_pularie_100kwp\/\">\n        <div class=\"rs-project-card-image\">\n          <img decoding=\"async\" src=\"https:\/\/realsolar.al\/wp-content\/uploads\/2025\/03\/IMG-20250306-WA0098.jpg\" alt=\"Impiant fotovoltaik p\u00ebr ferm\u00eb pularie n\u00eb Shkod\u00ebr\">\n        <\/div>\n        <div class=\"rs-project-card-overlay\"><\/div>\n        <div class=\"rs-project-card-content\">\n          <h3>Ferm\u00eb Pularie \u2013 Shkod\u00ebr<\/h3>\n          <p>Sistem fotovoltaik me kapacitet t\u00eb instaluar 100 kWp.<\/p>\n          <span class=\"rs-project-card-link\">Shiko projektin \u2192<\/span>\n        <\/div>\n      <\/a>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n<section class=\"rs-impact-new\">\n  <div class=\"rs-impact-inner\">\n\n    <div class=\"rs-impact-item\">\n      <span class=\"rs-impact-number\">100%<\/span>\n      <span class=\"rs-impact-label\">REDUKTIM I KOSTOS (DERI N\u00cb)<\/span>\n    <\/div>\n\n    <div class=\"rs-impact-item\">\n      <span class=\"rs-impact-number\">+24%<\/span>\n      <span class=\"rs-impact-label\">EFI\u00c7ENS\u00cb<\/span>\n    <\/div>\n\n    <div class=\"rs-impact-item\">\n      <span class=\"rs-impact-number\">20-55%<\/span>\n      <span class=\"rs-impact-label\">KTHIMI I INVESTIMIT (ROI)<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<style id=\"rs-pagespeed-accessibility-fix\">\n.header-main-inner .nav-ul li.current-menu-item > a,\n.header-main-inner .nav-ul a[aria-current=\"page\"] {\n  color: #ff5961 !important;\n}\n.pv-calc-wrap {\n  min-height: 620px;\n}\n<\/style>\n\n\n\n\n<style id=\"rs-home-calculator-ui\">\n\/* Homepage presentation only: no shared calculator\/plugin rules. *\/\n#pv-stack{--rs-ui-red:#e51f28;--rs-ui-ink:#101218;--rs-ui-muted:#687386;--rs-ui-border:#e9ecf1;background:linear-gradient(180deg,#fafbfc,#fff);padding:72px 24px 56px!important;}\n#pv-stack,#pv-stack *{box-sizing:border-box;}\n#pv-stack .rs-calc-full-section{max-width:1280px!important;width:100%!important;margin:0 auto!important;padding:0!important;}\n#pv-stack .rs-calc-full-head{margin:0 0 36px!important;text-align:left!important;}\nbody.page-id-2080 #pv-stack.rs-full-calculator .rs-calc-full-head .rs-calc-full-eyebrow{display:block!important;text-align:left!important;color:var(--rs-ui-red)!important;font-size:12px!important;font-weight:800!important;letter-spacing:.12em!important;margin-bottom:16px!important;}\n#pv-stack .rs-calc-full-row{display:grid!important;grid-template-columns:1.2fr 1fr!important;gap:64px!important;align-items:center!important;}\n#pv-stack .rs-calc-full-left,#pv-stack .rs-calc-full-right{width:auto!important;max-width:none!important;}\n#pv-stack .rs-calc-full-left h2{font-size:clamp(30px,3.6vw,46px)!important;line-height:1.12!important;letter-spacing:-.045em!important;color:var(--rs-ui-ink)!important;margin:0!important;}\n#pv-stack .rs-calc-full-right p{font-size:16px!important;line-height:1.8!important;color:var(--rs-ui-muted)!important;margin:0!important;}\n#pv-stack #kalkulatori,#pv-stack .pv-calc-wrap,#pv-stack #pvw-root{height:auto!important;min-height:0!important;max-height:none!important;width:100%!important;max-width:none!important;padding:0!important;overflow:visible!important;}\n#pv-stack #kalkulatori{scroll-margin-top:110px;}\n#pv-stack #pvw-root{--pvw-accent:#e51f28;--pvw-accent-2:#f23840;--pvw-ink:#101218;--pvw-muted:#687386;--pvw-line:#e9ecf1;}\n#pv-stack #pvw-root>.pvw-container{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;display:grid!important;grid-template-columns:290px minmax(0,1fr)!important;grid-template-rows:max-content max-content minmax(0,1fr)!important;column-gap:0!important;padding:0!important;border:1px solid var(--rs-ui-border)!important;border-radius:28px!important;background:#fff!important;box-shadow:0 18px 60px rgba(20,30,50,.07)!important;backdrop-filter:none!important;}\n#pv-stack #pvw-root>.pvw-container::before{display:none!important;}\n#pv-stack .rs-ui-sidebar{grid-column:1;grid-row:1\/4;padding:28px 20px;min-width:0;border-right:1px solid var(--rs-ui-border);background:linear-gradient(180deg,#fff,#fafbfc);border-radius:28px 0 0 28px;}\n#pv-stack .pvw-stepbar{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:6px!important;margin:0!important;}\n#pv-stack .pvw-stepline{display:none!important;}\n#pv-stack .pvw-stepdot{display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;gap:14px!important;align-items:center!important;width:100%!important;height:auto!important;min-height:90px!important;padding:16px 10px!important;border:0!important;border-radius:16px!important;background:transparent!important;color:var(--rs-ui-ink)!important;box-shadow:none!important;transform:none!important;text-align:left!important;}\n#pv-stack .rs-ui-step-number{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid #e2e6ec;background:#f5f6f8;font-size:17px;font-weight:800;color:#111;}\n#pv-stack .rs-ui-step-copy{display:block;min-width:0;}\n#pv-stack .rs-ui-step-copy strong{display:block;font-size:14px;font-weight:800;line-height:1.4;color:var(--rs-ui-ink);}\n#pv-stack .rs-ui-step-copy small{display:block;font-size:12px;font-weight:400;line-height:1.5;color:var(--rs-ui-muted);margin-top:4px;}\n#pv-stack .pvw-stepdot.is-active{background:#fff1f2!important;}\n#pv-stack .pvw-stepdot.is-active .rs-ui-step-number{color:#fff;background:var(--rs-ui-red);border-color:var(--rs-ui-red);box-shadow:0 8px 20px rgba(229,31,40,.18);}\n#pv-stack .pvw-stepdot.is-done .rs-ui-step-number{color:var(--rs-ui-red);background:#fff1f2;border-color:#f8d6d8;}\n#pv-stack .pvw-stepdot.is-done .rs-ui-step-copy strong::after{content:' \u2713';color:var(--rs-ui-red);}\n#pv-stack .rs-ui-side-note{margin-top:18px;padding:14px;border-radius:18px;background:#fff;border:1px solid var(--rs-ui-border);overflow:hidden;}\n#pv-stack .rs-ui-side-note img{width:100%;height:80px;object-fit:cover;border-radius:10px;display:block;margin:0 0 10px;}\n#pv-stack .rs-ui-side-note strong{display:block;font-size:16px;line-height:1.35;letter-spacing:-.025em;color:var(--rs-ui-ink);}\n#pv-stack .rs-ui-side-note p{font-size:12px;line-height:1.55;color:var(--rs-ui-muted);margin:8px 0 0;}\n#pv-stack #pvw-root>.pvw-container>.pvw-step{grid-column:2;grid-row:1;min-width:0;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;padding:36px 36px 18px!important;margin:0!important;}\n#pv-stack .rs-ui-step-kicker{display:block;color:var(--rs-ui-red);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;}\n#pv-stack .pvw-h3{font-size:clamp(25px,2.5vw,32px)!important;line-height:1.2!important;letter-spacing:-.035em!important;margin:0 0 24px!important;color:var(--rs-ui-ink)!important;}\n#pv-stack .pvw-val{color:var(--rs-ui-red)!important;}\n#pv-stack .pvw-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important;align-items:end!important;}\n#pv-stack .pvw-row>label,#pv-stack .pvw-field,#pv-stack .pvw-selectbox{min-width:0!important;width:100%!important;}\n#pv-stack .pvw-row label{font-size:12px!important;color:#475165!important;line-height:1.5!important;}\n#pv-stack .pvw-input,#pv-stack .pvw-select{margin-top:7px!important;min-height:52px!important;font-size:14px!important;padding:13px 14px!important;box-shadow:none!important;border-radius:12px!important;}\n#pv-stack .pvw-select{padding-right:32px!important;}\n#pv-stack .pvw-muted{font-size:12px!important;line-height:1.7!important;color:var(--rs-ui-muted)!important;}\n#pv-stack .pvw-cards{grid-template-columns:repeat(6,minmax(0,1fr))!important;grid-auto-rows:1fr;gap:14px!important;}\n#pv-stack .pvw-card{grid-column:span 2;display:flex!important;align-items:center!important;gap:12px!important;text-align:left!important;min-height:86px!important;border-radius:14px!important;padding:16px!important;font-size:14px!important;box-shadow:none!important;}\n#pv-stack .pvw-card:nth-child(4){grid-column:2\/span 2;}\n#pv-stack .pvw-card:nth-child(5){grid-column:4\/span 2;}\n#pv-stack .rs-ui-install-icon{display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;background:#f5f6f8;border-radius:10px;color:var(--rs-ui-red);}\n#pv-stack .rs-ui-install-icon svg{display:block;width:22px;height:22px;}\n#pv-stack .pvw-card.pvw-selected{background:#fff4f4!important;border-color:var(--rs-ui-red)!important;box-shadow:0 0 0 2px #fff1f2!important;}\n#pv-stack #pvw-step3>.pvw-row{grid-template-columns:minmax(0,1fr) auto!important;background:#f8f9fb;padding:16px!important;border:1px solid var(--rs-ui-border);border-radius:16px;margin:0 0 18px!important;}\n#pv-stack #pvw-step3 .pvw-inline{margin:0!important;}\n#pv-stack #pvw-find{margin-bottom:0!important;}\n#pv-stack #pvw-map{height:360px!important;min-height:360px!important;max-height:360px!important;width:100%!important;border:1px solid var(--rs-ui-border)!important;border-radius:18px!important;box-shadow:none!important;}\n#pv-stack #pvw-map .leaflet-control a{border-radius:0!important;}\n#pv-stack #pvw-root>.pvw-container>.pvw-nav{grid-column:2;grid-row:2;position:static!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:16px!important;margin:8px 36px 0!important;padding:20px 0 0!important;background:transparent!important;border-top:1px solid var(--rs-ui-border)!important;backdrop-filter:none!important;}\n#pv-stack .pvw-btn{min-height:50px!important;border-radius:12px!important;padding:0 24px!important;background:var(--rs-ui-red)!important;font-size:13px!important;box-shadow:none!important;}\n#pv-stack .pvw-btn:hover{background:#c91720!important;box-shadow:0 8px 20px rgba(229,31,40,.13)!important;}\n#pv-stack #pvw-back{background:#f8f9fb!important;color:#475165!important;border:1px solid var(--rs-ui-border)!important;}\n#pv-stack #pvw-back.is-hidden{visibility:hidden!important;}\n#pv-stack #pvw-root>.pvw-container>.pvw-muted{grid-column:2;grid-row:3;align-self:start;margin:12px 36px 26px!important;}\n#pv-stack .pvw-sum{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;}\n#pv-stack .pvw-sum .pvw-panel{min-width:0!important;padding:22px 14px!important;border-radius:16px!important;border:1px solid var(--rs-ui-border)!important;box-shadow:none!important;background:#fafbfc!important;}\n#pv-stack .pvw-sum .pvw-muted{font-size:10px!important;line-height:1.6!important;letter-spacing:.025em!important;}\n#pv-stack .pvw-sum .pvw-val{font-size:clamp(22px,2.3vw,32px)!important;white-space:normal!important;line-height:1.25!important;margin:8px 0 0!important;letter-spacing:-.035em!important;}\n#pv-stack #pvw-step4>.pvw-row{margin:24px 0!important;padding:20px;background:#fff;border:1px solid var(--rs-ui-border);border-radius:16px;}\n#pv-stack .rs-ui-results-info{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;margin:16px 0;padding:12px 14px;border:1px solid var(--rs-ui-border);border-radius:12px;background:#f8f9fb;color:var(--rs-ui-muted);}\n#pv-stack .rs-ui-results-info>svg{display:block;color:var(--rs-ui-red);margin-top:1px;}\n#pv-stack .rs-ui-results-info strong{display:block;font-size:13px;line-height:1.5;color:#475165;}\n#pv-stack .rs-ui-results-info p{margin:5px 0 0;font-size:12px;line-height:1.6;color:var(--rs-ui-muted);}\n#pv-stack .rs-ui-details{margin-top:20px;border:1px solid var(--rs-ui-border);border-radius:12px;background:#fafbfc;}\n#pv-stack .rs-ui-details summary{cursor:pointer;padding:14px 18px;font-size:12px;font-weight:700;color:#475165;}\n#pv-stack .pvw-pre{margin:0!important;padding:18px!important;border-radius:0 0 12px 12px!important;overflow-wrap:anywhere;white-space:pre-wrap!important;font-size:11px!important;line-height:1.8!important;}\n#pv-stack .rs-calculator-quote{margin:28px 0 0!important;padding:24px!important;text-align:left!important;border:1px solid #f6d9db;border-radius:18px;background:#fff5f5;display:flex;align-items:center;justify-content:space-between;gap:24px;}\n#pv-stack .rs-ui-quote-copy{flex:1;}\n#pv-stack .rs-ui-quote-copy strong{display:block;font-size:18px;color:var(--rs-ui-ink);letter-spacing:-.025em;}\n#pv-stack .rs-ui-quote-copy p{font-size:13px;color:var(--rs-ui-muted);line-height:1.6;margin:5px 0 0;}\n#pv-stack .rs-calculator-quote a{border-radius:12px!important;min-height:50px;white-space:nowrap;gap:16px;}\n#pv-stack .rs-calculator-quote a::after{content:'\u2192';font-size:20px;}\n@media(max-width:1050px){#pv-stack .pvw-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important;}#pv-stack .pvw-card:nth-child(4){grid-column:auto\/span 2;}#pv-stack .pvw-card:nth-child(5){grid-column:2\/span 2;}#pv-stack #pvw-root>.pvw-container{grid-template-columns:240px minmax(0,1fr)!important;}#pv-stack .rs-ui-sidebar{padding:20px 12px;}#pv-stack #pvw-root>.pvw-container>.pvw-step{padding:28px 24px 16px!important;}#pv-stack #pvw-root>.pvw-container>.pvw-nav{margin-left:24px!important;margin-right:24px!important;}#pv-stack #pvw-root>.pvw-container>.pvw-muted{margin-left:24px!important;margin-right:24px!important;}#pv-stack .pvw-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}#pv-stack .rs-calc-full-row{gap:32px!important;}}\n@media(max-width:780px){#pv-stack{padding:48px 18px 36px!important;}#pv-stack .rs-calc-full-row{grid-template-columns:1fr!important;gap:16px!important;}#pv-stack .rs-calc-full-head{margin-bottom:26px!important;}#pv-stack .rs-calc-full-right p{font-size:14px!important;line-height:1.7!important;}#pv-stack #pvw-root>.pvw-container{display:block!important;border-radius:20px!important;}#pv-stack .rs-ui-sidebar{padding:16px 12px;border-right:0;border-bottom:1px solid var(--rs-ui-border);border-radius:20px 20px 0 0;}#pv-stack .pvw-stepbar{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;}#pv-stack .pvw-stepdot{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:8px!important;min-height:100px!important;padding:10px 3px!important;text-align:center!important;border-radius:10px!important;}#pv-stack .rs-ui-step-number{width:32px;height:32px;font-size:14px;}#pv-stack .rs-ui-step-copy strong{font-size:10px;line-height:1.4;}#pv-stack .rs-ui-step-copy small,#pv-stack .rs-ui-side-note{display:none!important;}#pv-stack #pvw-root>.pvw-container>.pvw-step{padding:24px 18px 12px!important;}#pv-stack .pvw-h3{font-size:25px!important;margin-bottom:20px!important;}#pv-stack .pvw-row{grid-template-columns:1fr!important;gap:14px!important;}#pv-stack .pvw-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;}#pv-stack .pvw-card,#pv-stack .pvw-card:nth-child(4),#pv-stack .pvw-card:nth-child(5){grid-column:auto;}#pv-stack .pvw-card{min-height:72px!important;padding:16px!important;}#pv-stack #pvw-step3>.pvw-row{grid-template-columns:minmax(0,1fr)!important;padding:12px!important;gap:12px!important;}#pv-stack #pvw-find{width:100%;}#pv-stack #pvw-map{height:300px!important;min-height:300px!important;max-height:300px!important;}#pv-stack .pvw-sum{grid-template-columns:1fr!important;gap:10px!important;}#pv-stack .pvw-sum .pvw-panel{text-align:left!important;padding:18px!important;}#pv-stack .pvw-sum .pvw-val{font-size:30px!important;}#pv-stack #pvw-step4>.pvw-row{padding:16px!important;}#pv-stack #pvw-root>.pvw-container>.pvw-nav{margin:4px 18px 0!important;padding-top:16px!important;}#pv-stack .pvw-nav>div{flex:1;min-width:0;}#pv-stack .pvw-nav>button{flex:1;max-width:42%;}#pv-stack .pvw-nav>div>button{width:100%!important;padding:0 12px!important;font-size:12px!important;}#pv-stack #pvw-root>.pvw-container>.pvw-muted{margin:12px 18px 22px!important;font-size:11px!important;}#pv-stack .rs-calculator-quote{flex-direction:column;align-items:stretch;text-align:center!important;gap:18px;padding:22px 18px!important;}#pv-stack .rs-calculator-quote a{white-space:normal;width:100%;}}\n@media(max-width:500px){#pv-stack .pvw-cards{grid-template-columns:1fr!important;}}\n@media(prefers-reduced-motion:reduce){#pv-stack *{scroll-behavior:auto!important;}}\n<\/style>\n<script id=\"rs-home-calculator-presentation\">\n(function(){\n  \/* Presentation adapter only; the calculator's inputs, events and logic stay intact. *\/\n  if(window.self!==window.top) return;\n  function decorate(){\n    var section=document.getElementById('pv-stack');\n    var root=section&&section.querySelector('#pvw-root');\n    if(!root || root.dataset.rsHomeUi) return;\n    var container=root.querySelector('.pvw-container'),bar=root.querySelector('#pvw-stepbar');\n    if(!container || !bar) return;\n    root.dataset.rsHomeUi='1';\n    var english=\/^en(?:-|$)\/i.test(document.documentElement.lang);\n    var titles=english?['Annual consumption','Installation method','Your location','Your results']:['Konsumi vjetor','Metoda e instalimit','Vendndodhja juaj','Rezultatet tuaja'];\n    var descriptions=english?['Energy use and customer type','Choose how panels are mounted','Find the property on the map','Production, savings and payback']:['Energjia dhe lloji i klientit','Zgjidhni m\u00ebnyr\u00ebn e montimit','Gjeni objektin tuaj n\u00eb hart\u00eb','Prodhimi, kursimi dhe kthimi'];\n    var sidebar=document.createElement('aside');sidebar.className='rs-ui-sidebar';sidebar.setAttribute('aria-label',english?'Calculator progress':'Ecuria e kalkulatorit');\n    container.insertBefore(sidebar,bar);sidebar.appendChild(bar);bar.setAttribute('role','list');\n    var dots=Array.from(bar.querySelectorAll('.pvw-stepdot'));\n    dots.forEach(function(dot,i){\n      var number=document.createElement('span');number.className='rs-ui-step-number';number.textContent=dot.dataset.step;\n      var copy=document.createElement('span');copy.className='rs-ui-step-copy';\n      var title=document.createElement('strong');title.textContent=titles[i];\n      var description=document.createElement('small');description.textContent=descriptions[i];\n      copy.append(title,description);dot.textContent='';dot.append(number,copy);dot.setAttribute('role','listitem');\n    });\n    var note=document.createElement('div');note.className='rs-ui-side-note';\n    var photo=document.createElement('img');photo.src='https:\/\/realsolar.al\/wp-content\/uploads\/2025\/03\/IMG-20250306-WA0153.jpg';photo.alt='';photo.loading='lazy';photo.width=240;photo.height=115;\n    var noteTitle=document.createElement('strong');noteTitle.textContent=english?'From estimate to your project':'Nga vler\u00ebsimi te projekti juaj';\n    var noteText=document.createElement('p');noteText.textContent=english?'Use your consumption and property location for an initial estimate. A personalised quote defines the final solution.':'P\u00ebrdorni konsumin dhe vendndodhjen e objektit p\u00ebr nj\u00eb vler\u00ebsim paraprak. Oferta e personalizuar p\u00ebrcakton zgjidhjen p\u00ebrfundimtare.';\n    note.append(photo,noteTitle,noteText);sidebar.appendChild(note);\n    root.querySelectorAll('.pvw-step').forEach(function(panel,i){var kicker=document.createElement('span');kicker.className='rs-ui-step-kicker';kicker.textContent=english?'STEP '+(i+1)+' OF 4':'HAPI '+(i+1)+' NGA 4';panel.insertBefore(kicker,panel.firstChild);});\n    \/* Decorative SVGs keep the original card nodes, labels and delegated click handlers. *\/\n    var installPaths={\n      sloped:['M3 11 12 3l9 8','M5 10v10h14V10','m8 8 4-3 4 3'],\n      flat:['M3 8h18','M5 8v12h14V8','M7 5h10v3','M9 5v3M13 5v3'],\n      roofing:['M3 11 12 3l9 8','M5 10v10h14V10','m8 10 4-3 4 3-4 3-4-3','M12 7v6'],\n      ground:['M4 14 7 5h13l-3 9H4Z','M6 8h13M5 11h13','m11 5-3 9M16 5l-3 9','M7 14v6M17 14v6M3 20h18'],\n      facade:['M5 21V3h14v18','M3 21h18','M8 7h8v10H8Z','M12 7v10M8 12h8']\n    };\n    root.querySelectorAll('#pvw-installs .pvw-card').forEach(function(card){\n      var paths=installPaths[card.dataset.install];if(!paths)return;\n      var icon=document.createElement('span');icon.className='rs-ui-install-icon';icon.setAttribute('aria-hidden','true');\n      var svg=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','svg');\n      svg.setAttribute('viewBox','0 0 24 24');svg.setAttribute('width','22');svg.setAttribute('height','22');svg.setAttribute('fill','none');svg.setAttribute('stroke','currentColor');svg.setAttribute('stroke-width','1.75');svg.setAttribute('stroke-linecap','round');svg.setAttribute('stroke-linejoin','round');svg.setAttribute('focusable','false');\n      paths.forEach(function(d){var path=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','path');path.setAttribute('d',d);svg.appendChild(path);});\n      icon.appendChild(svg);card.insertBefore(icon,card.firstChild);\n    });\n    function reflect(){dots.forEach(function(dot){if(dot.classList.contains('is-active')) dot.setAttribute('aria-current','step');else dot.removeAttribute('aria-current');});}\n    reflect();new MutationObserver(reflect).observe(bar,{subtree:true,attributes:true,attributeFilter:['class']});\n    var debug=root.querySelector('#pvw-debug');\n    if(debug){\n      var details=document.createElement('details');details.className='rs-ui-details';details.open=false;\n      var summary=document.createElement('summary');summary.textContent=english?'Calculation details and assumptions':'Detajet e llogaritjes dhe supozimet';\n      debug.parentNode.insertBefore(details,debug);details.append(summary,debug);\n      function revealCalculationError(){\n        \/* Successful calculations briefly show \u2014; only the plugin's actual errors open details. *\/\n        var error=\/^(?:Gabim n\u00eb k\u00ebrkes\u00ebn PVGIS:|PVGIS request error:|Vendos kapacitet, kosto dhe mb\u00ebshtetje t\u00eb vlefshme\\.|Enter valid capacity, cost and subsidy values\\.)\/.test(debug.textContent.trim());\n        if(error){details.open=true;debug.setAttribute('role','alert');}\n        else debug.removeAttribute('role');\n        \/* Leave the native open state alone on success, including manual choices. *\/\n      }\n      revealCalculationError();new MutationObserver(revealCalculationError).observe(debug,{childList:true,subtree:true,characterData:true});\n    }\n    var explanation=root.querySelector('#pvw-step4 > p.pvw-muted');\n    if(explanation){\n      var info=document.createElement('div');info.className='rs-ui-results-info';\n      var svg=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','svg');\n      svg.setAttribute('viewBox','0 0 24 24');svg.setAttribute('width','20');svg.setAttribute('height','20');svg.setAttribute('fill','none');svg.setAttribute('stroke','currentColor');svg.setAttribute('stroke-width','1.75');svg.setAttribute('stroke-linecap','round');svg.setAttribute('aria-hidden','true');svg.setAttribute('focusable','false');\n      var circle=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','circle');circle.setAttribute('cx','12');circle.setAttribute('cy','12');circle.setAttribute('r','9');\n      var line=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','path');line.setAttribute('d','M12 11v6');\n      var dot=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','circle');dot.setAttribute('cx','12');dot.setAttribute('cy','7');dot.setAttribute('r','.75');dot.setAttribute('fill','currentColor');dot.setAttribute('stroke','none');svg.append(circle,line,dot);\n      var copy=document.createElement('div'),title=document.createElement('strong'),units=document.createElement('p'),payback=document.createElement('p');\n      title.textContent=english?'How to read your results':'Si lexohen rezultatet?';\n      units.textContent=english?'kWp = system capacity \u00b7 kWh = energy produced or consumed \u00b7 kW = power at a given moment.':'kWp = kapaciteti i sistemit \u00b7 kWh = energjia e prodhuar ose konsumuar \u00b7 kW = fuqia n\u00eb nj\u00eb moment.';\n      payback.textContent=english?'Payback is an indicative estimate: net cost \u00f7 annual savings, not total profit over the system\u2019s lifetime.':'Kthimi i investimit \u00ebsht\u00eb nj\u00eb vler\u00ebsim orientues: kostoja neto \u00f7 kursimi vjetor, jo fitimi total gjat\u00eb jet\u00ebs s\u00eb sistemit.';\n      copy.append(title,units,payback);info.append(svg,copy);explanation.replaceWith(info);\n    }\n    var back=root.querySelector('#pvw-back'),next=root.querySelector('#pvw-next');\n    if(back)back.textContent=english?'\u2190 Back':'\u2190 Kthehu prapa';\n    if(next)next.textContent=english?'Continue \u2192':'Vazhdo \u2192';\n    var quote=section.querySelector('.rs-calculator-quote');\n    if(quote){var copy=document.createElement('div');copy.className='rs-ui-quote-copy';var heading=document.createElement('strong');heading.textContent=english?'Ready for the next step?':'Gati p\u00ebr hapin tjet\u00ebr?';var p=document.createElement('p');p.textContent=english?'Request a personalised quote for your property.':'K\u00ebrkoni nj\u00eb ofert\u00eb t\u00eb personalizuar p\u00ebr objektin tuaj.';copy.append(heading,p);quote.insertBefore(copy,quote.firstChild);}\n  }\n  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',decorate,{once:true});else decorate();\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>REAL SOLAR | NATURAL ENERGY Panele diellore p\u00ebr sht\u00ebpi dhe biznese n\u00eb Shqip\u00ebri Llogaritni fuqin\u00eb e sistemit, kursimin vjetor dhe kthimin e investimit me Real Solar. Llogarit kursimet K\u00ebrko ofert\u00eb falas Kalkulator kursimesh Konsumi vjetor (kWh) Lloji i klientit FamiljarBiznes i vog\u00ebl\/mesatarBiznes i madh Fuqia e rekomanduar (kWp) 4.4 Prodhimi vjetor (kWh) 6,233 Kursimi vjetor&hellip;&nbsp;<a href=\"https:\/\/realsolar.al\/en\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Home<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/template-pagebuilder-full-width.php","meta":{"_uag_custom_page_level_css":"","neve_meta_sidebar":"full-width","neve_meta_container":"","neve_meta_enable_content_width":"on","neve_meta_content_width":100,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-2080","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"neve-blog":false},"uagb_author_info":{"display_name":"solar","author_link":"https:\/\/realsolar.al\/en\/author\/solar\/"},"uagb_comment_info":0,"uagb_excerpt":"REAL SOLAR | NATURAL ENERGY Panele diellore p\u00ebr sht\u00ebpi dhe biznese n\u00eb Shqip\u00ebri Llogaritni fuqin\u00eb e sistemit, kursimin vjetor dhe kthimin e investimit me Real Solar. Llogarit kursimet K\u00ebrko ofert\u00eb falas Kalkulator kursimesh Konsumi vjetor (kWh) Lloji i klientit FamiljarBiznes i vog\u00ebl\/mesatarBiznes i madh Fuqia e rekomanduar (kWp) 4.4 Prodhimi vjetor (kWh) 6,233 Kursimi vjetor&hellip;&nbsp;Read&hellip;","_links":{"self":[{"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/pages\/2080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/comments?post=2080"}],"version-history":[{"count":85,"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/pages\/2080\/revisions"}],"predecessor-version":[{"id":2516,"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/pages\/2080\/revisions\/2516"}],"wp:attachment":[{"href":"https:\/\/realsolar.al\/en\/wp-json\/wp\/v2\/media?parent=2080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}