{"id":2434,"date":"2025-07-08T00:36:47","date_gmt":"2025-07-08T00:36:47","guid":{"rendered":"http:\/\/wbcirculareconomy.com\/?page_id=2434"},"modified":"2025-08-19T07:36:55","modified_gmt":"2025-08-19T07:36:55","slug":"good-practices","status":"publish","type":"page","link":"https:\/\/wbcirculareconomy.com\/bs\/good-practices\/","title":{"rendered":"Dobre prakse"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_4 1_4 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:25%;--awb-margin-top-large:0px;--awb-spacing-right-large:7.68%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:7.68%;--awb-width-medium:25%;--awb-order-medium:0;--awb-spacing-right-medium:7.68%;--awb-spacing-left-medium:7.68%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"facet-block\">\n  <label class=\"facet-label\">Industrija<\/label>\n  <div class=\"facetwp-facet facetwp-facet-indiustries facetwp-type-checkboxes\" data-name=\"indiustries\" data-type=\"checkboxes\"><\/div>\n<\/div>\n\n<div class=\"facet-block\">\n  <label class=\"facet-label\">Zemlja\/regija<\/label>\n  <div class=\"facetwp-facet facetwp-facet-countries facetwp-type-checkboxes\" data-name=\"countries\" data-type=\"checkboxes\"><\/div>\n<\/div>\n\n<style>\n.facet-label {\n  display: block;\n  font-size: 14px;\n  font-weight: 600;\n  margin-bottom: 8px;\n  color: #2c3e50;\n}\n<\/style><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_3_4 3_4 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:75%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.56%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.56%;--awb-width-medium:75%;--awb-order-medium:0;--awb-spacing-right-medium:2.56%;--awb-spacing-left-medium:2.56%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\">\n\n<div class=\"facetwp-container\">\n\n  <div class=\"facetwp-header\">\n    <div class=\"pager-count\"><div class=\"facetwp-facet facetwp-facet-pager_count facetwp-type-pager\" data-name=\"pager_count\" data-type=\"pager\"><\/div><\/div>\n    <div class=\"sort-by\"><div class=\"facetwp-facet facetwp-facet-sort_by facetwp-type-sort\" data-name=\"sort_by\" data-type=\"sort\"><\/div><\/div>\n  <\/div>\n\n  <div class=\"facetwp-results\">\n    <div class=\"facetwp-template\" data-name=\"document_preview\">  <div class=\"cards-wrapper\">\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/09\/8.-O-krug.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">Okrug<\/h3>\n        <p class=\"card-description\">\n          Eteri\u010dna ulja, prirodni osvje\u017eiva\u010di zraka i svije\u0107e od kore narand\u017ee [...]        <\/p>\n      <\/div>\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/08\/6.-CPRM-Best-practice-1.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">Razvoj upravljanja organskim otpadom u proizvodnji gro\u017e\u0111a i vina u regiji Tikve\u0161<\/h3>\n        <p class=\"card-description\">\n          Briketi, kompost, organsko gnojivo, ulje i bra\u0161no iz vinske industrije [...]        <\/p>\n      <\/div>\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/08\/3.-Best-practice-3D-soba.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">3D Soba<\/h3>\n        <p class=\"card-description\">\n          Vrtni namje\u0161taj otporan na vremenske uvjete izra\u0111en 3D printanjem od reciklirane plastike        <\/p>\n      <\/div>\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/08\/2.-Best-practice-Mama-organa.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">Mama Organa BIO<\/h3>\n        <p class=\"card-description\">\n          Organska gnojiva i inovativni supstrati bez zemlje od lokalnog otpada od hrane        <\/p>\n      <\/div>\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/08\/5.-Meditera-Best-practice-1-1.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">Meditera<\/h3>\n        <p class=\"card-description\">\n          CNC rezane mikro ku\u0107e napravljene od do 98 % obnovljivih ili recikliranih [...]        <\/p>\n      <\/div>\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/08\/Best-practice-APA-Dekor-Cigla-1.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">APA Dekor Cigla<\/h3>\n        <p class=\"card-description\">\n          Dekorativne plo\u010dice i fasadne listele za vanjsku i unutarnju upotrebu od [...]        <\/p>\n      <\/div>\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/08\/4.-AZ-group-Best-practice-1.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">AZ Grupa<\/h3>\n        <p class=\"card-description\">\n          Grupa od \u010detiri kompanije izgra\u0111ene na principima cirkularne ekonomije, [...]        <\/p>\n      <\/div>\n\n                \n      <div \n        class=\"business-card clickable-card\" \n        role=\"button\" tabindex=\"0\"\n        data-pdf-url=\"https:\/\/wbcirculareconomy.com\/wp-content\/uploads\/2025\/08\/7.-Doll-app-Best-practice.pdf\"\n        data-avada-offcanvas-open=\"pdf-preview-offcanvas\"\n      >\n\n        <h3 class=\"card-title\">Aplikacija za lutke<\/h3>\n        <p class=\"card-description\">\n          Digitalno tr\u017ei\u0161te za prodaju i kupovinu polovne odje\u0107e        <\/p>\n      <\/div>\n\n    \n  <\/div>\n\n  <!-- Off Canvas HTML (place once on the page, e.g. footer or template partial) -->\n  <div id=\"pdf-offcanvas\" class=\"offcanvas\" aria-hidden=\"true\">\n    <button class=\"offcanvas-close\" aria-label=\"Zatvori pregled PDF-a\" style=\"align-self:flex-end; font-size:30px; background:none; border:none; cursor:pointer;\">\u00d7<\/button>\n    \n    <!-- Viewer Type Selector -->\n    <div class=\"viewer-selector\" style=\"margin-bottom: 10px; text-align: center;\">\n      <button class=\"viewer-btn\" data-viewer=\"direct\" style=\"margin-right: 5px;\">Direct View<\/button>\n      <button class=\"viewer-btn\" data-viewer=\"pdfjs\">PDF.js<\/button>\n      <button class=\"viewer-btn\" data-viewer=\"microsoft\" style=\"margin-left: 5px;\">Microsoft<\/button>\n    <\/div>\n    \n    <iframe id=\"pdf-frame\" src=\"\" style=\"width:100%; height:80vh; border:none;\" frameborder=\"0\" aria-label=\"Pregled PDF-a\"><\/iframe>\n    <a id=\"download-link\" href=\"#\" download class=\"fusion-button button-flat mt-4\" style=\"margin-top:10px; text-align:center;\">Preuzmi PDF<\/a>\n  <\/div>\n\n  <style>\n    .cards-wrapper {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 20px;\n    }\n    .business-card {\n      background-color: #fff;\n      border-radius: 12px;\n      box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n      padding: 20px;\n      max-width: 360px;\n      flex: 1 1 300px;\n      font-family: 'Helvetica Neue', sans-serif;\n      color: #2c3e50;\n      margin-bottom: 20px;\n      transition: box-shadow 0.3s;\n      cursor: pointer;\n    }\n    .business-card:hover {\n      box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n    }\n    .card-icon-title {\n      display: flex;\n      align-items: center;\n      font-size: 12px;\n      text-transform: uppercase;\n      font-weight: bold;\n      color: #7f8c8d;\n      margin-bottom: 10px;\n      letter-spacing: 0.5px;\n    }\n    .card-icon-title .icon {\n      margin-right: 8px;\n      font-size: 16px;\n    }\n    .card-title {\n      font-size: 24px !important;\n      font-weight: 700;\n      color: #2c3e50;\n      margin: 0 0 10px 0;\n    }\n    .card-description {\n      font-size: 14px;\n      color: #4b5c6b;\n      line-height: 1.5;\n      margin: 0;\n    }\n    \n    \/* Enhanced Off Canvas styles with proper layering *\/\n    .offcanvas {\n      position: fixed;\n      top: 50%;\n      left: 50%;\n      width: 90vw;\n      max-width: 900px;\n      max-height: 90vh;\n      background: #fff;\n      box-shadow: 0 0 15px rgba(0,0,0,0.3);\n      border-radius: 8px;\n      transform: translate(-50%, -50%);\n      z-index: 999999;\n      overflow: hidden;\n      display: none;\n      flex-direction: column;\n      padding: 20px;\n    }\n\n    .offcanvas.open {\n      display: flex;\n    }\n\n    \/* Add backdrop overlay to prevent background interaction *\/\n    .offcanvas-backdrop {\n      position: fixed;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      background: rgba(0, 0, 0, 0.5);\n      z-index: 9;\n      display: none;\n    }\n\n    .offcanvas-backdrop.open {\n      display: block;\n    }\n\n    \/* Ensure close button is always on top *\/\n    .offcanvas-close {\n      align-self: flex-end;\n      font-size: 30px;\n      background: none;\n      border: none;\n      cursor: pointer;\n      z-index: 1000000;\n      position: relative;\n    }\n\n    \/* Viewer selector buttons *\/\n    .viewer-btn {\n      padding: 5px 10px;\n      background: #f0f0f0;\n      border: 1px solid #ddd;\n      border-radius: 4px;\n      cursor: pointer;\n      transition: background 0.3s;\n    }\n    \n    .viewer-btn:hover {\n      background: #e0e0e0;\n    }\n    \n    .viewer-btn.active {\n      background: #007cba;\n      color: white;\n    }\n\n    \/* Prevent body scroll when dialog is open *\/\n    body.offcanvas-open {\n      overflow: hidden;\n    }\n\n    .offcanvas-inner {\n      padding: 20px;\n      height: 100%;\n      overflow: hidden;\n      position: relative;\n      display: flex;\n      flex-direction: column;\n    }\n  <\/style>\n\n  <script>\n    document.addEventListener('DOMContentLoaded', function () {\n      const cards = document.querySelectorAll('.clickable-card');\n      const offcanvas = document.getElementById('pdf-offcanvas');\n      const iframe = document.getElementById('pdf-frame');\n      const downloadLink = document.getElementById('download-link');\n      const closeBtn = offcanvas.querySelector('.offcanvas-close');\n      const viewerBtns = document.querySelectorAll('.viewer-btn');\n      \n      let currentPdfUrl = '';\n      let currentViewer = 'direct'; \/\/ Default viewer\n\n      \/\/ Create backdrop element\n      const backdrop = document.createElement('div');\n      backdrop.className = 'offcanvas-backdrop';\n      backdrop.id = 'pdf-backdrop';\n      document.body.appendChild(backdrop);\n\n      \/\/ Function to decode URL if it's encoded\n      function cleanUrl(url) {\n        \/\/ Check if URL is already encoded by trying to decode it\n        try {\n          const decoded = decodeURIComponent(url);\n          \/\/ If decoding changes the URL, it was encoded\n          if (decoded !== url) {\n            return decoded;\n          }\n        } catch (e) {\n          \/\/ If decoding fails, URL might be malformed\n          console.error('URL decode error:', e);\n        }\n        return url;\n      }\n\n      \/\/ Function to set viewer URL based on type\n      function setViewerUrl(pdfUrl, viewerType) {\n        let viewerUrl = '';\n        \n        \/\/ Clean the URL first\n        pdfUrl = cleanUrl(pdfUrl);\n        \n        switch(viewerType) {\n          case 'direct':\n            \/\/ Direct browser viewing - most reliable\n            viewerUrl = pdfUrl;\n            break;\n            \n          case 'pdfjs':\n            \/\/ Mozilla PDF.js viewer\n            viewerUrl = `https:\/\/mozilla.github.io\/pdf.js\/web\/viewer.html?file=${encodeURIComponent(pdfUrl)}`;\n            break;\n            \n          case 'microsoft':\n            \/\/ Microsoft Office viewer\n            viewerUrl = `https:\/\/view.officeapps.live.com\/op\/embed.aspx?src=${encodeURIComponent(pdfUrl)}`;\n            break;\n            \n          default:\n            viewerUrl = pdfUrl;\n        }\n        \n        return viewerUrl;\n      }\n\n      function openDialog(pdfUrl) {\n        currentPdfUrl = pdfUrl;\n        \n        \/\/ Set the viewer URL\n        const viewerUrl = setViewerUrl(pdfUrl, currentViewer);\n        iframe.src = viewerUrl;\n        downloadLink.href = cleanUrl(pdfUrl);\n\n        \/\/ Show backdrop and dialog\n        backdrop.classList.add('open');\n        offcanvas.classList.add('open');\n        offcanvas.setAttribute('aria-hidden', 'false');\n        \n        \/\/ Prevent body scroll\n        document.body.classList.add('offcanvas-open');\n        \n        \/\/ Update active viewer button\n        updateViewerButtons(currentViewer);\n      }\n\n      function closeDialog() {\n        iframe.src = '';\n        backdrop.classList.remove('open');\n        offcanvas.classList.remove('open');\n        offcanvas.setAttribute('aria-hidden', 'true');\n        \n        \/\/ Restore body scroll\n        document.body.classList.remove('offcanvas-open');\n      }\n      \n      function updateViewerButtons(activeViewer) {\n        viewerBtns.forEach(btn => {\n          if (btn.dataset.viewer === activeViewer) {\n            btn.classList.add('active');\n          } else {\n            btn.classList.remove('active');\n          }\n        });\n      }\n\n      \/\/ Handle viewer button clicks\n      viewerBtns.forEach(btn => {\n        btn.addEventListener('click', function() {\n          currentViewer = this.dataset.viewer;\n          if (currentPdfUrl) {\n            const viewerUrl = setViewerUrl(currentPdfUrl, currentViewer);\n            iframe.src = viewerUrl;\n            updateViewerButtons(currentViewer);\n          }\n        });\n      });\n\n      cards.forEach(card => {\n        card.addEventListener('click', function () {\n          const pdfUrl = this.getAttribute('data-pdf-url');\n          if (!pdfUrl) return;\n          openDialog(pdfUrl);\n        });\n\n        \/\/ Keyboard accessibility\n        card.addEventListener('keydown', function(e) {\n          if(e.key === 'Enter' || e.key === ' ') {\n            e.preventDefault();\n            this.click();\n          }\n        });\n      });\n\n      \/\/ Close dialog events\n      closeBtn.addEventListener('click', closeDialog);\n\n      \/\/ Close on backdrop click\n      backdrop.addEventListener('click', closeDialog);\n\n      \/\/ Close on Escape key\n      document.addEventListener('keydown', function(e) {\n        if (e.key === 'Escape' && offcanvas.classList.contains('open')) {\n          closeDialog();\n        }\n      });\n    });\n  <\/script>\n\n<\/div>\n  <\/div>\n\n  <div class=\"facetwp-footer\">\n    <div class=\"facetwp-facet facetwp-facet-pager_pagination facetwp-type-pager\" data-name=\"pager_pagination\" data-type=\"pager\"><\/div>\n  <\/div>\n\n<\/div>\n\n<style>\n.facetwp-container {\n  max-width: 1200px;\n  margin: 0 auto;\n  padding: 20px;\n  font-family: 'Helvetica Neue', sans-serif;\n}\n\n.facetwp-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-bottom: 20px;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n\n.pager-count {\n  font-size: 14px;\n  color: #555;\n}\n\n.sort-by select {\n  padding: 6px 10px;\n  border: 1px solid #ccc;\n  border-radius: 6px;\n  font-size: 14px;\n}\n\n\/* Template Results Section *\/\n.facetwp-results {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 20px;\n}\n\n\/* Optional: Pagination styling *\/\n.facetwp-footer {\n  margin-top: 30px;\n  text-align: center;\n}\n\n.facetwp-pager {\n  display: inline-block;\n  padding: 8px 12px;\n  margin: 0 4px;\n  background-color: #f1f1f1;\n  color: #333;\n  border-radius: 6px;\n  cursor: pointer;\n  transition: background-color 0.2s;\n}\n\n.facetwp-pager:hover,\n.facetwp-pager.active {\n  background-color: #2c3e50;\n  color: #fff;\n}\n\n<\/style><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-2434","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/pages\/2434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/comments?post=2434"}],"version-history":[{"count":5,"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/pages\/2434\/revisions"}],"predecessor-version":[{"id":2712,"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/pages\/2434\/revisions\/2712"}],"wp:attachment":[{"href":"https:\/\/wbcirculareconomy.com\/bs\/wp-json\/wp\/v2\/media?parent=2434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}