{"id":17,"date":"2025-01-19T15:30:07","date_gmt":"2025-01-19T15:30:07","guid":{"rendered":"https:\/\/tbp.si\/?page_id=17"},"modified":"2026-09-06T18:53:18","modified_gmt":"2026-09-06T18:53:18","slug":"landing","status":"publish","type":"page","link":"https:\/\/tbp.si\/de\/landing\/","title":{"rendered":"Landing"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"17\" class=\"elementor elementor-17\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c950aae e-con-full hero_wrap e-flex e-con e-parent\" data-id=\"c950aae\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-afd9554 hero_mask elementor-widget elementor-widget-html\" data-id=\"afd9554\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.15\/dist\/gsap.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.15\/dist\/Flip.min.js\"><\/script>\n\n<div class=\"container41 hero_img \">\n<div class=\"hero-overlay\">\n    \n<\/div>\n    <div class=\"dm-heading\">\n            <h1>    Od razvoja do re\u0161itve.<br> V plastiki, avtomatizaciji in \u017eici. <\/h1>\n        \n    <\/div>\n\t<video autoplay playsinline muted loop>\n    <source src=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/07\/tbp-hero-2-1.mp4\" \/>\n \n  <\/video>\n\n    <!-- Mini showreel \u2014 GSAP Flip -->\n    <div data-mini-showreel-lightbox=\"showreel\" data-mini-showreel-status=\"not-active\" class=\"mini-showreel-lightbox\">\n        <div data-mini-showreel-close=\"\" class=\"mini-showreel-lightbox__dark\"><\/div>\n        <div data-mini-showreel-safearea=\"\" class=\"mini-showreel-lightbox__safearea\">\n            <div data-mini-showreel-target=\"\" class=\"mini-showreel-lightbox__target\">\n                <div class=\"mini-showreel__before\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"mini-showreel-slot\" data-mini-showreel-slot>\n        <div data-mini-showreel-player=\"showreel\" data-mini-showreel-status=\"not-active\" class=\"mini-showreel\">\n            <div class=\"mini-showreel__card\">\n                <div class=\"mini-showreel__media\">\n                    <div class=\"mini-showreel__video\" data-mini-showreel-video=\"\">\n                        <div class=\"mini-showreel__before\"><\/div>\n                        <video class=\"mini-showreel__preview\" autoplay muted loop playsinline preload=\"auto\">\n                            <source src=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/08\/tbp-izsek-hero.mp4\" type=\"video\/mp4\">\n                        <\/video>\n                        <div class=\"mini-showreel__scrim\"><\/div>\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" viewbox=\"0 0 40 40\" fill=\"none\" class=\"mini-showreel__play-svg\"><circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"#fff\"><\/circle><path d=\"M16.1206 15.8199C16.1206 14.8986 17.116 14.3209 17.916 14.778L25.1594 18.9171C25.9655 19.3778 25.9655 20.5402 25.1594 21.0009L17.916 25.14C17.116 25.5971 16.1206 25.0195 16.1206 24.0981V15.8199Z\" fill=\"#17223a\"><\/path><\/svg>\n                        <span class=\"mini-showreel__text\">Poglej video<\/span>\n                    <\/div>\n                <\/div>\n                <div data-mini-showreel-open=\"showreel\" class=\"mini-showreel__click\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n         <\/div>\n           \n<style>\n   \n    .container41 video{\n        width:100vw;\n        height:100vh!important;\n        object-fit:cover;\n        border-radius:0!important;\n        z-index:-1;\n    }\n    .container41 .dm-heading h1{\n        z-index:100;\n        color:#fff;\n        position:absolute;\n   top:50%;\n   \n        mix-blend-mode:; \n        z-index:10000210;\n        font-family: Eurostile;\n        font-weight: 700;\n        font-size:90px;\n \n        left:60px;\n    }\n    .hero-overlay{\n        width:100vw;\n        height:100vh!important;\n   \n        position:absolute;\n        z-index:12!important;\n        background: rgb(23,34,58);\nbackground: -moz-linear-gradient(180deg, rgba(23,34,58,1) 0%, rgba(229,229,229,1) 100%);\nbackground: -webkit-linear-gradient(180deg, rgba(23,34,58,1) 0%, rgba(229,229,229,1) 100%);\nbackground: linear-gradient(180deg, rgba(23,34,58,1) 0%, rgba(229,229,229,1) 100%);\nfilter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#17223a\",endColorstr=\"#e5e5e5\",GradientType=1);\nmix-blend-mode: multiply;\n        \n    }\n @media only screen and (min-width:1050px) and (max-width:1600px){\n      .container41 .dm-heading h1{\n        z-index:100;\n        color:#fff;\n        position:absolute;\n        top:50%;\n        mix-blend-mode:; \n        z-index:10000210;\n        font-family: Eurostile;\n        font-weight: 700;\n        font-size:75px;\n  \n        left:30px;\n    }\n }\n @media only screen and (max-width:700px){\n         .container41 .dm-heading h1{\n        z-index:100;\n        color:#fff;\n        position:absolute;\n        top:0px;\n        mix-blend-mode:; \n        z-index:10000210;\n        font-family: Eurostile;\n        font-weight: 700;\n        font-size:40px;\n        margin-top:300px;\n        left:0;\n        padding:0 20px 0 20px;\n    }\n     .hero-overlay{\n        width:100vw;\n        height:700px;}\n  .container41 video{\n        width:100vw;\n        height:700px;}\n }\n\n\/* ==========================================================================\n   Mini showreel \u2014 GSAP Flip okno spodaj desno v heroju.\n   ========================================================================== *\/\n\n.mini-showreel-lightbox {\n  display: none;\n  pointer-events: none;\n  justify-content: center;\n  align-items: center;\n  padding: 3em;\n  position: fixed;\n  inset: 0;\n  overflow: hidden;\n}\n[data-mini-showreel-status=\"active\"].mini-showreel-lightbox {\n  display: flex;\n}\n.mini-showreel-lightbox__safearea {\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n  display: flex;\n}\n.mini-showreel-lightbox__target {\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  display: flex;\n}\n.mini-showreel-lightbox__dark {\n  opacity: 0;\n  pointer-events: auto;\n  cursor: pointer;\n  visibility: hidden;\n  background-color: #0009;\n  width: 100%;\n  height: 100%;\n  position: absolute;\n}\n\n.mini-showreel-slot {\n  position: absolute;\n  right: -320px;\n  bottom: 15px;\n  width: clamp(220px, 24vw, 460px);\n  opacity: 0;\n  z-index: 10000220;\n  transition: right 0.9s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1);\n}\n.mini-showreel-slot.mini-showreel-in {\n  right: 15px;\n  opacity: 1;\n}\n\n\/* Ve\u010dji desktop\/large screen ekrani \u2014 proporcionalno ve\u010dje okno *\/\n@media only screen and (min-width: 1600px) {\n  .mini-showreel-slot {\n    width: clamp(320px, 22vw, 560px);\n  }\n}\n\n.mini-showreel {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n\n.mini-showreel__card {\n  width: 100%;\n  position: relative;\n}\n.mini-showreel__media {\n  z-index: 1;\n  position: relative;\n}\n.mini-showreel__video {\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n}\n.mini-showreel__video video {\n  width: 100%;\n  object-fit: cover;\n}\n.mini-showreel__preview {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  pointer-events: none;\n  transition: opacity 0.25s ease;\n}\n\n.mini-showreel__yt {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  border: none;\n  z-index: 3;\n}\n\n.mini-showreel__before {\n  padding-top: 56.25%;\n}\n\n.mini-showreel__scrim {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 55%;\n  background: linear-gradient(0deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);\n  z-index: 1;\n  pointer-events: none;\n  transition: opacity 0.4s ease;\n}\n\n.mini-showreel__play-svg {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  width: clamp(32px, 5vw, 52px);\n  z-index: 2;\n  filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.35));\n  transition: opacity 0.35s ease, transform 0.35s ease;\n}\n.mini-showreel__card:hover .mini-showreel__play-svg {\n  transform: translate(-50%, -50%) scale(1.08);\n}\n\n.mini-showreel__text {\n  position: absolute;\n  left: clamp(10px, 1.2vw, 16px);\n  bottom: clamp(8px, 1vw, 14px);\n  z-index: 2;\n  color: #fff;\n  font-family: Eurostile, Arial, sans-serif;\n  font-size: clamp(11px, 1.1vw, 14px);\n  font-weight: 600;\n  letter-spacing: 0.02em;\n  transition: opacity 0.35s ease;\n  white-space: nowrap;\n}\n\n.mini-showreel__click {\n  z-index: 3;\n  cursor: pointer;\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n[data-mini-showreel-status=\"active\"] .mini-showreel__click {\n  display: none;\n}\n[data-mini-showreel-status=\"active\"] .mini-showreel__play-svg,\n[data-mini-showreel-status=\"active\"] .mini-showreel__text,\n[data-mini-showreel-status=\"active\"] .mini-showreel__scrim {\n  opacity: 0;\n  pointer-events: none;\n}\n\/* Mini preview video takoj zbledi ob odpiranju (namesto da \u0161e ~2s vidno\n   igra med flip animacijo, preden se poka\u017ee YouTube), ozadje kontejnerja\n   pa je medtem \u010drno, da ni \"praznine\". *\/\n[data-mini-showreel-status=\"active\"] .mini-showreel__preview {\n  opacity: 0;\n}\n[data-mini-showreel-status=\"active\"] .mini-showreel__video {\n  background: #000;\n}\n\n[data-mini-showreel-status] .mini-showreel-lightbox__dark {\n  transition: all 1s cubic-bezier(0.87, 0, 0.13, 1);\n}\n[data-mini-showreel-status=\"active\"] .mini-showreel-lightbox__dark {\n  opacity: 1;\n  visibility: visible;\n}\n\n\/* Mobile: klamp na desktopu pade na svoj minimum (150px) prehitro glede\n   na velikost prsta\/zaslona \u2014 tu ga dvignemo, da je okno na mobilu\n   opazno ve\u010dje. *\/\n@media only screen and (max-width: 700px) {\n  .mini-showreel-slot {\n    width: clamp(210px, 55vw, 260px);\n  }\n  .mini-showreel__play-svg {\n    width: clamp(42px, 11vw, 56px);\n  }\n  .mini-showreel__text {\n    font-size: clamp(12px, 3.2vw, 15px);\n  }\n}\n<\/style>\n\n<!-- Entrance: slide-in z desne. Pokli\u010di showMiniShowreel() ob koncu\n     obstoje\u010de hero entrance animacije. Fallback ga spro\u017ei samodejno po\n     1.8s, \u010de ga ne pove\u017ee\u0161 ro\u010dno. Popolnoma neodvisen od GSAP Flip spodaj. -->\n<script>\n(function () {\n  function showMiniShowreel() {\n    document.querySelectorAll(\"[data-mini-showreel-slot]\").forEach(function (slotEl) {\n      slotEl.classList.add(\"mini-showreel-in\");\n    });\n  }\n  window.showMiniShowreel = showMiniShowreel;\n\n  function boot() {\n    setTimeout(showMiniShowreel, 1800);\n  }\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", boot);\n  } else {\n    boot();\n  }\n})();\n<\/script>\n\n<!-- GSAP Flip \u2014 odpiranje\/zapiranje v fullscreen ob kliku. -->\n<script>\n(function () {\n  if (typeof gsap === \"undefined\" || typeof Flip === \"undefined\") {\n    console.warn(\"[mini-showreel] GSAP\/Flip ni na voljo \u2014 fullscreen odpiranje je onemogo\u010deno.\");\n    return;\n  }\n  gsap.registerPlugin(Flip);\n\n  function initMiniShowreelPlayer() {\n    const openBtns = document.querySelectorAll(\"[data-mini-showreel-open]\");\n    if (!openBtns.length) return;\n\n    var YT_ID = \"E86HlrvIF9g\";\n    var duration = 1;\n    var ease = \"expo.inOut\";\n    var zIndexBase = 2147483000;\n    let n = \"\", isOpen = false;\n    let lb, pw, tg, slot;\n    let pwCss = \"\", lbZ = \"\", pwZ = \"\", slotZ = \"\";\n    const q = (sel, root = document) => root.querySelector(sel);\n    const getLB = (name) => q(`[data-mini-showreel-lightbox=\"${name}\"]`);\n    const getPW = (name) => q(`[data-mini-showreel-player=\"${name}\"]`);\n    const safe = (t) => t.closest(\"[data-mini-showreel-safearea]\") || q(\"[data-mini-showreel-safearea]\", t) || t;\n    const fit = (b, a) => {\n      let w = b.width, h = w \/ a;\n      if (h > b.height) { h = b.height; w = h * a; }\n      return {\n        left: b.left + (b.width - w) \/ 2,\n        top: b.top + (b.height - h) \/ 2,\n        width: w,\n        height: h\n      };\n    };\n    const rectFor = (t) => {\n      const b = safe(t).getBoundingClientRect();\n      const r = t.getBoundingClientRect();\n      const a = r.width > 0 && r.height > 0 ? r.width \/ r.height : 16 \/ 9;\n      return fit(b, a);\n    };\n    const place = (el, r) =>\n      gsap.set(el, {\n        position: \"fixed\",\n        left: r.left,\n        top: r.top,\n        width: r.width,\n        height: r.height,\n        margin: 0,\n        x: 0,\n        y: 0\n      });\n    function setStatus(status) {\n      if (!n) return;\n      document.querySelectorAll(`[data-mini-showreel-lightbox=\"${n}\"], [data-mini-showreel-player=\"${n}\"]`).forEach((el) => el.setAttribute(\"data-mini-showreel-status\", status));\n    }\n    function zOn() {\n      slot = pw && pw.closest(\"[data-mini-showreel-slot]\");\n      lbZ = lb?.style.zIndex || \"\";\n      pwZ = pw?.style.zIndex || \"\";\n      slotZ = slot?.style.zIndex || \"\";\n      if (slot) slot.style.zIndex = String(zIndexBase);\n      if (lb) lb.style.zIndex = String(zIndexBase);\n      if (pw) pw.style.zIndex = String(zIndexBase + 10);\n    }\n    function zOff() {\n      if (slot) slot.style.zIndex = slotZ;\n      if (lb) lb.style.zIndex = lbZ;\n      if (pw) pw.style.zIndex = pwZ;\n    }\n    function ytIframe() {\n      const iframe = document.createElement(\"iframe\");\n      iframe.src = \"https:\/\/www.youtube.com\/embed\/\" + YT_ID + \"?autoplay=1&rel=0&modestbranding=1&iv_load_policy=3\";\n      iframe.title = \"Predstavitveni video\";\n      iframe.allow = \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\";\n      iframe.allowFullscreen = true;\n      iframe.className = \"mini-showreel__yt\";\n      return iframe;\n    }\n    function insertVideo() {\n      if (!pw) return;\n      const videoBox = q(\"[data-mini-showreel-video]\", pw);\n      if (videoBox && !videoBox.querySelector(\".mini-showreel__yt\")) {\n        videoBox.appendChild(ytIframe());\n      }\n    }\n    function removeVideo() {\n      if (!pw) return;\n      const videoBox = q(\"[data-mini-showreel-video]\", pw);\n      const frame = videoBox && videoBox.querySelector(\".mini-showreel__yt\");\n      if (frame) frame.remove();\n    }\n    function pauseMiniPreview() {\n      if (!pw) return;\n      const vid = q(\".mini-showreel__preview\", pw);\n      if (vid && typeof vid.pause === \"function\") vid.pause();\n    }\n    function resumeMiniPreview() {\n      if (!pw) return;\n      const vid = q(\".mini-showreel__preview\", pw);\n      if (vid && typeof vid.play === \"function\") vid.play().catch(function () {});\n    }\n    function openBy(name) {\n      if (!name || isOpen) return;\n      lb = getLB(name);\n      pw = getPW(name);\n      if (!lb || !pw) return;\n      tg = q(\"[data-mini-showreel-target]\", lb);\n      if (!tg) return;\n      n = name;\n      isOpen = true;\n      pw.dataset.flipId = n;\n      pwCss = pw.style.cssText || \"\";\n      zOn();\n      setStatus(\"active\");\n      \/\/ Mini preview takoj pavziramo in zbledi (CSS), YouTube iframe pa\n      \/\/ vstavimo TAKOJ (ne \u0161ele ko se flip kon\u010da) \u2014 nalaga se vzporedno\n      \/\/ z animacijo, namesto da se doda \u0161ele po njej, kar je prej\n      \/\/ pomenilo, da je mini video \u0161e dodatnih ~2s vidno igral.\n      pauseMiniPreview();\n      insertVideo();\n      const state = Flip.getState(pw);\n      place(pw, rectFor(tg));\n      Flip.from(state, {\n        duration: duration,\n        ease: ease,\n        absolute: true,\n        scale: false\n      });\n    }\n    function closeBy(nameOrEmpty) {\n      if (!isOpen || !pw) return;\n      if (nameOrEmpty && nameOrEmpty !== n) return;\n      removeVideo();\n      setStatus(\"not-active\");\n      resumeMiniPreview();\n      const state = Flip.getState(pw);\n      pw.style.cssText = pwCss;\n      if (slot) slot.style.zIndex = String(zIndexBase);\n      if (lb) lb.style.zIndex = String(zIndexBase);\n      if (pw) pw.style.zIndex = String(zIndexBase + 10);\n      Flip.from(state, {\n        duration: duration,\n        ease: ease,\n        absolute: true,\n        scale: false,\n        onComplete: () => {\n          zOff();\n          n = \"\";\n          isOpen = false;\n          lb = pw = tg = slot = null;\n          pwCss = \"\";\n          lbZ = \"\";\n          pwZ = \"\";\n          slotZ = \"\";\n        }\n      });\n    }\n    function onResize() {\n      if (!isOpen || !pw || !tg) return;\n      place(pw, rectFor(tg));\n    }\n    openBtns.forEach((btn) => {\n      btn.addEventListener(\"click\", (e) => {\n        e.preventDefault();\n        openBy(btn.getAttribute(\"data-mini-showreel-open\") || \"\");\n      });\n    });\n    document.addEventListener(\"click\", (e) => {\n      const closeBtn = e.target.closest(\"[data-mini-showreel-close]\");\n      if (!closeBtn) return;\n      e.preventDefault();\n      closeBy(closeBtn.getAttribute(\"data-mini-showreel-close\") || \"\");\n    });\n    window.addEventListener(\"keydown\", (e) => {\n      if (e.key === \"Escape\") closeBy(\"\");\n    });\n    window.addEventListener(\"resize\", onResize);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initMiniShowreelPlayer);\n  } else {\n    initMiniShowreelPlayer();\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b6df572 e-con-full e-flex e-con e-parent\" data-id=\"b6df572\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7b3801e elementor-widget elementor-widget-html\" data-id=\"7b3801e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"th-about\">\n    <div class=\"th-about-intro\">\n        <h2 class=\"th-about-label\">Podjetje<\/h2>\n        <h3 class=\"th-about-text\" data-gradient-wave-text aria-label=\"\u017de desetletja razvijamo in izdelujemo bovden potege, ki so del milijonov vozil po vsem svetu. Za vsakim izdelkom stojijo bogate izku\u0161nje, natan\u010dni proizvodni procesi in neprestano iskanje bolj\u0161ih re\u0161itev. Z visoko stopnjo kakovosti, tehnolo\u0161kega znanja in zanesljivosti ustvarjamo komponente, ki prispevajo k varnej\u0161emu, u\u010dinkovitej\u0161emu in trajnostnemu razvoju sodobne avtomobilske industrije.\">\u017de desetletja razvijamo in izdelujemo bovden potege, ki so del milijonov vozil po vsem svetu. Za vsakim izdelkom stojijo bogate izku\u0161nje, natan\u010dni proizvodni procesi in neprestano iskanje bolj\u0161ih re\u0161itev. Z visoko stopnjo kakovosti, tehnolo\u0161kega znanja in zanesljivosti ustvarjamo komponente, ki prispevajo k varnej\u0161emu, u\u010dinkovitej\u0161emu in trajnostnemu razvoju sodobne avtomobilske industrije.<\/h3>\n    <\/div>\n\n    <div class=\"th-about-stats\">\n        <div class=\"th-stat\" data-parallax data-parallax-speed=\"0.3\" data-parallax-direction=\"up\">\n            <div class=\"th-stat-number\" data-to-value=\"734\" data-duration=\"2\">0<\/div>\n            <div class=\"th-stat-title\">Zaposlenih<\/div>\n        <\/div>\n        <div class=\"th-stat\" data-parallax data-parallax-speed=\"0.7\" data-parallax-direction=\"down\">\n            <div class=\"th-stat-number\" data-to-value=\"60\" data-suffix=\"+\" data-duration=\"2\">0<\/div>\n            <div class=\"th-stat-title\">Let delovanja<\/div>\n        <\/div>\n        <div class=\"th-stat\" data-parallax data-parallax-speed=\"1.2\" data-parallax-direction=\"up\">\n            <div class=\"th-stat-number\" data-to-value=\"70\" data-suffix=\"+\" data-duration=\"2\">0<\/div>\n            <div class=\"th-stat-title\">Mednarodnih partnerjev<\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<style>\n.th-about{\n    display: flex;\n    flex-direction: column;\n    gap: 0;\n    width: 100%;\n    padding: 140px 60px 250px 60px;\n    background-color: #FFFFFF;\n    box-sizing: border-box;\n}\n\n\/* --- Intro \/ wave text --- *\/\n.th-about-intro{\n    display: flex;\n    gap: 300px;\n}\n.th-about-label{\n    font-size: 48px;\n    font-family: Eurostile;\n    width: 20%;\n    font-weight: 700;\n    color: #000;\n    margin: 0;\n}\n.th-about-text{\n    font-family: Eurostile;\n    font-size: 38px !important;\n    color: #000;\n    font-weight: 400;\n    width: 80%;\n    margin: 0;\n}\n\n\/* --- Stats row --- *\/\n.th-about-stats{\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-start;\n    gap: 40px;\n    padding-top: 250px;\n}\n.th-stat{\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    flex: 1;\n}\n.th-stat-number{\n    font-family: Eurostile;\n    font-weight: 700;\n    color: #000;\n    line-height: 1;\n    font-size: 120px; \/* desktop *\/\n}\n.th-stat-title{\n    font-family: Eurostile;\n    font-weight: 400;\n    color: #939393;\n    font-size: 36px; \/* desktop \/ laptop \/ tablet *\/\n    margin-top: 12px;\n}\n\n\/* Vertical offsets to match original per-counter transforms before parallax kicks in *\/\n.th-about-stats .th-stat:nth-child(1){ transform: translateY(-15%); }\n.th-about-stats .th-stat:nth-child(2){ transform: translateY(35%); }\n.th-about-stats .th-stat:nth-child(3){ transform: translateY(-60%); }\n\n@media (min-width:701px){\n    .th-about-stats .th-stat:nth-child(1){\n        align-items: flex-start;\n    }\n    .th-about-stats .th-stat:nth-child(2){\n        align-items: center;\n    }\n    .th-about-stats .th-stat:nth-child(3){\n        align-items: flex-end;\n    }\n    .th-about-stats .th-stat-number,\n    .th-about-stats .th-stat-title{\n        text-align: left;\n    }\n}\n\n@media (min-width:1050px) and (max-width:1600px){\n    .th-about{\n        padding: 120px 30px 180px 30px;\n    }\n    .th-about-text{\n        font-size: 30px !important;\n        width: 90%;\n    }\n    .th-about-label{ width: 20%; }\n    .th-about-intro{ gap: 100px; }\n    .th-stat-number{ font-size: 110px; } \/* laptop & tablet *\/\n}\n\n@media (max-width:700px){\n    .th-about{\n        padding: 52px 21px 40px 21px;\n    }\n    .th-about-intro{\n        flex-direction: column !important;\n        gap: 0;\n    }\n    .th-about-label{\n        font-size: 34px;\n        width: 100%;\n        padding-bottom: 35px;\n    }\n    .th-about-text{\n        font-size: 24px !important;\n        width: 100%;\n    }\n    .th-about-stats{\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 60px;\n        padding-top: 40px;\n    }\n    .th-stat{\n        align-items: flex-start;\n        text-align: left;\n    }\n    .th-about-stats .th-stat:nth-child(1),\n    .th-about-stats .th-stat:nth-child(2),\n    .th-about-stats .th-stat:nth-child(3){\n        transform: none;\n    }\n    .th-stat-number{ font-size: 75px; } \/* mobile *\/\n    .th-stat-title{ font-size: 24px; } \/* mobile *\/\n}\n<\/style>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.15\/dist\/gsap.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.15\/dist\/ScrollTrigger.min.js\"><\/script>\n<script>\ngsap.registerPlugin(ScrollTrigger, SplitText);\n\n\/* --- Gradient wave text on scroll --- *\/\nfunction initGradientWaveText() {\n  document.querySelectorAll('[data-gradient-wave-text]').forEach((heading) => {\n    const scrollStart = heading.getAttribute('data-gradient-wave-scroll-start') || 'top 90%';\n    const scrollEnd = heading.getAttribute('data-gradient-wave-scroll-end') || 'center 40%';\n    const startColor = heading.getAttribute('data-gradient-wave-color-start') || 'rgba(0, 0, 0, 0.3)';\n    const waveColor = heading.getAttribute('data-gradient-wave-color-wave') || '#FB8D09';\n    const waveDuration = parseFloat(heading.getAttribute('data-gradient-wave-duration')) || 0.4;\n    const scrubValue = parseFloat(heading.getAttribute('data-gradient-wave-scrub')) || 0.1;\n    const endColor = getComputedStyle(heading).color;\n\n    new SplitText(heading, {\n      type: 'words, chars',\n      autoSplit: true,\n      onSplit(self) {\n        const chars = self.chars;\n        const activeChars = new Set();\n        const progress = { value: 0 };\n        let isReady = false;\n\n        const syncChars = () => {\n          const activeCount = Math.round(progress.value * chars.length);\n          chars.forEach((char, index) => {\n            const isActive = index < activeCount;\n            gsap.killTweensOf(char);\n            gsap.set(char, { color: isActive ? endColor : startColor });\n            if (isActive) activeChars.add(char);\n            else activeChars.delete(char);\n          });\n        };\n\n        const ctx = gsap.context(() => {\n          gsap.set(chars, { color: startColor });\n\n          gsap.to(progress, {\n            value: 1,\n            ease: 'none',\n            scrollTrigger: {\n              trigger: heading,\n              start: scrollStart,\n              end: scrollEnd,\n              scrub: scrubValue,\n              onRefresh: () => {\n                isReady = false;\n                syncChars();\n                requestAnimationFrame(() => { isReady = true; });\n              }\n            },\n            onUpdate: () => {\n              if (!isReady) return;\n              const activeCount = Math.round(progress.value * chars.length);\n              chars.forEach((char, index) => {\n                const isActive = index < activeCount;\n\n                if (isActive && !activeChars.has(char)) {\n                  activeChars.add(char);\n                  gsap.killTweensOf(char);\n                  gsap.timeline()\n                    .to(char, { color: waveColor, duration: waveDuration * 0.3, ease: 'power2.out' })\n                    .to(char, { color: endColor, duration: waveDuration * 0.7, ease: 'power2.in' });\n                }\n\n                if (!isActive && activeChars.has(char)) {\n                  activeChars.delete(char);\n                  gsap.killTweensOf(char);\n                  gsap.to(char, { color: startColor, duration: waveDuration * 0.5, ease: 'none' });\n                }\n              });\n            }\n          });\n        }, heading);\n\n        return ctx;\n      }\n    });\n  });\n}\n\n\/* --- Parallax on stat blocks --- *\/\nfunction initParallax() {\n  if (typeof gsap === 'undefined') return;\n  gsap.registerPlugin(ScrollTrigger);\n\n  ScrollTrigger.matchMedia({\n    \"(min-width: 768px)\": function () {\n      const targets = document.querySelectorAll('[data-parallax]');\n      targets.forEach((el) => {\n        const speed = parseFloat(el.getAttribute('data-parallax-speed')) || 0.5;\n        const direction = el.getAttribute('data-parallax-direction') === 'down' ? 1 : -1;\n        const distance = speed * 100 * direction;\n\n        gsap.fromTo(\n          el,\n          { yPercent: -distance \/ 2 },\n          {\n            yPercent: distance \/ 2,\n            ease: 'none',\n            scrollTrigger: {\n              trigger: el,\n              start: 'top bottom',\n              end: 'bottom top',\n              scrub: true,\n              invalidateOnRefresh: true,\n            },\n          }\n        );\n      });\n    },\n    \"(max-width: 767px)\": function () {\n      const targets = document.querySelectorAll('[data-parallax]');\n      targets.forEach((el) => { gsap.set(el, { yPercent: 0 }); });\n    }\n  });\n\n  ScrollTrigger.refresh();\n}\n\n\/* --- Counter count-up on scroll into view --- *\/\nfunction initCounters() {\n  document.querySelectorAll('.th-stat-number').forEach((el) => {\n    const toValue = parseFloat(el.getAttribute('data-to-value')) || 0;\n    const suffix = el.getAttribute('data-suffix') || '';\n    const duration = parseFloat(el.getAttribute('data-duration')) || 2;\n    const counter = { value: 0 };\n\n    ScrollTrigger.create({\n      trigger: el,\n      start: 'top 85%',\n      once: true,\n      onEnter: () => {\n        gsap.to(counter, {\n          value: toValue,\n          duration: duration,\n          ease: 'power1.out',\n          onUpdate: () => {\n            el.textContent = Math.round(counter.value) + suffix;\n          }\n        });\n      }\n    });\n  });\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  initGradientWaveText();\n  initCounters();\n});\n\nif (document.readyState === 'complete') {\n  initParallax();\n} else {\n  window.addEventListener('load', initParallax);\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1fe04ba e-con-full e-flex e-con e-parent\" data-id=\"1fe04ba\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-d41b09f e-con-full e-flex e-con e-child\" data-id=\"d41b09f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aae7257 elementor-widget elementor-widget-heading\" data-id=\"aae7257\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Podjetje<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3ad930 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d3ad930\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Osredoto\u010damo se na proizvodnjo bovden potegov za razli\u010dne avtomobilske funkcije. Na\u0161 cilj je razvijati inovativne re\u0161itve, ki izpolnjujejo pri\u010dakovanja \u0161irokega kroga strank. Pri tem si nenehno prizadevamo izbolj\u0161ati zanesljivost in varnost delovanja avtomobilskih komponent.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e9e7b7a elementor-widget elementor-widget-html\" data-id=\"e9e7b7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.3\/gsap.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.3\/ScrollTrigger.min.js\"><\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n  gsap.registerPlugin(ScrollTrigger);\n\n  \/\/ Function to split text into spans\n  function splitTextIntoSpans(selector) {\n    const elements = document.querySelectorAll(selector);\n    elements.forEach(element => {\n      const text = element.innerText;\n      element.innerHTML = \"\"; \/\/ Clear existing content\n      text.split(\"\").forEach(char => {\n        const span = document.createElement(\"span\");\n        span.style.display = \"inline-block\";\n        span.style.opacity = \"0\";\n        span.style.filter = \"blur(8px)\";\n        span.style.transform = \"translateX(-100px)\";\n        span.innerText = char === \" \" ? \"\\u00A0\" : char; \/\/ Non-breaking space for spaces\n        element.appendChild(span);\n      });\n    });\n  }\n\n  splitTextIntoSpans(\"h4\");\n\n  document.querySelectorAll(\"h4\").forEach(h4 => {\n    gsap.fromTo(h4.querySelectorAll(\"span\"), {\n      x: '-100%',\n      filter: 'blur(8px)',\n      opacity: 0,\n    }, {\n      x: '0%',\n      filter: 'blur(0)',\n      opacity: 1,\n      duration: 1.1,\n      ease: \"power4.out\",\n      stagger: 0.04,\n      scrollTrigger: {\n        trigger: h4,\n        start: \"top 70%\", \/\/ Adjust if necessary\n        end: \"top 45%\", \/\/ Ensures animation completes\n        toggleActions: \"restart none none reset\",\n        scrub: 0.3,\n        markers: false\n      },\n    });\n  });\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f511100 elementor-hidden-mobile elementor-widget elementor-widget-html\" data-id=\"f511100\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<a data-button-046=\"\" href=\"https:\/\/tbp.si\/o-druzbi\/\" class=\"button-046\">\n  <span class=\"button-046__bg\"><\/span>\n  <span class=\"button-046__bg-circle\">\n    <span data-button-046-circle=\"\" class=\"button-046__circle-wrap\">\n      <span class=\"button-046__circle\"><\/span>\n    <\/span>\n  <\/span>\n  <span class=\"button-046__inner\">\n    <span class=\"button-046__text\">Ve\u010d o podjetju<\/span>\n  <\/span>\n<\/a>\n\n\n\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-845d94b e-con-full e-flex e-con e-child\" data-id=\"845d94b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-aa7a29c e-con-full e-flex e-con e-child\" data-id=\"aa7a29c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8439560 elementor-widget elementor-widget-counter\" data-id=\"8439560\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"counter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Zaposlenih<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"734\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\"><\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f68c509 e-con-full e-flex e-con e-child\" data-id=\"f68c509\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7cf57c3 elementor-widget elementor-widget-counter\" data-id=\"7cf57c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"counter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Let delovanja<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"60\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">+<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c8761b e-con-full e-flex e-con e-child\" data-id=\"3c8761b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f318e3 e-con-full e-flex e-con e-child\" data-id=\"1f318e3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c12634a elementor-widget elementor-widget-counter\" data-id=\"c12634a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"counter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Mednarodnih partnerjev<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"70\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">+<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-060c980 e-con-full elementor-hidden-widescreen elementor-hidden-desktop elementor-hidden-laptop elementor-hidden-tablet e-flex e-con e-child\" data-id=\"060c980\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f661a3a elementor-widget-mobile__width-auto elementor-hidden-widescreen elementor-hidden-desktop elementor-hidden-laptop elementor-hidden-tablet elementor-widget elementor-widget-html\" data-id=\"f661a3a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<a data-button-046=\"\" href=\"https:\/\/tbp.si\/o-druzbi\/\" class=\"button-046\">\n  <span class=\"button-046__bg\"><\/span>\n  <span class=\"button-046__bg-circle\">\n    <span data-button-046-circle=\"\" class=\"button-046__circle-wrap\">\n      <span class=\"button-046__circle\"><\/span>\n    <\/span>\n  <\/span>\n  <span class=\"button-046__inner\">\n    <span class=\"button-046__text\">Ve\u010d o podjetju<\/span>\n  <\/span>\n<\/a>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2853e2e e-con-full e-flex e-con e-parent\" data-id=\"2853e2e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55239e5 elementor-widget elementor-widget-html\" data-id=\"55239e5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- HTML -->\n<!-- Step Wipe \u2014 brizganje\/ekstruzija plasti\u010dnih delov\n     Prilepi v Elementor \"HTML\" widget. Root nosi data-anm-step-wipe in\n     upravlja visok scroll track, ki ga JS izra\u010duna iz \u0161tevila korakov.\n     Deklarativni [data-anm-stw-steps] blok je skrit \u2014 JS iz njega ob\n     inicializaciji zgradi sticky stage (samo bg layer + progress + title\n     grid + number roller + opis + CTA gumb \u2014 brez centralne \"card\" slike). -->\n\n<section class=\"stw_wrap\" data-anm-step-wipe\n  data-anm-duration=\"0.9\"\n  data-anm-ease=\"expo.out\"\n  data-anm-stagger=\"0.00875\"\n  data-anm-step-height=\"100\"\n  data-anm-zoom=\"1.1\">\n\n  <div class=\"stw_steps\" data-anm-stw-steps hidden>\n    <div data-anm-stw-step\n      data-title=\"Brizganje delov iz plasti\u010dnih mas\"\n      data-number=\"01\"\n      data-desc=\"Z brizganjem plasti\u010dnih mas izdelujemo natan\u010dne, ponovljive dele v velikih serijah, od enostavnih komponent do kompleksnih geometrij z ozkimi tolerancami, prilagojenih zahtevam avtomobilske industrije.\"\n      data-bg=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/08\/Stroji-plastika-_-1.1_converted.avif\"\n      data-link=\"https:\/\/tbp.si\/brizganje-delov-iz-plasticnih-mas\/\"\n      data-link-text=\"Preberi ve\u010d\"><\/div>\n\n    <div data-anm-stw-step\n      data-title=\"Nabrizgavanje delov iz plasti\u010dnih mas\"\n      data-number=\"02\"\n      data-desc=\"Z nabrizgavanjem plastiko neposredno ve\u017eemo na kovinske ali plasti\u010dne vlo\u017eke in tako v enem koraku ustvarimo sestavljene dele z bolj\u0161o mehansko trdnostjo, tesnjenjem ali estetiko brez dodatnega sestavljanja.\"\n      data-bg=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/08\/Stroj_2_converted.avif\"\n      data-link=\"https:\/\/tbp.si\/nabrizgavanje-delov-iz-plasticnih-mas\/\"\n      data-link-text=\"Preberi ve\u010d\"><\/div>\n\n    <div data-anm-stw-step\n      data-title=\"Ekstruzija\"\n      data-number=\"03\"\n      data-desc=\"Z ekstruzijo izdelujemo neprekinjene plasti\u010dne profile, cevi in za\u0161\u010ditne obloge konstantnega preseka, tehnologijo primerno za velike serije z natan\u010dnimi dimenzijami in ponovljivimi mehanskimi lastnostmi.\"\n      data-bg=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/08\/Stroj-1_converted.avif\"\n      data-link=\"https:\/\/tbp.si\/ekstruzija\/\"\n      data-link-text=\"Preberi ve\u010d\"><\/div>\n\n    <div data-anm-stw-step\n      data-title=\"Sklopi\"\n      data-number=\"04\"\n      data-desc=\"Posamezne komponente ro\u010dno in strojno sestavljamo v kon\u010dne sklope, pri \u010demer vsak korak spremljamo s kontrolo kakovosti, da zagotovimo skladnost z risbami in funkcionalnimi zahtevami naro\u010dnika.\"\n      data-bg=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/08\/Sestavljanje-rocno_converted.avif\"\n      data-link=\"https:\/\/tbp.si\/sklopi\/\"\n      data-link-text=\"Preberi ve\u010d\"><\/div>\n\n    <div data-anm-stw-step\n      data-title=\"Bovdni in \u017ei\u010dni potegi\"\n      data-number=\"05\"\n      data-desc=\"Izdelujemo bovdne in \u017ei\u010dne potege za prenos mehanske sile ali gibanja v vozilih, napravah in industrijski opremi, od izbire jedra in ovoja do kon\u010dne monta\u017ee in testiranja obremenitev.\"\n      data-bg=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/08\/Avtomatsko-sestavljanje_converted.avif\"\n      data-link=\"https:\/\/tbp.si\/bovdni-in-zicni-potegi\/\"\n      data-link-text=\"Preberi ve\u010d\"><\/div>\n\n    <div data-anm-stw-step\n      data-title=\"Ogrevanje\"\n      data-number=\"06\"\n      data-desc=\"Razvijamo in izdelujemo grelne elemente ter sklope za ogrevanje, prilagojene specifi\u010dnim zahtevam naro\u010dnika glede mo\u010di, oblike vgradnje in odpornosti na obratovalne pogoje.\"\n      data-bg=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/07\/2288_converted.avif\"\n      data-link=\"https:\/\/tbp.si\/ogrevanje\/\"\n      data-link-text=\"Preberi ve\u010d\"><\/div>\n  <\/div>\n\n  <!-- Sticky stage: JS zgradi bg layer stack, progress line, spodnjo\n       vrstico (levi stolpec: naslov + opis \/ desni stolpec: CTA) in\n       \u0161tevilko koraka (zgoraj desno, kot transparenten overlay). Mobile\n       (media query) razporedi enako sceno, samo v en stolpec. -->\n  <div class=\"stw_stage\" data-anm-stw-stage><\/div>\n\n<\/section>\n\n<style>\n\/* Step Wipe \u2014 Section component (brez centralne \"card\" slike)\n   Visok scroll track poganja sticky, full-viewport sceno. Vsak scroll\n   segment \"obri\u0161e\" novo ozadje preko stati\u010dnega clip-path template-a,\n   gnanega z CSS custom property (nikoli ne tween-amo clip-path stringa\n   samega). Naslov, \u0161tevilka koraka in opis se zamenjajo z maskiranim\n   reveal-om na vsaki meji koraka. CTA gumb (button-046, definiran\n   globalno na strani) se fade\/slide zamenja skupaj z opisom.\n   No Webflow \u2014 CSS variables dovoljeno. *\/\n\n\/* ---- Tokens ---- *\/\n.stw_wrap {\n  --stw-bg:      #0a0a0a;\n  --stw-fg:      rgba(255, 255, 255, 0.92);\n  --stw-fg-soft: rgba(255, 255, 255, 0.78);\n  --stw-line:    rgba(255, 255, 255, 0.18);\n  --stw-fill:    rgba(255, 255, 255, 0.85);\n  --stw-margin:  40px;\n  --stw-sans:    \"Eurostile\", \"Swiss721\", \"Arial Narrow\", Arial, sans-serif;\n}\n\n\/* ---- Root: visok scroll track. JS zapi\u0161e --stw-track-h glede na\n   dejansko \u0161tevilo korakov x data-anm-step-height (vh na korak) + en\n   dodaten viewport, da se zadnji korak povsem umiri, preden se track kon\u010da. ---- *\/\n.stw_wrap {\n  position: relative;\n  width: 100%;\n  height: var(--stw-track-h, 500vh);\n  font-family: var(--stw-sans);\n  -webkit-font-smoothing: antialiased;\n  background: var(--stw-bg);\n}\n\n.stw_steps {\n  display: none;\n}\n\n\/* ---- Sticky stage ---- *\/\n.stw_stage {\n  position: sticky;\n  top: 0;\n  width: 100%;\n  height: 100vh;\n  overflow: hidden;\n  background: var(--stw-bg);\n}\n\n\/* ---- Background layers: cover + zoomed + potemnjeno, en na korak,\n   nalo\u017eeni eden na drugega in obrezani od zgoraj navzdol preko\n   CSS-var-driven inset-a. Wrapper je svoj stacking context, da noben\n   layer ne more po pomoti pristati nad progress\/title\/desc plastjo. ---- *\/\n.stw_bg {\n  position: absolute;\n  inset: 0;\n  z-index: 1;\n}\n\n.stw_bg_layer {\n  position: absolute;\n  inset: 0;\n  clip-path: inset(0% 0% calc(var(--stw-clip, 0) * 1%) 0%);\n}\n\n.stw_bg_img {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  transform: scale(var(--stw-zoom, 1.1));\n  transform-origin: 50% 50%;\n  filter: brightness(0.85) saturate(1);\n}\n\n\/* ---- Spodnji gradient overlay: temno spodaj proti transparentno navzgor,\n   pokriva spodnjih 30% viewporta, mix-blend-mode: multiply za naravnej\u0161e\n   potemnitev ozadja (ne prekrije texta, ker je ni\u017eje v z-indexu). ---- *\/\n.stw_bottom_overlay {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 30vh;\n  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 100%);\n  mix-blend-mode: multiply;\n  z-index: 2;\n  pointer-events: none;\n}\n\n\/* ---- Progress line, top ---- *\/\n.stw_progress {\n  position: absolute;\n  top: 28px;\n  left: var(--stw-margin);\n  right: var(--stw-margin);\n  height: 1px;\n  background: var(--stw-line);\n  z-index: 3;\n}\n\n.stw_progress_fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background: var(--stw-fill);\n  transform: scaleX(0);\n  transform-origin: left center;\n}\n\n\/* ---- \u0160tevilka koraka, zgoraj desno \u2014 velika, te\u017eja in transparentna,\n   da deluje kot rahel overlay nad ozadjem (ne kot glavni tekstovni element). ---- *\/\n.stw_number {\n  position: absolute;\n  top: 40px;\n  right: var(--stw-margin);\n  font-size: 220px;\n  font-weight: 700;\n  letter-spacing: -0.02em;\n  line-height: 1;\n  color: var(--stw-fg);\n  opacity: 0.22;\n  z-index: 2;\n  pointer-events: none;\n}\n\n.stw_digit_wrap {\n  position: relative;\n  display: inline-block;\n  overflow: hidden;\n  height: 1em;\n  width: 0.62em;\n  vertical-align: top;\n}\n\n.stw_digit_roller {\n  position: absolute;\n  left: 0;\n  top: 0;\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  will-change: transform;\n}\n\n.stw_digit_roller span {\n  display: block;\n  height: 1em;\n  line-height: 1;\n  text-align: center;\n}\n\n\/* ---- Spodnja vrstica: levi stolpec (naslov + opis) + desni stolpec\n   (samo CTA gumb), poravnano na dno stage-a. ---- *\/\n.stw_bottom {\n  position: absolute;\n  left: var(--stw-margin);\n  right: var(--stw-margin);\n  bottom: 80px;\n  z-index: 3;\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n  gap: 48px;\n}\n\n.stw_left_col {\n  \/* \u0160irina uravnava, v koliko vrstic prelomi opis (glej .stw_desc spodaj).\n     Nastavljeno za ~3 vrstice pri trenutnih dol\u017einah besedila \u2014 \u010de se\n     besedilo po korakih precej razlikuje po dol\u017eini, popravi to vrednost. *\/\n  max-width: 980px;\n}\n\n\/* ---- Naslov: en sam element na istem mestu - prej\u0161nji izgine, naslednji\n   pride na njegovo mesto (brez stolpcev). ---- *\/\n.stw_titles {\n  position: relative;\n  z-index: 3;\n  pointer-events: none;\n  margin-bottom: 14px;\n}\n\n.stw_title {\n  position: relative;\n  font-size: 58px;\n  font-weight: 600;\n  letter-spacing: -0.04em;\n  line-height: 1.1;\n  color: var(--stw-fg);\n}\n\n.stw_title_line {\n  position: relative;\n  display: inline-block;\n  overflow-x: visible;\n  overflow-y: hidden;\n  padding-bottom: 0.2em;\n  margin-bottom: -0.2em;\n}\n\n.stw_title_char {\n  position: relative;\n  display: inline-block;\n  will-change: transform;\n}\n\n\/* ---- Opis, pod naslovom v levem stolpcu ---- *\/\n.stw_desc_wrap {\n  position: relative;\n}\n\n.stw_desc {\n  margin: 0;\n  font-size: 20px;\n  font-weight: 380;\n  line-height: 150%;\n  color: var(--stw-fg-soft);\n  pointer-events: none;\n}\n\n\/* Vrstice pridejo iz SplitText (type + mask 'lines'); mask wrapper skrbi\n   za overflow clipping, ta razred je samo tween target. *\/\n.stw_desc_line {\n  position: relative;\n  will-change: transform;\n}\n\n\/* ---- CTA, svoj stolpec \u010disto na desni, poravnan na dno ---- *\/\n.stw_cta_wrap {\n  flex-shrink: 0;\n  z-index: 3;\n}\n\n.stw_cta {\n  margin-top: 0;\n}\n\n\/* ---- Mobile: ISTA koreografija in scena, samo prerazporejena v en\n   stolpec. Naslov + opis + CTA se zlo\u017eijo pod seboj, \u0161tevilka ostane\n   zgoraj desno kot manj\u0161i overlay. ---- *\/\n@media (max-width: 767px) {\n  .stw_wrap {\n    --stw-margin: 20px;\n  }\n\n  \/* FIX: na nekaterih temah\/Elementor setupih obstaja globalno pravilo\n     tipa `img { max-width:100%; height:auto }` (responsive-image reset),\n     ki na mobilnem prepi\u0161e width\/height\/object-fit spodaj in slika se\n     prika\u017ee po svojem naravnem razmerju (samo zgornji del scene) namesto\n     raztegnjena \u010dez cel 100vh stage. !important tu prisili prevlado nad\n     takim temskim pravilom, ne glede na njegovo specifi\u010dnost. Desktop\n     pravilo (.stw_bg_img zgoraj) ostane nedotaknjeno. *\/\n  .stw_bg_img {\n    width: 100% !important;\n    height: 100% !important;\n    max-width: none !important;\n    max-height: none !important;\n    object-fit: cover !important;\n  }\n\n  .stw_number {\n    top: 40px;\n    font-size: 100px;\n    opacity: 0.25;\n  }\n\n  .stw_bottom {\n    bottom: 24px;\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 18px;\n  }\n\n  .stw_left_col {\n    max-width: none;\n  }\n\n  .stw_title {\n    font-size: 36px;\n  }\n\n  .stw_desc {\n    font-size: 16px;\n    line-height:120%;\n  }\n  .stw_bottom_overlay {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  height: 60vh;\n  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 100%);\n  mix-blend-mode: multiply;\n  z-index: 2;\n  pointer-events: none;\n}\n}\n<\/style>\n\n<script>\n(function () {\n  'use strict';\n\n  function initStepWipe(container) {\n\n    \/\/ --- 1. Selektorji ---\n    const stepsData = container.querySelector('[data-anm-stw-steps]');\n    const stage      = container.querySelector('[data-anm-stw-stage]');\n    const stepEls    = stepsData ? Array.from(stepsData.querySelectorAll('[data-anm-stw-step]')) : [];\n\n    if (!stage || !stepEls.length) return;\n\n    \/\/ --- 2. Config ---\n    const duration    = parseFloat(container.dataset.anmDuration || '0.9');\n    const ease        = container.dataset.anmEase || 'expo.out';\n    const staggerBase = parseFloat(container.dataset.anmStagger || '0.00875');\n    const stepHeight  = parseFloat(container.dataset.anmStepHeight || '100');\n    const zoom        = parseFloat(container.dataset.anmZoom || '1.1');\n\n    container.style.setProperty('--stw-zoom', String(zoom));\n\n    \/\/ --- 3. Konstante ---\n    const EXIT_DUR       = 0.5;\n    const EXIT_EASE      = 'power2.in';\n    const CHAR_STAGGER    = staggerBase;\n    const LINE_STAGGER    = staggerBase * 9.14;\n    const SWAP_UP         = 0.75; \/\/ scroll navzdol: tekst zamenja pri 75% wipe-a\n    const SWAP_DOWN       = 0.25; \/\/ scroll nazaj: zamenja nazaj pri 25%\n    const TITLE_DUR       = 1.2;\n    const TITLE_EXIT_DUR  = 0.65;\n    const DIGIT_DUR_IN    = 0.8;\n    const DIGIT_DUR_OUT   = 0.35;\n    const CTA_DUR         = 0.4;\n\n    \/\/ --- 4. State ---\n    const steps = stepEls.map(function (el) {\n      return {\n        title: el.dataset.title || '',\n        number: el.dataset.number || '',\n        desc: el.dataset.desc || '',\n        bg: el.dataset.bg || '',\n        link: el.dataset.link || '#',\n        linkText: el.dataset.linkText || 'Preberi ve\u010d',\n      };\n    });\n\n    let scrubTl = null;\n    let currentIndex = -1;\n    let refs = null;\n    let descExitEl = null;\n    let titleExitEl = null;\n\n    \/\/ --- 5. Helperji ---\n\n    function splitTitleChars(titleEl, text) {\n      titleEl.innerHTML = '';\n      const line = document.createElement('span');\n      line.className = 'stw_title_line';\n      text.split('').forEach(function (ch) {\n        const span = document.createElement('span');\n        span.className = 'stw_title_char';\n        span.textContent = ch === ' ' ? '\\u00A0' : ch;\n        line.appendChild(span);\n      });\n      titleEl.appendChild(line);\n      return Array.from(line.querySelectorAll('.stw_title_char'));\n    }\n\n    function buildDescLines(descEl, lineTexts) {\n      descEl.innerHTML = '';\n      return lineTexts.map(function (text) {\n        const mask = document.createElement('span');\n        mask.style.display = 'block';\n        mask.style.overflow = 'hidden';\n        const inner = document.createElement('span');\n        inner.className = 'stw_desc_line';\n        inner.style.display = 'block';\n        inner.textContent = text;\n        mask.appendChild(inner);\n        descEl.appendChild(mask);\n        return inner;\n      });\n    }\n\n    function setClip(layer, value) {\n      if (value <= 0) {\n        layer.style.clipPath = 'none';\n        layer.style.visibility = '';\n      } else if (value >= 100) {\n        layer.style.clipPath = '';\n        layer.style.visibility = 'hidden';\n        layer.style.setProperty('--stw-clip', '101');\n      } else {\n        layer.style.clipPath = '';\n        layer.style.visibility = '';\n        layer.style.setProperty('--stw-clip', String(value));\n      }\n    }\n\n    function buildDigitColumn(digitChar) {\n      const wrap = document.createElement('span');\n      wrap.className = 'stw_digit_wrap';\n      const roller = document.createElement('span');\n      roller.className = 'stw_digit_roller';\n      for (let d = 0; d <= 9; d++) {\n        const s = document.createElement('span');\n        s.textContent = String(d);\n        roller.appendChild(s);\n      }\n      wrap.appendChild(roller);\n      wrap._targetY = -parseInt(digitChar, 10) * 1 + 'em';\n      wrap._roller = roller;\n      return wrap;\n    }\n\n    function remeasureDesc() {\n      if (!refs || currentIndex < 0) return;\n      steps.forEach(function (step) {\n        refs.descEl.textContent = step.desc;\n        const split = SplitText.create(refs.descEl, { type: 'lines' });\n        step._descLines = split.lines.map(function (l) { return l.textContent; });\n        split.revert();\n      });\n      const lines = buildDescLines(refs.descEl, steps[currentIndex]._descLines);\n      gsap.set(lines, { yPercent: 0, y: 0 });\n    }\n\n    function setCta(step) {\n      refs.ctaEl.setAttribute('href', step.link);\n      const textEl = refs.ctaEl.querySelector('.button-046__text');\n      if (textEl) textEl.textContent = step.linkText;\n    }\n\n    \/\/ --- 6. Animacijske rutine ---\n\n    \/\/ Zgradi celotno desktop DOM strukturo enkrat: N bg layer-jev, progress,\n    \/\/ \u0161tevilko (zgoraj desno) in spodnjo vrstico z dvema stolpcema \u2014 levi\n    \/\/ (naslov + opis), desni (CTA gumb, button-046 \u2014 globalno definiran na\n    \/\/ strani, tu samo ponovno uporabljen).\n    function buildStage() {\n      stage.innerHTML = '';\n\n      const progress = document.createElement('div');\n      progress.className = 'stw_progress';\n      const progressFill = document.createElement('div');\n      progressFill.className = 'stw_progress_fill';\n      progress.appendChild(progressFill);\n\n      const numberEl = document.createElement('div');\n      numberEl.className = 'stw_number';\n\n      const bottom = document.createElement('div');\n      bottom.className = 'stw_bottom';\n\n      const leftCol = document.createElement('div');\n      leftCol.className = 'stw_left_col';\n\n      const titles = document.createElement('div');\n      titles.className = 'stw_titles';\n      const titleEl = document.createElement('h3');\n      titleEl.className = 'stw_title';\n      titles.appendChild(titleEl);\n\n      const descWrap = document.createElement('div');\n      descWrap.className = 'stw_desc_wrap';\n      const descEl = document.createElement('p');\n      descEl.className = 'stw_desc';\n      descWrap.appendChild(descEl);\n\n      leftCol.appendChild(titles);\n      leftCol.appendChild(descWrap);\n\n      const ctaWrap = document.createElement('div');\n      ctaWrap.className = 'stw_cta_wrap';\n      const ctaEl = document.createElement('a');\n      ctaEl.className = 'stw_cta button-046';\n      ctaEl.setAttribute('data-button-046', '');\n      ctaEl.setAttribute('data-theme', 'outline');\n      ctaEl.innerHTML =\n        '<span class=\"button-046__bg\"><\/span>' +\n        '<span class=\"button-046__bg-circle\">' +\n          '<span data-button-046-circle=\"\" class=\"button-046__circle-wrap\">' +\n            '<span class=\"button-046__circle\"><\/span>' +\n          '<\/span>' +\n        '<\/span>' +\n        '<span class=\"button-046__inner\">' +\n          '<span class=\"button-046__text\"><\/span>' +\n        '<\/span>';\n      ctaWrap.appendChild(ctaEl);\n\n      bottom.appendChild(leftCol);\n      bottom.appendChild(ctaWrap);\n\n      const bgWrap = document.createElement('div');\n      bgWrap.className = 'stw_bg';\n\n      const bgLayers = steps.map(function (step, i) {\n        const layer = document.createElement('div');\n        layer.className = 'stw_bg_layer';\n        setClip(layer, i === 0 ? 0 : 100);\n        layer.style.zIndex = String(i);\n        const img = document.createElement('img');\n        img.className = 'stw_bg_img';\n        img.src = step.bg;\n        img.alt = step.title;\n        layer.appendChild(img);\n        bgWrap.appendChild(layer);\n        return layer;\n      });\n\n      const bottomOverlay = document.createElement('div');\n      bottomOverlay.className = 'stw_bottom_overlay';\n\n      stage.appendChild(bgWrap);\n      stage.appendChild(bottomOverlay);\n      stage.appendChild(progress);\n      stage.appendChild(numberEl);\n      stage.appendChild(bottom);\n\n      refs = {\n        bgLayers: bgLayers,\n        titleEl: titleEl,\n        numberEl: numberEl,\n        descEl: descEl,\n        ctaEl: ctaEl,\n        progressFill: progressFill,\n      };\n\n      \/\/ Vrstice opisa za VSE korake izmerimo (SplitText) samo enkrat, tu -\n      \/\/ gre skozi enega samega descEl (\u017ee pripet v live DOM, torej pravilna\n      \/\/ \u0161irina\/font), za vsak korak posebej izmeri prelome vrstic in jih\n      \/\/ shrani kot golo besedilo. Na swap-u nato NE kli\u010demo ve\u010d SplitText -\n      \/\/ samo iz cache-a zgradimo lahke <span> ovojnice (buildDescLines).\n      steps.forEach(function (step) {\n        descEl.textContent = step.desc;\n        const split = SplitText.create(descEl, { type: 'lines' });\n        step._descLines = split.lines.map(function (l) { return l.textContent; });\n        split.revert();\n      });\n      descEl.textContent = '';\n\n      settleStep0();\n    }\n\n    function settleStep0() {\n      const step = steps[0];\n      const chars = splitTitleChars(refs.titleEl, step.title);\n      gsap.set(chars, { yPercent: 0, y: 0 });\n\n      refs.numberEl.innerHTML = '';\n      step.number.split('').forEach(function (ch) {\n        const col = buildDigitColumn(ch);\n        gsap.set(col._roller, { y: col._targetY });\n        refs.numberEl.appendChild(col);\n      });\n\n      const lines = buildDescLines(refs.descEl, step._descLines);\n      gsap.set(lines, { yPercent: 0 });\n\n      setCta(step);\n      gsap.set(refs.ctaEl, { opacity: 1, y: 0 });\n\n      currentIndex = 0;\n    }\n\n    function swapTo(newIndex, direction) {\n      if (newIndex === currentIndex || newIndex < 0 || newIndex >= steps.length) return;\n      const outIndex = currentIndex;\n      currentIndex = newIndex;\n      const step = steps[newIndex];\n\n      \/\/ --- naslov: en sam element na istem mestu - prej\u0161nji izgine (kot\n      \/\/ klon, da lahko izginja hkrati z vstopom novega), naslednji pride ---\n      if (titleExitEl) { titleExitEl.remove(); titleExitEl = null; }\n      if (refs.titleEl.querySelector('.stw_title_char')) {\n        const clone = refs.titleEl.cloneNode(true);\n        clone.setAttribute('aria-hidden', 'true');\n        clone.style.position = 'absolute';\n        clone.style.top = '0';\n        clone.style.left = '0';\n        refs.titleEl.parentNode.appendChild(clone);\n        titleExitEl = clone;\n        const outChars = Array.from(clone.querySelectorAll('.stw_title_char'));\n        gsap.to(outChars, {\n          yPercent: direction > 0 ? -100 : 120,\n          y: 0,\n          duration: TITLE_EXIT_DUR,\n          ease: 'expo.inOut',\n          stagger: CHAR_STAGGER,\n          force3D: true,\n          onComplete: function () {\n            if (titleExitEl === clone) titleExitEl = null;\n            clone.remove();\n          },\n        });\n      }\n\n      const inChars = splitTitleChars(refs.titleEl, step.title);\n      gsap.fromTo(inChars,\n        { yPercent: direction > 0 ? 120 : -100, y: 0 },\n        { yPercent: 0, y: 0, duration: TITLE_DUR, ease: 'expo.inOut', stagger: CHAR_STAGGER, force3D: true, overwrite: true }\n      );\n\n      \/\/ --- number roller ---\n      const oldDigits = Array.from(refs.numberEl.querySelectorAll('.stw_digit_wrap'));\n      const newDigits = step.number.split('');\n\n      if (oldDigits.length === newDigits.length) {\n        oldDigits.forEach(function (col, i) {\n          const target = -parseInt(newDigits[i], 10) + 'em';\n          col._targetY = target;\n          gsap.to(col._roller, {\n            y: target,\n            duration: DIGIT_DUR_IN,\n            ease: 'expo.inOut',\n            force3D: true,\n            overwrite: true,\n          });\n        });\n      } else {\n        gsap.to(refs.numberEl, {\n          opacity: 0,\n          duration: DIGIT_DUR_OUT,\n          onComplete: function () {\n            refs.numberEl.innerHTML = '';\n            newDigits.forEach(function (ch) {\n              const col = buildDigitColumn(ch);\n              gsap.set(col._roller, { y: col._targetY });\n              refs.numberEl.appendChild(col);\n            });\n            gsap.to(refs.numberEl, { opacity: 1, duration: DIGIT_DUR_IN });\n          },\n        });\n      }\n\n      \/\/ --- opis ---\n      if (descExitEl) { descExitEl.remove(); descExitEl = null; }\n      if (refs.descEl.querySelector('.stw_desc_line')) {\n        const clone = refs.descEl.cloneNode(true);\n        clone.setAttribute('aria-hidden', 'true');\n        \/\/ position: absolute, da klon le\u017ei \u010dez original brez vpliva na\n        \/\/ layout okoli sebe - prej je bil v normalen flow, kar je pri\n        \/\/ dalj\u0161em besedilu za trenutek podvojilo vi\u0161ino bloka (potisnilo\n        \/\/ CTA gumb) in sililo brskalnik v reflow na vsakem swap-u.\n        clone.style.position = 'absolute';\n        clone.style.top = '0';\n        clone.style.left = '0';\n        clone.style.width = '100%';\n        refs.descEl.parentNode.appendChild(clone);\n        descExitEl = clone;\n        gsap.to(clone.querySelectorAll('.stw_desc_line'), {\n          yPercent: direction > 0 ? -100 : 100,\n          y: 0,\n          duration: EXIT_DUR * 0.8,\n          ease: EXIT_EASE,\n          stagger: LINE_STAGGER,\n          force3D: true,\n          onComplete: function () {\n            if (descExitEl === clone) descExitEl = null;\n            clone.remove();\n          },\n        });\n      }\n\n      const newLines = buildDescLines(refs.descEl, step._descLines);\n      gsap.fromTo(newLines,\n        { yPercent: direction > 0 ? 100 : -100, y: 0 },\n        { yPercent: 0, y: 0, duration: duration, ease: ease, stagger: LINE_STAGGER, delay: 0.3, force3D: true, overwrite: true }\n      );\n\n      \/\/ --- CTA gumb: fade + rahel premik, href\/text se zamenjata na dnu ---\n      gsap.to(refs.ctaEl, {\n        opacity: 0,\n        y: direction > 0 ? -8 : 8,\n        duration: CTA_DUR,\n        ease: EXIT_EASE,\n        overwrite: true,\n        onComplete: function () {\n          setCta(step);\n          gsap.fromTo(refs.ctaEl,\n            { y: direction > 0 ? 8 : -8 },\n            { opacity: 1, y: 0, duration: CTA_DUR, ease: ease, delay: 0.2 }\n          );\n        },\n      });\n    }\n\n    \/\/ --- 7. Track height ---\n    function computeTrackHeight() {\n      const vh = window.innerHeight || document.documentElement.clientHeight;\n      container.style.setProperty('--stw-track-h', ((steps.length * stepHeight + 100) \/ 100 * vh) + 'px');\n    }\n\n    \/\/ Nekateri teme\/plugin setupi (npr. ta stran) dajo <body> svoj\n    \/\/ overflow-y: auto, kar ga naredi za dejanski scroll container namesto\n    \/\/ window-a. ScrollTrigger privzeto poslu\u0161a window scroll, zato v takem\n    \/\/ primeru njegovi izra\u010duni ne sledijo dejanskemu scrollu strani in ni\u010d\n    \/\/ se ne spro\u017ei pravilno. Tu to zaznamo in ScrollTrigger-ju povemo pravi\n    \/\/ scroller.\n    function detectScroller() {\n      const bodyStyle = window.getComputedStyle(document.body);\n      const bodyScrolls = (bodyStyle.overflowY === 'auto' || bodyStyle.overflowY === 'scroll')\n        && document.body.scrollHeight > document.body.clientHeight + 1;\n      if (bodyScrolls) return document.body;\n\n      const htmlStyle = window.getComputedStyle(document.documentElement);\n      const htmlScrolls = (htmlStyle.overflowY === 'auto' || htmlStyle.overflowY === 'scroll')\n        && document.documentElement.scrollHeight > document.documentElement.clientHeight + 1;\n      if (htmlScrolls) return document.documentElement;\n\n      return window;\n    }\n\n    function setupDesktop() {\n      buildStage();\n      computeTrackHeight();\n\n      const segCount = steps.length - 1;\n      if (segCount <= 0) return;\n\n      const scroller = detectScroller();\n      const prox = { p: 0 };\n\n      function applyProgress() {\n        gsap.set(refs.progressFill, { scaleX: prox.p });\n\n        const segProgress = prox.p * segCount;\n        const segIndex = Math.min(Math.floor(segProgress), segCount - 1);\n        const localT = segProgress - segIndex;\n\n        const toLayerBg = refs.bgLayers[segIndex + 1];\n\n        if (toLayerBg) {\n          const clipValue = (1 - localT) * 100;\n          setClip(toLayerBg, clipValue);\n        }\n\n        refs.bgLayers.forEach(function (layer, i) {\n          if (i <= segIndex) setClip(layer, 0);\n          else if (i > segIndex + 1) setClip(layer, 100);\n        });\n\n        let nextStepIndex;\n        if (currentIndex <= segIndex) {\n          nextStepIndex = localT >= SWAP_UP ? segIndex + 1 : segIndex;\n        } else {\n          nextStepIndex = localT < SWAP_DOWN ? segIndex : segIndex + 1;\n        }\n        if (nextStepIndex !== currentIndex) {\n          swapTo(nextStepIndex, nextStepIndex > currentIndex ? 1 : -1);\n        }\n      }\n\n      scrubTl = gsap.timeline({\n        scrollTrigger: {\n          trigger: container,\n          scroller: scroller,\n          start: 'top top',\n          end: 'bottom bottom',\n          scrub: 0.8,\n          invalidateOnRefresh: true,\n        },\n      });\n      scrubTl.to(prox, { p: 1, duration: 1, ease: 'none', onUpdate: applyProgress });\n    }\n\n    \/\/ --- 8. Reduced motion ---\n    gsap.matchMedia().add('(prefers-reduced-motion: reduce)', function () {\n      gsap.globalTimeline.timeScale(20);\n    });\n\n    setupDesktop();\n\n    let resizeTimer = null;\n    function handleResize() {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(function () {\n        computeTrackHeight();\n        remeasureDesc();\n        ScrollTrigger.refresh();\n      }, 150);\n    }\n    window.addEventListener('resize', handleResize);\n\n    if (document.fonts && document.fonts.ready) {\n      document.fonts.ready.then(function () { remeasureDesc(); });\n    }\n\n    function handleVisibility() {\n      if (document.hidden) gsap.globalTimeline.pause();\n      else gsap.globalTimeline.resume();\n    }\n    document.addEventListener('visibilitychange', handleVisibility);\n\n    \/\/ --- 9. Public API ---\n    return {\n      refresh: function () {\n        computeTrackHeight();\n        ScrollTrigger.refresh();\n      },\n      kill: function () {\n        window.removeEventListener('resize', handleResize);\n        document.removeEventListener('visibilitychange', handleVisibility);\n        if (descExitEl) { descExitEl.remove(); descExitEl = null; }\n        if (titleExitEl) { titleExitEl.remove(); titleExitEl = null; }\n        if (scrubTl) { scrubTl.kill(); scrubTl = null; }\n        ScrollTrigger.getAll().forEach(function (st) { if (st.trigger === container) st.kill(); });\n      },\n    };\n  }\n\n  \/\/ --- Nalaganje GSAP core + ScrollTrigger + SplitText preko CDN-ja ---\n  \/\/ Od GSAP 3.13 naprej so vsi \"Club\" pluginy (vklju\u010dno s SplitText) prosto\n  \/\/ dostopni tudi preko javnega CDN-ja, brez licence. \u010ce je gsap na strani\n  \/\/ \u017ee nalo\u017een drugje (druga komponenta ga je dodala prva), se ne nalo\u017ei\n  \/\/ \u0161e enkrat - loadScript to preveri preko data-anm-src atributa.\n  function loadScript(src, cb) {\n    var already = document.querySelector('script[data-anm-src=\"' + src + '\"]');\n    if (already) {\n      if (already.getAttribute('data-anm-loaded') === '1') { cb(); }\n      else { already.addEventListener('load', cb); }\n      return;\n    }\n    var s = document.createElement('script');\n    s.src = src;\n    s.setAttribute('data-anm-src', src);\n    s.onload = function () {\n      s.setAttribute('data-anm-loaded', '1');\n      cb();\n    };\n    s.onerror = function () {\n      console.error('[Annnimate] Ni uspelo nalo\u017eiti: ' + src);\n    };\n    document.head.appendChild(s);\n  }\n\n  function ensureGSAP(cb) {\n    \/\/ Nikoli ne prenalagamo gsap.min.js, \u010de je \"gsap\" \u017ee globalno prisoten\n    \/\/ (npr. iz druge komponente na strani) - ponovni core script bi\n    \/\/ prepisal window.gsap in odtrgal \u017ee registrirane pluginje (ScrollTrigger\n    \/\/ itd.) od starega core-a, kar tiho pokvari obstoje\u010de animacije na strani.\n    \/\/ Manjkajo\u010de pluginje samo \"pripnemo\" na obstoje\u010di core.\n    function loadCoreIfMissing(next) {\n      if (typeof gsap !== 'undefined') { next(); return; }\n      loadScript('https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.13.0\/dist\/gsap.min.js', next);\n    }\n    function loadScrollTriggerIfMissing(next) {\n      if (typeof ScrollTrigger !== 'undefined') { next(); return; }\n      loadScript('https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.13.0\/dist\/ScrollTrigger.min.js', next);\n    }\n    function loadSplitTextIfMissing(next) {\n      if (typeof SplitText !== 'undefined') { next(); return; }\n      loadScript('https:\/\/cdn.jsdelivr.net\/npm\/gsap@3.13.0\/dist\/SplitText.min.js', next);\n    }\n\n    loadCoreIfMissing(function () {\n      loadScrollTriggerIfMissing(function () {\n        loadSplitTextIfMissing(cb);\n      });\n    });\n  }\n\n  ensureGSAP(function () {\n    if (typeof gsap === 'undefined' || typeof ScrollTrigger === 'undefined' || typeof SplitText === 'undefined') {\n      console.error('[Annnimate] gsap\/ScrollTrigger\/SplitText se niso pravilno nalo\u017eili.');\n      return;\n    }\n    gsap.registerPlugin(ScrollTrigger, SplitText);\n    const instances = [];\n    document.querySelectorAll('[data-anm-step-wipe]').forEach(function (el) {\n      const api = initStepWipe(el);\n      if (api) instances.push(api);\n    });\n    window.Anm = window.Anm || {};\n    window.Anm.StepWipe = {\n      refresh: function () { instances.forEach(function (i) { i.refresh(); }); },\n      kill: function () { instances.forEach(function (i) { i.kill(); }); },\n    };\n  });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b69c2e9 e-con-full e-flex e-con e-parent\" data-id=\"b69c2e9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58c7591 elementor-widget elementor-widget-html\" data-id=\"58c7591\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  .tlm-services{\n    position:relative;\n    background:#0d1117;\n    color:#eef0f3;\n    font-family:\"Eurostile\",\"Swiss721\",\"Arial Narrow\",Arial,sans-serif;\n    --tlm-transition-extra: 0vh;\n  }\n\n  .tlm-service-wrap{\n    position:relative;\n    height:calc(100svh + var(--tlm-transition-extra));\n  }\n  .tlm-service-wrap:last-child{\n    height:100svh;\n  }\n\n  .tlm-service{\n    position:relative;\n    z-index:1;\n    display:flex;\n    align-items:flex-end;\n    width:100%;\n    height:100svh;\n    overflow:clip;\n    background:#0d1117;\n  }\n\n  \/* zamenjava za prej\u0161nji .tlm-service picture \u2014 dela za img IN video *\/\n  .tlm-service__media{\n    position:absolute;\n    inset:0;\n    z-index:-1;\n    background:#0d1117;\n  }\n  .tlm-service__media img,\n  .tlm-service__media video{\n    position:absolute;\n    inset:0;\n    display:block;\n    width:100%;\n    height:100%;\n    object-fit:cover;\n  }\n  .tlm-service__media video{\n    opacity:0;\n    transition:opacity .6s ease;\n  }\n  .tlm-service__media video.is-loaded{\n    opacity:1;\n  }\n\n  .tlm-service__overlay{\n    position:absolute;\n    inset:0;\n    z-index:0;\n    pointer-events:none;\n    background:linear-gradient(180deg, rgba(13,17,23,.1) 0%, rgba(13,17,23,.3) 55%, rgba(13,17,23,.92) 100%);\n  }\n\n  .tlm-service__content{\n    position:relative;\n    z-index:2;\n    width:100%;\n\n    display:flex;\n    align-items:flex-end;\n    justify-content:space-between;\n    gap:40px;\n    padding:0 60px 80px;\n    margin:0 auto;\n  }\n\n  .tlm-service__text{ max-width:1520px; }\n\n  .tlm-service__title{\n    font-size:clamp(34px,5.2vw,88px);\n    line-height:1.02;\n    font-weight:700;\n    letter-spacing:-.01em;\n    margin:0 0 20px;\n    color:#eef0f3;\n  }\n\n  .tlm-service__desc{\n    max-width:640px;\n    margin:0;\n    font-size:18px;\n    line-height:1.6;\n    color:#fff;\n  }\n\n  .tlm-service__cta{\n    display:inline-flex;\n    align-items:center;\n    gap:10px;\n    font-size:20px;\n    font-weight:700;\n    color:#eef0f3;\n    text-decoration:none;\n    white-space:nowrap;\n    border-bottom:1px solid transparent;\n    transition:border-color .25s ease, color .25s ease;\n  }\n  .tlm-service__cta:hover{color:#ffcb05;border-color:#ffcb05;}\n  .tlm-service__cta svg{width:16px;height:16px;transition:transform .25s ease;}\n  .tlm-service__cta:hover svg{transform:translate(3px,-3px);}\n\n  @media (max-width:700px){\n    .tlm-service__content{padding:0 24px 56px;flex-direction:column;align-items:flex-start;gap:20px;}\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    .tlm-service__media{transform:none !important;}\n  }\n<\/style>\n\n<div class=\"tlm-services\" id=\"tlm-services\">\n\n  <div class=\"tlm-service-wrap\">\n    <section class=\"tlm-service\" data-index=\"01\">\n      <div class=\"tlm-service__media\">\n        <img decoding=\"async\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/07\/prozivodnja-plasticnih-delov-image-2.avif\" alt=\"\">\n      <\/div>\n      <div class=\"tlm-service__overlay\"><\/div>\n      <div class=\"tlm-service__content\">\n        <div class=\"tlm-service__text\">\n          <h2 class=\"tlm-service__title\">Proizvodnja plasti\u010dnih delov<\/h2>\n          <p class=\"tlm-service__desc\">Osredoto\u010damo se na proizvodnjo bovden potegov, ki omogo\u010dajo razli\u010dne funkcije v avtomobilih. Na\u0161 cilj je razvijati inovativne re\u0161itve na tem podro\u010dju, ki bodo izpolnjevale pri\u010dakovanja naj\u0161ir\u0161ega kroga strank.<\/p>\n        <\/div>\n        <a class=\"tlm-service__cta\" href=\"https:\/\/tbp.si\/brizganje-delov-iz-plasticnih-mas\/\">Zanima me ve\u010d\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/section>\n  <\/div>\n\n  <div class=\"tlm-service-wrap\">\n    <section class=\"tlm-service\" data-index=\"02\">\n      <div class=\"tlm-service__media\">\n        <img decoding=\"async\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/07\/ekstruzija-plasticnih-delov-image-2.avif\" alt=\"\">\n      <\/div>\n      <div class=\"tlm-service__overlay\"><\/div>\n      <div class=\"tlm-service__content\">\n        <div class=\"tlm-service__text\">\n          <h2 class=\"tlm-service__title\">Ekstruzija plasti\u010dnih delov<\/h2>\n          <p class=\"tlm-service__desc\">Z ekstruzijo izdelujemo neprekinjene plasti\u010dne profile, cevi in za\u0161\u010ditne obloge konstantnega preseka \u2014 tehnologijo, primerno za velike serije z natan\u010dnimi dimenzijami in ponovljivimi mehanskimi lastnostmi.<\/p>\n        <\/div>\n        <a class=\"tlm-service__cta\" href=\"https:\/\/tbp.si\/nabrizgavanje-delov-iz-plasticnih-mas\/\">Zanima me ve\u010d\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/section>\n  <\/div>\n\n  <div class=\"tlm-service-wrap\">\n    <section class=\"tlm-service\" data-index=\"03\">\n          <div class=\"tlm-service__media\">\n        <img decoding=\"async\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/07\/robotizirana-montaza-image-3.avif\" alt=\"\">\n      <\/div>\n      <div class=\"tlm-service__overlay\"><\/div>\n      <div class=\"tlm-service__content\">\n        <div class=\"tlm-service__text\">\n          <h2 class=\"tlm-service__title\">Robotizirana monta\u017ea<\/h2>\n          <p class=\"tlm-service__desc\">Robotizirana monta\u017ea omogo\u010da hitro, natan\u010dno in ponovljivo sestavljanje komponent v kon\u010dne izdelke. Zagotavljamo visoko produktivnost, doslednost kakovosti in dolgoro\u010dno zanesljivost celotnega procesa.<\/p>\n        <\/div>\n        <a class=\"tlm-service__cta\" href=\"https:\/\/tbp.si\/ekstruzija\/\">Zanima me ve\u010d\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/section>\n  <\/div>\n\n  <div class=\"tlm-service-wrap\">\n    <section class=\"tlm-service\" data-index=\"04\">\n      <div class=\"tlm-service__media\">\n        <img decoding=\"async\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/07\/strojegradnja-in-avtomatizacija-image-3.avif\" alt=\"\">\n      <\/div>\n      <div class=\"tlm-service__overlay\"><\/div>\n      <div class=\"tlm-service__content\">\n        <div class=\"tlm-service__text\">\n          <h2 class=\"tlm-service__title\">Strojegradnja in avtomatizacija<\/h2>\n          <p class=\"tlm-service__desc\">Razvijamo in izdelujemo namenske stroje, monta\u017ene naprave ter avtomatizirane proizvodne sisteme, prilagojene izdelku in procesu naro\u010dnika \u2014 od zasnove do zagona, z namenom ve\u010dje produktivnosti in sledljivosti.<\/p>\n        <\/div>\n        <a class=\"tlm-service__cta\" href=\"https:\/\/tbp.si\/sklopi\/\">Zanima me ve\u010d\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/section>\n  <\/div>\n\n  <div class=\"tlm-service-wrap\">\n    <section class=\"tlm-service\" data-index=\"05\">\n      <div class=\"tlm-service__media\">\n        <img decoding=\"async\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2026\/07\/2288_converted.avif\" alt=\"\">\n      <\/div>\n      <div class=\"tlm-service__overlay\"><\/div>\n      <div class=\"tlm-service__content\">\n        <div class=\"tlm-service__text\">\n          <h2 class=\"tlm-service__title\">Ogrevanje<\/h2>\n          <p class=\"tlm-service__desc\">Razvijamo in izdelujemo grelne elemente ter sisteme ogrevanja za avtomobilsko industrijo, pri \u010demer stavimo na energetsko u\u010dinkovitost, zanesljivo delovanje in dolgo \u017eivljenjsko dobo komponent.<\/p>\n        <\/div>\n        <a class=\"tlm-service__cta\" href=\"https:\/\/tbp.si\/bovdni-in-zicni-potegi\/\">Zanima me ve\u010d\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/section>\n  <\/div>\n\n<\/div>\n\n<script>\n(function(){\n  function init(){\n    if (typeof gsap === 'undefined' || typeof ScrollTrigger === 'undefined') {\n      console.warn('tlm-services: GSAP\/ScrollTrigger not found on page \u2014 add them once globally (Theme Settings \u2192 Custom Code) before this widget.');\n      return;\n    }\n    gsap.registerPlugin(ScrollTrigger);\n\n    var reduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    var wraps = gsap.utils.toArray('#tlm-services .tlm-service-wrap');\n    var services = wraps.map(function(w){ return w.querySelector('.tlm-service'); });\n\n    services.forEach(function(service, i){\n      var wrap = wraps[i];\n      var media = service.querySelector('.tlm-service__media'); \/\/ deluje za img IN video\n      var next = services[i + 1];\n\n      if (!reduced && media) {\n        gsap.set(media, {scale:1.2});\n        gsap.fromTo(media, {yPercent:-8}, {\n          yPercent: 8,\n          ease: 'none',\n          scrollTrigger: {\n            trigger: service,\n            start: 'top bottom',\n            end: 'bottom top',\n            scrub: true,\n          },\n        });\n      }\n\n      if (next) {\n        gsap.set(next, {clipPath: reduced ? 'inset(0% 0% 0% 0%)' : 'inset(100% 0% 0% 0%)'});\n\n        if (!reduced) {\n          ScrollTrigger.create({\n            trigger: wrap,\n            start: 'top top',\n            end: 'bottom top',\n            pin: service,\n            pinSpacing: false,\n            scrub: 0.4,\n            refreshPriority: -1,\n            onUpdate: function(self){\n              gsap.set(next, {clipPath: 'inset(' + (100 - 100 * self.progress) + '% 0% 0% 0%)'});\n            },\n          });\n        }\n      }\n    });\n\n    ScrollTrigger.refresh();\n\n    \/\/ Lazy-load video ozadja: nalo\u017ei in predvaja \u0161ele, ko se sekcija pribli\u017ea viewportu\n    var lazyMedia = document.querySelectorAll('#tlm-services [data-video-src]');\n    if (lazyMedia.length && 'IntersectionObserver' in window) {\n      var videoObserver = new IntersectionObserver(function(entries){\n        entries.forEach(function(entry){\n          var mediaEl = entry.target;\n          var video = mediaEl.querySelector('.tlm-service__video');\n          if (!video) return;\n\n          if (entry.isIntersecting) {\n            if (!video.src) {\n              video.src = mediaEl.dataset.videoSrc;\n              video.load();\n              video.addEventListener('canplay', function onReady(){\n                video.classList.add('is-loaded');\n                video.removeEventListener('canplay', onReady);\n              });\n            }\n            video.play().catch(function(){});\n          } else {\n            video.pause();\n          }\n        });\n      }, { rootMargin: '75% 0px 75% 0px' });\n\n      lazyMedia.forEach(function(el){ videoObserver.observe(el); });\n    }\n  }\n\n  if (document.readyState === 'complete') {\n    init();\n  } else {\n    window.addEventListener('load', init);\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a9d4295 e-con-full e-flex e-con e-parent\" data-id=\"a9d4295\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-4a327d5 e-con-full e-flex e-con e-child\" data-id=\"4a327d5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a66f825 elementor-widget elementor-widget-heading\" data-id=\"a66f825\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Novice<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e6b00cd elementor-widget elementor-widget-text-editor\" data-id=\"e6b00cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-gradient-wave-text=\"\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Odkrijte najnovej\u0161e novice in dose\u017eke na\u0161ega podjetja. Spremljajte razvoj inovativnih re\u0161itev, tehnolo\u0161ke izbolj\u0161ave in pomembne mejnike. Bodite na teko\u010dem z vsemi novostmi iz sveta TBP.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91bfcae elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-html\" data-id=\"91bfcae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\n<a data-button-046=\"\" href=\"https:\/\/tbp.si\/novice\/\" class=\"button-046\">\n  <span class=\"button-046__bg\"><\/span>\n  <span class=\"button-046__bg-circle\">\n    <span data-button-046-circle=\"\" class=\"button-046__circle-wrap\">\n      <span class=\"button-046__circle\"><\/span>\n    <\/span>\n  <\/span>\n  <span class=\"button-046__inner\">\n    <span class=\"button-046__text\">Preberi vse<\/span>\n  <\/span>\n<\/a>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-071009f elementor-hidden-mobile e-con-full e-flex e-con e-parent\" data-id=\"071009f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a2a5b51 elementor-grid-3 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid\" data-id=\"a2a5b51\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;template_id&quot;:471,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;_skin&quot;:&quot;post&quot;,&quot;columns&quot;:&quot;3&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\\&quot;loop-item\\&quot;]&quot;,&quot;row_gap_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-grid.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-loop-container elementor-grid\" role=\"list\">\n\t\t<style id=\"loop-471\">.elementor-471 .elementor-element.elementor-element-208b808{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--background-transition:0.3s;--overlay-mix-blend-mode:multiply;border-style:none;--border-style:none;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-471 .elementor-element.elementor-element-1a35110{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--flex-wrap:wrap;--padding-top:30px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;--z-index:2;}.elementor-471 .elementor-element.elementor-element-25606ed{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-bottom:calc(0px\/2);}.elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-top:calc(0px\/2);}.elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-right:calc(0px\/2);margin-left:calc(0px\/2);}.elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-items.elementor-inline-items{margin-right:calc(-0px\/2);margin-left:calc(-0px\/2);}body.rtl .elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{left:calc(-0px\/2);}body:not(.rtl) .elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{right:calc(-0px\/2);}.elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-icon{width:14px;}.elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-icon i{font-size:14px;}.elementor-471 .elementor-element.elementor-element-1d5ca62 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-471 .elementor-element.elementor-element-80096f3{--display:flex;--justify-content:flex-end;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-471 .elementor-element.elementor-element-56ab9f2 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-471 .elementor-element.elementor-element-56ab9f2 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-471 .elementor-element.elementor-element-56ab9f2{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-471 .elementor-element.elementor-element-56ab9f2 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-471 .elementor-element.elementor-element-56ab9f2 .elementor-icon-list-item > a{font-family:\"Roboto\", Sans-serif;font-weight:400;}.elementor-471 .elementor-element.elementor-element-56ab9f2 .elementor-icon-list-text{color:#FFFFFF;transition:color 0.3s;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-471 .elementor-element.elementor-element-5e91d53 .elementor-heading-title{font-family:\"Eurostile\", Sans-serif;font-size:24px;font-weight:900;line-height:36px;color:#FFFFFF;}.elementor-471 .elementor-element.elementor-element-b1b8ab9{--display:flex;}@media(min-width:701px){.elementor-471 .elementor-element.elementor-element-25606ed{--width:100%;}.elementor-471 .elementor-element.elementor-element-80096f3{--width:100%;}}@media(max-width:1600px){.elementor-471 .elementor-element.elementor-element-208b808{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-471 .elementor-element.elementor-element-1a35110{--padding-top:0px;--padding-bottom:0px;--padding-left:025px;--padding-right:025px;}.elementor-471 .elementor-element.elementor-element-25606ed{--margin-top:025px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}}\/* Start custom CSS for image, class: .elementor-element-4df8400 *\/.elementor-471 .elementor-element.elementor-element-4df8400 img{\n    width:100%!important;\n    height:100%!important;\n    object-fit:cover;\n    \n}\/* End custom CSS *\/\n\/* Start custom CSS for post-info, class: .elementor-element-1d5ca62 *\/.elementor-post-info .elementor-icon-list-item{\n    background-color: #fff!important;\n    padding:9px 15px 9px 15px!important;\n    \n}\n.elementor-post-info .elementor-icon-list-item:nth-of-type(2){\n    border-left:1px solid #E5E5E5;\n    display:none;\n}\n\n.elementor-post-info .elementor-icon-list-item span{\n    font-family: Eurostile;\n    font-size:16px;\n    line-height:30px;\n    \n    \n}\n.elementor-post-info .elementor-icon-list-item:first-child span{\n    font-family: Eurostile;\n    font-size:16px;\n    line-height:30px;\n    text-transform: uppercase;\n}\/* End custom CSS *\/\n\/* Start custom CSS for icon-list, class: .elementor-element-56ab9f2 *\/.elementor-471 .elementor-element.elementor-element-56ab9f2 li span{\n    font-family: Eurostile!important;\n    font-size:18px;\n    color:#E5E5E5!important;\n    font-weight: 700!Important;\n    \n}\/* End custom CSS *\/\n\/* Start custom CSS for container, class: .elementor-element-1a35110 *\/.elementor-471 .elementor-element.elementor-element-1a35110{\n    position:absolute;\n    top:0;\n    left:0;\n    width:100%;\n    height:100%;\n   \n}\/* End custom CSS *\/\n\/* Start custom CSS for container, class: .elementor-element-b1b8ab9 *\/.elementor-471 .elementor-element.elementor-element-b1b8ab9{\n    position:absolute;\n    top:0;\n    left:0;\n    width:100%;\n    height:100%;\n    background-color: #23232350;\n    mix-blend-mode: multiply;\n}\/* End custom CSS *\/\n\/* Start custom CSS for container, class: .elementor-element-208b808 *\/.elementor-471 .elementor-element.elementor-element-208b808{\n    max-width:100%;\n    width:100%!important;\n    height:480px!important;\n    overflow:hidden;\n \n}\n.elementor-471 .elementor-element.elementor-element-208b808 .novice-slika img{\n     transition:all 0.5s;\n     object-fit:cover!important;\n     width:100%!important;\n     height:100%!important;\n}\n.elementor-471 .elementor-element.elementor-element-208b808:hover .novice-slika img{\n transition:all 0.5s;\n       transform:scale(1.07);\n}\n.elementor-471 .elementor-element.elementor-element-208b808 .post-title1{\n    padding-bottom:30px;\n    transition:all 0.5s;\n}\n.elementor-471 .elementor-element.elementor-element-208b808:hover .post-title1{\n    padding-bottom:45px;\n   \n}\n.elementor-471 .elementor-element.elementor-element-208b808 .blog-overlay{\n    transition: all 1s!important;\n}\n.novice-slika{\n    height:100%;\n}\n\/*\n.elementor-471 .elementor-element.elementor-element-208b808:hover .blog-overlay{\n        background: rgb(147,147,147);\nbackground: linear-gradient(180deg, rgba(147,147,147,0.7) 100%, rgba(147,147,147,0.7) 100%);\nmix-blend-mode:multiply;\n\n}*\/\n.elementor-471 .elementor-element.elementor-element-208b808:hover{\n    cursor:pointer!Important;\n}\n\n@media only screen and (min-width:1050px) and (max-width:1600px){\n    .elementor-471 .elementor-element.elementor-element-208b808{\n    width:100%!important;\n    height:450px!important;\n    overflow:hidden;\n \n}\n.elementor-471 .elementor-element.elementor-element-208b808 .novice-slika img{\n     transition:all 0.3s;\n}\n.elementor-471 .elementor-element.elementor-element-208b808:hover .novice-slika img{\n transition:all 0.3s;\n       transform:scale(1.07);\n}\n.elementor-471 .elementor-element.elementor-element-208b808 .post-title1{\n    padding-bottom:67px;\n    transition:all 0.3s;\n}\n.elementor-471 .elementor-element.elementor-element-208b808:hover .post-title1{\n    padding-bottom:107px;\n   \n}\n.elementor-471 .elementor-element.elementor-element-208b808:hover .post-title1{\n    padding-bottom:67px;\n   \n}\n.elementor-471 .elementor-element.elementor-element-208b808 .post-title1{\n    padding-bottom:47px;\n    transition:all 0.3s;\n}\n.elementor-471 .elementor-element.elementor-element-208b808:hover .blog-overlay{\n        background: rgb(147,147,147);\nbackground: linear-gradient(180deg, rgba(147,147,147,0.7) 100%, rgba(147,147,147,0.7) 100%);\nmix-blend-mode:multiply;\n}\n}\/* End custom CSS *\/<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"471\" class=\"elementor elementor-471 e-loop-item e-loop-item-5569 post-5569 post type-post status-publish format-standard has-post-thumbnail hentry category-mediji-o-nas\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-208b808 e-flex e-con-boxed e-con e-parent\" data-id=\"208b808\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"https:\/\/tbp.si\/de\/posel-in-denar-delo\/\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4df8400 novice-slika elementor-widget elementor-widget-image\" data-id=\"4df8400\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1.jpg\" class=\"attachment-full size-full wp-image-5573\" alt=\"\" srcset=\"https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1.jpg 1024w, https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1-300x200.jpg 300w, https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1-768x512.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a35110 e-con-full e-flex e-con e-child\" data-id=\"1a35110\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-25606ed e-con-full e-flex e-con e-child\" data-id=\"25606ed\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d5ca62 elementor-align-left elementor-widget elementor-widget-post-info\" data-id=\"1d5ca62\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-df08338 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<span class=\"elementor-post-info__terms-list-item\">Mediji o nas<\/span>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-2c46eb3 elementor-inline-item\" itemprop=\"datePublished\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date\">\n\t\t\t\t\t\t\t\t\t\t<time>Mai 27, 2019<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-80096f3 e-con-full e-flex e-con e-child\" data-id=\"80096f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56ab9f2 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"56ab9f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">DELO<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e91d53 post-title1 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"5e91d53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Posel in denar<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b1b8ab9 e-con-full e-flex e-con e-child\" data-id=\"b1b8ab9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"471\" class=\"elementor elementor-471 e-loop-item e-loop-item-5614 post-5614 post type-post status-publish format-standard has-post-thumbnail hentry category-mediji-o-nas\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-208b808 e-flex e-con-boxed e-con e-parent\" data-id=\"208b808\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"https:\/\/tbp.si\/de\/s-tovarno-tudi-v-mehiki\/\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4df8400 novice-slika elementor-widget elementor-widget-image\" data-id=\"4df8400\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"668\" height=\"1000\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2025\/03\/2149353379.jpg\" class=\"attachment-full size-full wp-image-5616\" alt=\"\" srcset=\"https:\/\/tbp.si\/wp-content\/uploads\/2025\/03\/2149353379.jpg 668w, https:\/\/tbp.si\/wp-content\/uploads\/2025\/03\/2149353379-200x300.jpg 200w\" sizes=\"(max-width: 668px) 100vw, 668px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a35110 e-con-full e-flex e-con e-child\" data-id=\"1a35110\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-25606ed e-con-full e-flex e-con e-child\" data-id=\"25606ed\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d5ca62 elementor-align-left elementor-widget elementor-widget-post-info\" data-id=\"1d5ca62\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-df08338 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<span class=\"elementor-post-info__terms-list-item\">Mediji o nas<\/span>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-2c46eb3 elementor-inline-item\" itemprop=\"datePublished\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date\">\n\t\t\t\t\t\t\t\t\t\t<time>November 16, 2017<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-80096f3 e-con-full e-flex e-con e-child\" data-id=\"80096f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56ab9f2 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"56ab9f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Priloga \u010casnika Ve\u010der in \u0160GZ<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e91d53 post-title1 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"5e91d53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">S tovarno tudi v Mehiki<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b1b8ab9 e-con-full e-flex e-con e-child\" data-id=\"b1b8ab9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"471\" class=\"elementor elementor-471 e-loop-item e-loop-item-5576 post-5576 post type-post status-publish format-standard has-post-thumbnail hentry category-mediji-o-nas\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-208b808 e-flex e-con-boxed e-con e-parent\" data-id=\"208b808\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"https:\/\/tbp.si\/de\/tbp-kraljuje-v-nisi-bovden-potegov\/\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4df8400 novice-slika elementor-widget elementor-widget-image\" data-id=\"4df8400\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"667\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549.jpg\" class=\"attachment-full size-full wp-image-5587\" alt=\"\" srcset=\"https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549.jpg 1000w, https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549-300x200.jpg 300w, https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549-768x512.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a35110 e-con-full e-flex e-con e-child\" data-id=\"1a35110\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-25606ed e-con-full e-flex e-con e-child\" data-id=\"25606ed\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d5ca62 elementor-align-left elementor-widget elementor-widget-post-info\" data-id=\"1d5ca62\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-df08338 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<span class=\"elementor-post-info__terms-list-item\">Mediji o nas<\/span>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-2c46eb3 elementor-inline-item\" itemprop=\"datePublished\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date\">\n\t\t\t\t\t\t\t\t\t\t<time>Juli 20, 2016<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-80096f3 e-con-full e-flex e-con e-child\" data-id=\"80096f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56ab9f2 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"56ab9f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Glas Gospodarstva<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e91d53 post-title1 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"5e91d53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">TBP kraljuje v ni\u0161i bovden potegov<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b1b8ab9 e-con-full e-flex e-con e-child\" data-id=\"b1b8ab9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0381162 elementor-hidden-widescreen elementor-hidden-desktop elementor-hidden-laptop elementor-hidden-tablet e-flex e-con-boxed e-con e-parent\" data-id=\"0381162\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" data-color=\"grey\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-958e8e2 elementor-pagination-type-progressbar elementor-widget elementor-widget-loop-carousel\" data-id=\"958e8e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;template_id&quot;:1332,&quot;slides_to_scroll_mobile&quot;:&quot;1&quot;,&quot;pagination&quot;:&quot;progressbar&quot;,&quot;_skin&quot;:&quot;post&quot;,&quot;slides_to_show&quot;:&quot;3&quot;,&quot;slides_to_show_widescreen&quot;:&quot;3&quot;,&quot;slides_to_show_laptop&quot;:&quot;3&quot;,&quot;slides_to_show_tablet&quot;:&quot;2&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;.elementor-loop-container&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;offset_sides&quot;:&quot;none&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;image_spacing_custom_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-carousel.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"swiper elementor-loop-container elementor-grid\" role=\"list\" dir=\"ltr\">\n\t\t\t\t<div class=\"swiper-wrapper\" aria-live=\"off\">\n\t\t<style id=\"loop-1332\">.elementor-1332 .elementor-element.elementor-element-fae2446{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--overlay-mix-blend-mode:multiply;border-style:none;--border-style:none;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-1332 .elementor-element.elementor-element-7df16fb{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--flex-wrap:wrap;--padding-top:40px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;--z-index:2;}.elementor-1332 .elementor-element.elementor-element-2ddc021{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child){padding-bottom:calc(0px\/2);}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child){margin-top:calc(0px\/2);}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item{margin-right:calc(0px\/2);margin-left:calc(0px\/2);}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-items.elementor-inline-items{margin-right:calc(-0px\/2);margin-left:calc(-0px\/2);}body.rtl .elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{left:calc(-0px\/2);}body:not(.rtl) .elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after{right:calc(-0px\/2);}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-icon{width:14px;}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-icon i{font-size:14px;}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-1332 .elementor-element.elementor-element-21b4ece .elementor-icon-list-item{font-family:\"Roboto\", Sans-serif;font-weight:400;}.elementor-1332 .elementor-element.elementor-element-a63cb33{--display:flex;--justify-content:flex-end;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-1332 .elementor-element.elementor-element-fcf689e .elementor-heading-title{font-family:\"Eurostile\", Sans-serif;font-size:24px;font-weight:900;line-height:36px;color:#FFFFFF;}.elementor-1332 .elementor-element.elementor-element-9a8d158{--display:flex;}@media(min-width:701px){.elementor-1332 .elementor-element.elementor-element-2ddc021{--width:50%;}.elementor-1332 .elementor-element.elementor-element-a63cb33{--width:100%;}}@media(max-width:700px){.elementor-1332 .elementor-element.elementor-element-fae2446{--content-width:100%;}.elementor-1332 .elementor-element.elementor-element-7df16fb{--padding-top:0px;--padding-bottom:0px;--padding-left:019px;--padding-right:019px;}.elementor-1332 .elementor-element.elementor-element-2ddc021{--width:65%;--margin-top:25px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-1332 .elementor-element.elementor-element-a63cb33{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1332 .elementor-element.elementor-element-fcf689e .elementor-heading-title{font-size:18px;line-height:24px;}.elementor-1332 .elementor-element.elementor-element-fcf689e > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}}\/* Start custom CSS for image, class: .elementor-element-5daef1a *\/.elementor-1332 .elementor-element.elementor-element-5daef1a img{\n    width:560px!important;\n    height:480px!important;\n    object-fit:cover;\n    \n}\/* End custom CSS *\/\n\/* Start custom CSS for container, class: .elementor-element-7df16fb *\/.elementor-1332 .elementor-element.elementor-element-7df16fb{\n    position:absolute;\n    top:0;\n    left:0;\n    width:100%;\n    height:100%;\n\n}\/* End custom CSS *\/\n\/* Start custom CSS for container, class: .elementor-element-9a8d158 *\/.blog-overlay{\n    height:100%;\n    width:100%;\n    position:absolute;\n    top:0;\n    left:0;\n        background: rgb(147,147,147);\nbackground: linear-gradient(180deg, rgba(147,147,147,0.9) 50%, rgba(29,29,29,0.8) 100%);\nmix-blend-mode:multiply;\n transition:all 0.3s;\n}\/* End custom CSS *\/\n\/* Start custom CSS for container, class: .elementor-element-fae2446 *\/.elementor-1332 .elementor-element.elementor-element-fae2446{\n    width:100%!important;\n    height:480px!important;\n    overflow:hidden;\n \n}\n.elementor-1332 .elementor-element.elementor-element-fae2446 .novice-slika img{\n     transition:all 0.3s;\n}\n.elementor-1332 .elementor-element.elementor-element-fae2446:hover .novice-slika img{\n transition:all 0.3s;\n       transform:scale(1.07);\n}\n.elementor-1332 .elementor-element.elementor-element-fae2446 .post-title1{\n    padding-bottom:52px;\n    transition:all 0.3s;\n}\n.elementor-1332 .elementor-element.elementor-element-fae2446:hover .post-title1{\n    padding-bottom:72px;\n   \n}\n.elementor-1332 .elementor-element.elementor-element-fae2446:hover .blog-overlay{\n        background: rgb(147,147,147);\nbackground: linear-gradient(180deg, rgba(147,147,147,0.7) 100%, rgba(147,147,147,0.7) 100%);\nmix-blend-mode:multiply;\n}\/* End custom CSS *\/<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1332\" class=\"elementor elementor-1332 swiper-slide e-loop-item e-loop-item-5569 post-5569 post type-post status-publish format-standard has-post-thumbnail hentry category-mediji-o-nas\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-fae2446 e-flex e-con-boxed e-con e-parent\" data-id=\"fae2446\" data-element_type=\"container\" data-e-type=\"container\" href=\"https:\/\/tbp.si\/de\/posel-in-denar-delo\/\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5daef1a novice-slika elementor-widget elementor-widget-image\" data-id=\"5daef1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1.jpg\" class=\"attachment-large size-large wp-image-5573\" alt=\"\" srcset=\"https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1.jpg 1024w, https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1-300x200.jpg 300w, https:\/\/tbp.si\/wp-content\/uploads\/2019\/05\/178992.max-1280x1280-1-768x512.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7df16fb e-con-full e-flex e-con e-child\" data-id=\"7df16fb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2ddc021 e-con-full e-flex e-con e-child\" data-id=\"2ddc021\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21b4ece elementor-widget elementor-widget-post-info\" data-id=\"21b4ece\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-df08338 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<span class=\"elementor-post-info__terms-list-item\">Mediji o nas<\/span>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a63cb33 e-con-full e-flex e-con e-child\" data-id=\"a63cb33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcf689e post-title1 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"fcf689e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Posel in denar<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9a8d158 e-con-full blog-overlay e-flex e-con e-child\" data-id=\"9a8d158\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1332\" class=\"elementor elementor-1332 swiper-slide e-loop-item e-loop-item-5614 post-5614 post type-post status-publish format-standard has-post-thumbnail hentry category-mediji-o-nas\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-fae2446 e-flex e-con-boxed e-con e-parent\" data-id=\"fae2446\" data-element_type=\"container\" data-e-type=\"container\" href=\"https:\/\/tbp.si\/de\/s-tovarno-tudi-v-mehiki\/\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5daef1a novice-slika elementor-widget elementor-widget-image\" data-id=\"5daef1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"668\" height=\"1000\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2025\/03\/2149353379.jpg\" class=\"attachment-large size-large wp-image-5616\" alt=\"\" srcset=\"https:\/\/tbp.si\/wp-content\/uploads\/2025\/03\/2149353379.jpg 668w, https:\/\/tbp.si\/wp-content\/uploads\/2025\/03\/2149353379-200x300.jpg 200w\" sizes=\"(max-width: 668px) 100vw, 668px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7df16fb e-con-full e-flex e-con e-child\" data-id=\"7df16fb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2ddc021 e-con-full e-flex e-con e-child\" data-id=\"2ddc021\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21b4ece elementor-widget elementor-widget-post-info\" data-id=\"21b4ece\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-df08338 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<span class=\"elementor-post-info__terms-list-item\">Mediji o nas<\/span>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a63cb33 e-con-full e-flex e-con e-child\" data-id=\"a63cb33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcf689e post-title1 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"fcf689e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">S tovarno tudi v Mehiki<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9a8d158 e-con-full blog-overlay e-flex e-con e-child\" data-id=\"9a8d158\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1332\" class=\"elementor elementor-1332 swiper-slide e-loop-item e-loop-item-5576 post-5576 post type-post status-publish format-standard has-post-thumbnail hentry category-mediji-o-nas\" data-elementor-post-type=\"elementor_library\" role=\"group\" aria-roledescription=\"slide\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-fae2446 e-flex e-con-boxed e-con e-parent\" data-id=\"fae2446\" data-element_type=\"container\" data-e-type=\"container\" href=\"https:\/\/tbp.si\/de\/tbp-kraljuje-v-nisi-bovden-potegov\/\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5daef1a novice-slika elementor-widget elementor-widget-image\" data-id=\"5daef1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549.jpg\" class=\"attachment-large size-large wp-image-5587\" alt=\"\" srcset=\"https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549.jpg 1000w, https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549-300x200.jpg 300w, https:\/\/tbp.si\/wp-content\/uploads\/2016\/07\/549-768x512.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7df16fb e-con-full e-flex e-con e-child\" data-id=\"7df16fb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2ddc021 e-con-full e-flex e-con e-child\" data-id=\"2ddc021\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21b4ece elementor-widget elementor-widget-post-info\" data-id=\"21b4ece\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-df08338 elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<span class=\"elementor-post-info__terms-list-item\">Mediji o nas<\/span>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a63cb33 e-con-full e-flex e-con e-child\" data-id=\"a63cb33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcf689e post-title1 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"fcf689e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">TBP kraljuje v ni\u0161i bovden potegov<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9a8d158 e-con-full blog-overlay e-flex e-con e-child\" data-id=\"9a8d158\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<div class=\"swiper-pagination\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0050910 e-con-full e-flex e-con e-child\" data-id=\"0050910\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-634069f elementor-widget elementor-widget-html\" data-id=\"634069f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\n<a data-button-046=\"\" href=\"https:\/\/tbp.si\/novice\/\" class=\"button-046\">\n  <span class=\"button-046__bg\"><\/span>\n  <span class=\"button-046__bg-circle\">\n    <span data-button-046-circle=\"\" class=\"button-046__circle-wrap\">\n      <span class=\"button-046__circle\"><\/span>\n    <\/span>\n  <\/span>\n  <span class=\"button-046__inner\">\n    <span class=\"button-046__text\">Preberi vse<\/span>\n  <\/span>\n<\/a>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f8f9e10 e-con-full e-flex e-con e-parent\" data-id=\"f8f9e10\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3df386a elementor-widget elementor-widget-html\" data-id=\"3df386a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"sl\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Zemljevid trgov \u2014 globus<\/title>\n<style>\nhtml, body { margin: 0; padding: 0; background: #ffffff; }\n\n\n\n.ng_section {\n  --ng-bg: #ffffff;\n  --ng-fg: rgba(16, 16, 16, 0.92);\n  --ng-fg-soft: rgba(16, 16, 16, 0.78);\n  --ng-fg-dim: rgba(16, 16, 16, 0.55);\n  --ng-margin: 40px;\n  position: relative;\n  width: 100%;\n  min-height: 100vh;\n  min-height: 100dvh;\n  overflow: hidden;\n  padding: var(--ng-margin);\n  background: var(--ng-bg);\n  color: var(--ng-fg);\n  font-family: Eurostile;\n  font-weight: 380;\n  -webkit-font-smoothing: antialiased;\n  display: grid;\n  grid-template-columns: repeat(12, 1fr);\n  grid-template-rows: 1fr;\n  column-gap: 24px;\n  box-sizing: border-box;\n}\n\n.ng_left {\n  grid-column: 1 \/ span 5;\n  grid-row: 1;\n  align-self: center;\n  z-index: 2;\n  display: flex;\n  flex-direction: column;\n  gap: 40px;\n}\n\n.ng_hq_block { position: relative; }\n\n.ng_hq_name {\n  position: relative;\n  margin: 0;\n  font-size: 48px;\n  font-weight: 400;\n  letter-spacing: -0.03em;\n  line-height: 1.05;\n  color: #fd551d;\n  overflow: hidden;\n}\n\n.ng_hq_name .ng_line_out {\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n.ng_pill_line {\n  position: relative;\n  display: block;\n  white-space: nowrap;\n}\n\n.ng_pill_char {\n  position: relative;\n  display: inline-block;\n}\n\n.ng_hq_sub {\n  margin: 6px 0 0;\n  font-size: 16px;\n  font-weight: 500;\n  letter-spacing: -0.01em;\n  color: var(--ng-fg-dim);\n}\n\n.ng_hq_nav {\n  display: flex;\n  gap: 8px;\n  margin-top: 20px;\n}\n\n.ng_navbtn {\n  width: 38px !important;\n  height: 38px !important;\n  min-width: 38px !important;\n  min-height: 38px !important;\n  max-width: 38px !important;\n  max-height: 38px !important;\n  padding: 0 !important;\n  margin: 0 !important;\n  border: 1px solid rgba(16, 16, 16, 0.12) !important;\n  border-radius: 999px !important;\n  background: rgba(16, 16, 16, 0.03) !important;\n  color: var(--ng-fg) !important;\n  display: grid !important;\n  place-items: center !important;\n  line-height: 1 !important;\n  box-sizing: border-box !important;\n  cursor: pointer;\n  transition: background 220ms cubic-bezier(0.3, 0.9, 0.1, 1),\n              border-color 220ms cubic-bezier(0.3, 0.9, 0.1, 1);\n}\n\n.ng_navbtn:hover {\n  background: rgba(16, 16, 16, 0.12) !important;\n  border-color: rgba(16, 16, 16, 0.28) !important;\n}\n\n.ng_navbtn:active {\n  background: rgba(16, 16, 16, 0.18) !important;\n}\n\n.ng_navbtn:focus-visible {\n  outline: 2px solid rgba(16, 16, 16, 0.55) !important;\n  outline-offset: 2px !important;\n}\n\n.ng_navbtn svg {\n  width: 15px !important;\n  height: 15px !important;\n  display: block !important;\n  fill: none !important;\n  stroke: currentColor !important;\n  stroke-width: 1.6 !important;\n  stroke-linecap: round !important;\n  stroke-linejoin: round !important;\n}\n\n.ng_market_cols {\n  display: flex;\n  gap: 56px;\n}\n\n.ng_market_heading {\n  margin: 0 0 14px;\n  font-size: 20px;\n  font-weight: 600;\n  letter-spacing: -0.01em;\n  color: var(--ng-fg);\n}\n\n.ng_market_list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n}\n\n.ng_market_list button {\n  border: 0;\n  background: #ffffff00!important;\n  padding: 0;\n  font: inherit;\n  font-size: 18px;\n  letter-spacing: -0.01em;\n  color: rgba(16, 16, 16, 0.28);\n  cursor: pointer;\n  text-align: left;\n  transition: color 200ms cubic-bezier(0.3, 0.9, 0.1, 1);\n}\n\n.ng_market_list button:hover {\n  color: rgba(16, 16, 16, 0.55) !important;\n}\n\n.ng_market_list button:focus-visible {\n  outline: 2px solid rgba(16, 16, 16, 0.5) !important;\n  outline-offset: 3px !important;\n  color: rgba(16, 16, 16, 0.92) !important;\n}\n\n.ng_market_list button.active {\n  color: rgba(16, 16, 16, 0.92) !important;\n  text-decoration: underline !important;\n  text-underline-offset: 4px !important;\n}\n\n.ng_right {\n  grid-column: 6 \/ span 7;\n  grid-row: 1;\n  position: relative;\n  min-height: 100%;\n}\n\n.ng_stage {\n  position: absolute;\n  inset: 0;\n  display: grid;\n  place-items: center;\n  pointer-events: none;\n}\n\n.ng_canvas {\n  display: block;\n  width: 100%;\n  height: 100%;\n  pointer-events: auto;\n  cursor: grab;\n  touch-action: none;\n}\n\n.ng_canvas:active {\n  cursor: grabbing;\n}\n\n.ng_tip {\n  position: absolute;\n  left: 0;\n  top: 0;\n  z-index: 3;\n  padding: 5px 10px 6px;\n  border-radius: 8px;\n  background: rgba(255, 250, 242, 0.10);\n  backdrop-filter: blur(14px);\n  -webkit-backdrop-filter: blur(14px);\n  font-size: 13px;\n  font-weight: 500;\n  letter-spacing: -0.01em;\n  line-height: 1.15;\n  color: rgba(255, 250, 242, 0.92);\n  white-space: nowrap;\n  transform-origin: 50% 50%;\n  transform: translate(-50%, -50%) scale(1);\n  opacity: 1;\n  pointer-events: auto;\n  cursor: pointer;\n\n  transition: opacity 260ms cubic-bezier(0.3, 0.9, 0.1, 1),\n              transform 260ms cubic-bezier(0.3, 0.9, 0.1, 1);\n}\n\n.ng_tip_mask {\n  display: inline-block;\n  overflow-x: visible;\n  overflow-y: clip;\n  padding-bottom: 0.16em;\n  margin-bottom: -0.16em;\n}\n\n.ng_tip_text {\n  display: inline-block;\n}\n\n.ng_tip:focus-visible {\n  outline: 2px solid rgba(255, 250, 242, 0.92) !important;\n  outline-offset: 3px !important;\n}\n\n.ng_tip_focus {\n  background: rgba(255, 250, 242, 0.94);\n  color: #101010;\n}\n\n.ng_tip_hidden {\n  opacity: 0;\n  pointer-events: none;\n  transform: translate(-50%, -50%) scale(0.55);\n}\n\n@media (max-width: 900px) {\n  .ng_market_cols {\n    gap: 32px;\n  }\n}\n\n@media (max-width: 720px) {\n  .ng_section {\n    --ng-margin: 20px;\n    \n    grid-template-columns: repeat(4, 1fr);\n    grid-template-rows: auto auto;\n    row-gap: 32px;\n  }\n\n  .ng_left {\n    grid-column: 1 \/ span 4;\n    grid-row: 1;\n  }\n\n  .ng_right {\n    grid-column: 1 \/ span 4;\n    grid-row: 2;\n    width: 100%;\n    aspect-ratio: 1;\n    margin-top:-80px;\n    \n  }\n\n  .ng_hq_name {\n    font-size: 32px;\n  }\n  .ng_market_cols {\n  display: none;\n}\n}\n<\/style>\n<\/head>\n<body>\n\n<section class=\"ng_section\" data-anm-network-globe\n         data-anm-points=\"52.52,13.40,Nem\u010dija;48.21,16.37,Avstrija;41.90,12.50,Italija;48.85,2.35,Francija;51.51,-0.13,Velika Britanija;38.72,-9.14,Portugalska;40.42,-3.70,\u0160panija;50.85,4.35,Belgija;52.23,21.01,Poljska;50.08,14.44,\u010ce\u0161ka;47.50,19.04,Mad\u017earska;45.81,15.98,Hrva\u0161ka;46.95,7.45,\u0160vica;43.86,18.41,BiH;35.68,139.69,Japonska;37.57,126.98,Ju\u017ena Koreja;13.75,100.50,Tajska;39.90,116.40,Kitajska;28.61,77.21,Indija;46.06,14.51,Slovenija;44.79,20.45,Srbija;19.43,-99.13,Mehika\"\n         data-anm-hq=\"Slovenija,Srbija,Mehika\"\n         data-anm-hq-color=\"#fd551d\"\n         data-anm-hq-size-mul=\"2.6\"\n         data-anm-dot-color=\"#525352\"\n         data-anm-dot-size=\"5\"\n         data-anm-dot-density=\"20000\"\n         data-anm-globe-scale=\"0.48\"\n         data-anm-pitch=\"\"\n         data-anm-roll=\"-11.72\"\n         data-anm-center-lon=\"-27\"\n         data-anm-meridian-step=\"20\"\n         data-anm-meridian-opacity=\"0\"\n         data-anm-marker-color=\"#fffaf2\"\n         data-anm-marker-size=\"7.5\"\n         data-anm-tooltips=\"hq\"\n         data-anm-arc-color=\"#FB8D09\"\n         data-anm-arc-lift=\"0.9\"\n         data-anm-arc-duration=\"3\"\n         data-anm-connections=\"3\"\n         data-anm-switch-connection=\"true\"\n         data-anm-autorotate=\"10\"\n         data-anm-drag=\"true\"\n         data-anm-inertia-decay=\"2.1\"\n         data-anm-inertia-max=\"180\"\n         data-anm-globe-bg=\"#E5E5E5\">\n\n  <div class=\"ng_left\" data-anm-ng-reveal>\n    <div class=\"ng_hq_block\">\n      <h2 class=\"ng_hq_name\" data-anm-ng-city>Slovenija<\/h2>\n      <p class=\"ng_hq_sub\">Sede\u017e podjetja<\/p>\n      <div class=\"ng_hq_nav\">\n        <button class=\"ng_navbtn\" type=\"button\" data-anm-ng-prev aria-label=\"Prej\u0161nji sede\u017e\">\n          <svg viewBox=\"0 0 16 16\"><path d=\"M10 3 5 8l5 5\"\/><\/svg>\n        <\/button>\n        <button class=\"ng_navbtn\" type=\"button\" data-anm-ng-next aria-label=\"Naslednji sede\u017e\">\n          <svg viewBox=\"0 0 16 16\"><path d=\"M6 3l5 5-5 5\"\/><\/svg>\n        <\/button>\n      <\/div>\n    <\/div>\n\n    <div class=\"ng_market_cols\">\n      <div class=\"ng_market_col\">\n        <h3 class=\"ng_market_heading\">EU<\/h3>\n        <ul class=\"ng_market_list\">\n          <li><button type=\"button\" data-market=\"Nem\u010dija\">Nem\u010dija<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Avstrija\">Avstrija<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Italija\">Italija<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Francija\">Francija<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Velika Britanija\">Velika Britanija<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Portugalska\">Portugalska<\/button><\/li>\n          <li><button type=\"button\" data-market=\"\u0160panija\">\u0160panija<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Belgija\">Belgija<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Poljska\">Poljska<\/button><\/li>\n          <li><button type=\"button\" data-market=\"\u010ce\u0161ka\">\u010ce\u0161ka<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Mad\u017earska\">Mad\u017earska<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Hrva\u0161ka\">Hrva\u0161ka<\/button><\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"ng_market_col\">\n        <h3 class=\"ng_market_heading\">Globalno<\/h3>\n        <ul class=\"ng_market_list\">\n          <li><button type=\"button\" data-market=\"\u0160vica\">\u0160vica<\/button><\/li>\n          <li><button type=\"button\" data-market=\"BiH\">BiH<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Japonska\">Japonska<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Ju\u017ena Koreja\">Ju\u017ena Koreja<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Tajska\">Tajska<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Kitajska\">Kitajska<\/button><\/li>\n          <li><button type=\"button\" data-market=\"Indija\">Indija<\/button><\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"ng_right\" data-anm-ng-reveal>\n    <div class=\"ng_stage\">\n      <canvas class=\"ng_canvas\" data-anm-ng-canvas aria-hidden=\"true\"><\/canvas>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.5\/gsap.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.5\/ScrollTrigger.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.5\/CustomEase.min.js\"><\/script>\n<script>\n(function () {\n  'use strict';\n\n  var LANDMASK_B64 = \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/4AAAP\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/+f\/\/\/\/\/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf\/\/\/\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAIf+AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAJ\/\/\/\/\/\/\/\/\/\/\/\/\/8AAAAC\/4IAD5\/2AAAAf0AAAAAAAAAAAAAAAAAAAAAAAAAPs\/\/\/\/j\/\/\/\/\/\/\/\/gAAAD\/\/4AAAAAAAAAAf94AAAAAAAAAAAAAAAAAAAAAAAeH7v\/\/5\/\/\/\/\/\/\/\/+AAAAB\/+AAAAAAAAAAAAf8AAAAAAAAAAAAAAAAAAAAAA88MZ5f\/h\/\/\/\/\/\/\/\/\/AAAAAPnAAAAAAAYAAAAB+AAAAAAAAAAAAAAAAAAAAAH\/zX\/\/\/\/Af\/\/\/\/\/\/\/\/AAAAACAAAAAAA\/4AAAH\/\/\/AAAA0AAAAAAAAAAAAAAAAX\/\/\/\/\/+AAA\/\/\/\/\/\/\/AAAAAAAAAAAAP\/AACH\/\/\/\/AAAF\/vgAAAAAAAAAAAAAf8+AG\/\/8AAAP\/\/\/\/\/\/AAAAAAAAAAAAfAAAAf\/\/\/+AAAA\/HgAAAAAAAAAAAAAf\/A9++f\/wAAH\/\/\/\/\/8AAAAAAAAAAAB8ADAP\/\/\/\/\/\/n4AOAAAAAAAAAAAAAAA\/\/\/5\/8\/\/4AAD\/\/\/\/\/wAAAAAAAAAAADwAPt\/\/\/\/\/\/\/\/8Af\/AAAAA4AABgAAAA\/f\/8P4\/\/\/gAD\/\/\/\/\/4AAAAAAAAAAAH4Af\/\/\/\/\/\/\/\/\/8\/\/\/xwAABwAA\/\/+gAWAP\/\/h8f\/\/+AB\/\/\/\/\/4AAAAAAX\/gAAA7A\/v\/\/\/\/\/\/\/\/\/\/\/\/\/8AEBAAD\/\/\/\/P\/\/3\/\/3\/j\/\/+AB\/\/\/\/\/gAAAAAF\/\/\/AAwD\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/v\/4Af\/\/\/\/\/\/\/\/\/\/Hfz5f\/AA\/\/\/\/8AAAAAAP\/\/\/8O\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+AH\/\/\/\/\/\/\/\/\/\/\/\/\/45\/8A\/\/\/8AAAAAAAP\/\/\/+N\/\/\/\/v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8f\/\/\/\/\/\/\/\/\/\/\/\/\/wD\/+A\/\/\/wAx4AAAA\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8\/\/\/\/\/\/\/\/\/\/\/\/\/\/g\/+8A\/\/\/AA\/+AAAA\/\/\/+T\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/Bwf\/\/\/\/\/\/\/\/\/\/\/\/\/4\/\/gAP\/wAAf8AAAD\/9\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/AOB\/\/\/\/\/\/\/\/\/\/\/\/Hdh\/wAP\/wAAPgAAAf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+AAP\/\/\/\/\/\/\/\/\/\/\/+Ay+fwAH\/AAAAABAB\/\/H\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/AAP\/\/\/\/\/\/\/+\/\/\/4AG\/hgAD\/AAAAAAAD\/\/H\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/gAAf\/\/\/\/\/\/\/\/\/\/\/wAA\/4QAA+AAAAAACB\/\/\/\/v\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/C\/8AAAS\/7gP\/\/\/\/\/\/\/wAA\/44AAAAAAAAAAB\/\/h\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/+D4AAAAA\/8AA\/\/\/\/\/\/\/4AB\/\/8AAAAAAAAB4B9\/D\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8AAPoAAAAAH8AAf\/\/\/\/\/\/\/AAf\/+AAAAAAAAD8AG+m\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wAA\/gAAAAAeYAAP\/\/\/\/\/\/\/4Cf\/+AAAAAAAAB8AO+H\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/gAB\/wAAAAD4AAAD\/\/\/\/\/\/\/\/y\/\/\/gAAAAAAAD+AP4H\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/AAB\/AAAAAHAAAABf\/\/\/\/\/\/\/z\/\/\/4AAAAAAAP\/AP3\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wAB\/AAAABwAAAAB\/\/\/\/\/\/\/\/7\/\/\/+AAAAAAAPfh\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/AA8AAABAAAAAAAn\/\/\/\/\/\/\/5\/\/\/+AAAAAAAPfz\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/AA4AAAEAAAAAAAD\/\/\/\/\/\/\/\/\/\/\/+AAAAAAAMf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/AAwAAAAAAAAAAAH\/\/\/\/\/\/\/\/\/\/\/sAAAAAAAAff\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7ABgAAAAAAAAAAAB\/\/\/\/\/\/\/\/\/\/8fgAAAAAAAD\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/7gAAAAAAAAAAAAAAf\/\/\/\/\/\/\/\/\/wfgAAAAAAAf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/yAAAAAAAAAAAAAAAf\/\/\/\/\/R\/\/\/g\/wAAAAAAAP\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/2AAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AgAAAAAAAD\/\/\/\/\/\/v\/7\/\/\/\/\/\/\/\/\/\/\/\/\/\/nAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAD\/\/\/\/\/H\/\/n\/\/\/\/\/\/\/\/\/\/\/\/\/\/GGAAAAAAAAAAAAAAf\/\/\/\/\/\/v\/\/8AAAAAAAAAD\/\/v\/+Gf\/P\/\/\/\/\/\/\/\/\/\/\/\/\/+HcAAAAAAAAAAAAAAf\/\/\/\/\/\/\/\/wgAAAAAAAAH\/\/z3\/+AH\/H\/\/\/\/\/\/\/\/\/\/\/\/\/8PwAAAAAAAAAAAAAAf\/\/\/\/\/\/\/\/wAAAAAAAAAH\/4N4\/8AB\/D\/\/\/\/\/\/\/\/\/\/\/\/+QfAAAAAAAAAAAAAAAf\/\/\/\/\/\/\/\/wAAAAAAAAAH\/4M+f\/\/1\/i\/\/\/\/\/\/\/\/\/\/\/\/8AIAAAAAAAAAAAAAAAf\/\/\/\/\/\/\/+AAAAAAAAAAH\/gMP\/\/\/\/\/z\/\/\/\/\/\/\/\/\/\/\/\/8AMAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/8AAAAAAAAAAP\/MMGOP\/\/\/x\/\/\/\/\/\/\/\/\/\/\/fwAMAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/4AAAAAAAAAAP\/AA+Pv\/\/\/h\/\/\/\/\/\/\/\/\/\/+B4AcAAAAAAAAAAAAAAAH\/\/\/\/\/\/\/4AAAAAAAAAAH+AG8H3\/\/\/5\/\/\/\/\/\/\/\/\/\/\/58B4AAAAAAAAAAAAAAAD\/\/\/\/\/\/\/wAAAAAAAAAAB8\/+ICH\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/w8D4AAAAAAAAAAAAAAAD\/\/\/\/\/\/\/wAAAAAAAAAAA\/\/+ABwM\/\/\/\/\/\/\/\/\/\/\/\/\/\/A8\/4AAAAAAAAAAAAAAAB\/\/\/\/\/\/\/gAAAAAAAAAAB\/\/+AAQN\/\/\/\/\/\/\/\/\/\/\/\/\/\/Ax\/gAAAAAAAAAAAAAAAAf\/\/\/\/\/\/AAAAAAAAAAAH\/\/\/AAAB\/\/\/\/\/\/\/\/\/\/\/\/\/\/gn8AAAAAAAAAAAAAAAAAH\/\/\/\/\/8AAAAAAAAAAAP\/\/\/4PAD\/\/\/\/\/\/\/\/\/\/\/\/\/\/wDAAAAAAAAAAAAAAAAAAH\/\/\/\/\/4AAAAAAAAAAAP\/\/\/\/P8\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wDAAAAAAAAAAAAAAAAAADf\/\/\/\/4AAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAD\/\/\/\/i4AAAAAAAAAAAf\/\/\/\/\/\/\/\/\/v\/\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAABv\/\/gAcAAAAAAAAAAQ\/\/\/\/\/\/\/\/\/\/n\/\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAB3\/+AAcAAAAAAAAAAD\/\/\/\/\/\/\/9\/\/z\/\/\/\/\/\/\/\/\/\/\/gAAAAAAAAAAAAAAAAAAAA7\/+AAMgAAAAAAAAAH\/\/\/\/\/\/\/+\/\/5\/\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAZ\/+AAMAAAAAAAAAAH\/\/\/\/\/\/\/+\/\/8b\/\/\/\/\/\/\/\/\/\/QAAAAAAAAAAAAAAAAAAAAM\/+AABgAAAAAAAAAP\/\/\/\/\/\/\/\/f\/94Af\/\/\/\/\/\/\/+wAAAAAAAAAAAAAAAAAAAAGf+AAcAAAAAAAAAAP\/\/\/\/\/\/\/\/P\/\/+AP\/\/\/\/\/\/\/8wAAAAAAAAAAAAAAAAAAAAAP+AB\/AAAAAAAAAAf\/\/\/\/\/\/\/\/n\/\/\/AH\/\/\/\/\/\/\/wwAAAAAAAAAAAACAAAAAAAAP+A4DwAAAAAAAAAf\/\/\/\/\/\/\/\/n\/\/\/AH\/\/\/P\/\/+AAAAAAAAAAAAAABgAAAAAAAP+B4A8AAAAAAAAAf\/\/\/\/\/\/\/\/3\/\/+AC\/\/4P\/+YAAAAAAAAAAAAAAAgAAAAAAAP\/B4AJ4AAAAAAAAf\/\/\/\/\/\/\/\/z\/\/8AA\/\/wH\/84AAAAAAAAAAAAAAAAAAAAAAAD\/\/4A39gAAAAAAAf\/\/\/\/\/\/\/\/5\/\/4AA\/\/gD\/84AwAAAAAAAAAAAAAAAAAAAAAA\/\/wAwBAAAAAAAAf\/\/\/\/\/\/\/\/4\/\/wAAf\/AD\/+AA4AAAAAAAAAAAAAAAAAAAAAAP\/wAAACAAAAAAAf\/\/\/\/\/\/\/\/8\/\/AAAf8AD\/\/AA4AAAAAAAAAAAAAAAAAAAAAABP\/gAAAAAAAAAAf\/\/\/\/\/\/\/\/8\/8AAAf4ADf\/gAwAAAAAAAAAAAAAAAAAAAAAAAH\/gAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/fwAAAP4AAf\/wA4AAAAAAAAAAAAAAAAAAAAAAAB\/gAAAAAAAAAAf\/\/\/\/\/\/\/\/\/\/AAAAP4AAP\/wA8AAAAAAAAAAAAAAAAAAAAAAAAPgAgAAAAAAAAf\/\/\/\/\/\/\/\/\/4BgAAH4AIN\/wA3AAAAAAAAAAAAAAAAAAAAAAAAHgH8AAAAAAAAP\/\/\/\/\/\/\/\/\/x8AAAHwAIMfgBPAAAAAAAAAAAAAAAAAAAAAAAADgP\/+AAAAAAAH\/\/\/\/\/\/\/\/\/\/8AAADwAAMfABPAAAAAAAAAAAAAAAAAAAAAAAAB3P\/+AAAAAAAD\/\/\/\/\/\/\/\/\/\/4AAAD4AAMOAGNgAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/gAAAAAAD\/\/\/\/\/\/\/\/\/\/4AAADcAAOIAEPgAAAAAAAAAAAAAAAAAAAAAAAAN\/\/\/wAAAAAAB\/\/\/\/\/\/\/\/\/\/wAAAAcAAGAAAPgAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/4AAAAAAA\/\/\/\/\/\/\/\/\/\/wAAAAMAADAAMTAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/wAAAAAAP\/h\/\/\/\/\/\/\/gAAAAAABzgAeBAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/4AAAAAAHAB\/\/\/\/\/\/\/AAAAAAAB7wA+AAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/4AAAAAAAAAH\/\/\/\/\/\/AAAAAAAA9wB8AAAAAAAAAAAAAAAAAAAAAAAAAAB\/\/\/\/8AAAAAAAAAH\/\/\/\/\/+AAAAAAAAfwH8AIAAAAAAAAAAAAAAAAAAAAAAAAB\/\/\/\/8AAAAAAAAAH\/\/\/\/\/4AAAAAAAAf4f+7YAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/8AAAAAAAAAH\/\/\/\/\/wAAAAAAAAX4f++YAAAAAAAAAAAAAAAAAAAAAADAH\/\/\/\/\/wAAAAAAAAH\/\/\/z\/gAAAAAAAALwf9oT0AAAAAAAAAAAAAAAAAAAAAAAH\/\/\/\/\/8AAAAAAAAH\/\/\/3\/AAAAAAAAAL8f5\/T7gAAAAAAAAAAAAAAAAAAAAAAH\/\/\/\/\/\/wAAAAAAAH\/\/\/\/+AAAAAAAAAB\/v7wO78AgAAAAAAAAAAAAAAAAAAAAH\/\/\/\/\/\/8AAAAAAAD\/\/\/\/8AAAAAAAAAB9H54+\/\/gIAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/+AAAAAAAB\/\/\/\/8AAAAAAAAAA8AB8AH\/wYAAAAAAAAAAAAAAAAAAAAH\/\/\/\/\/\/\/gAAAAAAA\/\/\/\/8AAAAAAAAAAMABsAJ\/\/zAAAAAAAAAAAAAAAAAAAAH\/\/\/\/\/\/\/gAAAAAAA\/\/\/\/8AAAAAAAAAAH+AAAI\/9hgAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/wAAAAAAAf\/\/\/8AAAAAAAAAAD\/gAhA\/8A4AAAAAAAAAAAAAAAAAAAB\/\/\/\/\/\/\/gAAAAAAAf\/\/\/8AAAAAAAAAAAH\/\/gBvOAWAAAAAAAAAAAAAAAAAAAB\/\/\/\/\/\/\/gAAAAAAAf\/\/\/8AAAAAAAAAAAABnAAGHgHAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/AAAAAAAAf\/\/\/+AAAAAAAAAAAAAmAAADgBAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/+AAAAAAAAf\/\/\/+AAAAAAAAAAAAAADwCAAAAAAAAAAAAAAAAAAAAAAAf\/\/\/\/\/8AAAAAAAAf\/\/\/+AwAAAAAAAAAAAAD+HAAAAAAAQAAAAAAAAAAAAAAAf\/\/\/\/\/4AAAAAAAA\/\/\/\/+AwAAAAAAAAAAAAH+HAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/4AAAAAAAA\/\/\/\/+B4AAAAAAAAAAAB\/8HgAAAAAAAAAAAAAAAAAAAAAAH\/\/\/\/\/4AAAAAAAA\/\/\/\/+D4AAAAAAAAAAAD\/+HwAADAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/4AAAAAAAB\/\/\/\/8PwAAAAAAAAAAAP\/\/nwAABABAAAAAAAAAAAAAAAAAA\/\/\/\/\/4AAAAAAAB\/\/\/\/4PwAAAAAAAAAAAP\/\/\/wAAAAGAAAAAAAAAAAAAAAAAAf\/\/\/\/4AAAAAAAA\/\/\/\/gPwAAAAAAAAAAAf\/\/\/4AAAAGAAAAAAAAAAAAAAAAAAf\/\/\/\/4AAAAAAAA\/\/\/\/APgAAAAAAAAAAA\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAf\/\/\/\/wAAAAAAAAf\/\/+APgEAAAAAAAAAP\/\/\/\/+AAMAAAAAAAAAAAAAAAAAAAAf\/\/\/\/gAAAAAAAAf\/\/\/AfgQAAAAAAAAAf\/\/\/\/\/AAGAAAAAAAAAAAAAAAAAAAAf\/\/\/\/gAAAAAAAAP\/\/\/AfAAAAAAAAAAB\/\/\/\/\/\/gACAAAAAAAAAAAAAAAAAAAAf\/\/\/8AAAAAAAAAP\/\/\/AfAAAAAAAAAAB\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAf\/\/\/gAAAAAAAAAP\/\/\/AfAAAAAAAAAAB\/\/\/\/\/\/4AAAAAAAAAAAAAAAAAAAAAAf\/\/\/AAAAAAAAAAP\/\/8AOAAAAAAAAAAB\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAf\/\/\/AAAAAAAAAAH\/\/4AAAAAAAAAAAAB\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAA\/\/\/\/AAAAAAAAAAD\/\/4AAAAAAAAAAAAA\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAA\/\/\/+AAAAAAAAAAB\/\/wAAAAAAAAAAAAAf\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAA\/\/\/8AAAAAAAAAAB\/\/gAAAAAAAAAAAAAf\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAA\/\/\/4AAAAAAAAAAA\/\/AAAAAAAAAAAAAAf\/\/\/\/\/4AAAAAAAAAAAAAAAAAAAAAA\/\/\/wAAAAAAAAAAA\/+AAAAAAAAAAAAAAf\/wf\/\/4AAAAAAAAAAAAAAAAAAAAAA\/\/\/gAAAAAAAAAAA\/8AAAAAAAAAAAAAAf8AP\/\/wAAAAAAAAAAAAAAAAAAAAAA\/\/\/AAAAAAAAAAAAcgAAAAAAAAAAAAAAfAAH\/\/gAABAAAAAAAAAAAAAAAAAAB\/\/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/gAABgAAAAAAAAAAAAAAAAAB\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf\/AAAAwAAAAAAAAAAAAAAAAAD\/\/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/AAAA+AAAAAAAAAAAAAAAAAD\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH8AAAA+AAAAAAAAAAAAAAAAAD\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAD\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAACYAAAAAAAAAAAAAAAAAD\/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAHwAAAAAAAAAAAAAAAAAH\/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAHAAAAAAAAAAAAAAAAAAH\/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAeAAAAAAAAAAAAAAAAAAH\/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAH+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAH\/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH8BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB\/gAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAADgAAAGAB\/wHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH\/AAAAAAAAAAAAAAAAAAP8AAAD\/\/\/\/\/wf3\/\/AAAAAAAAAAAAAAAAAAAAAAAAH\/AAAAAAAAAAAAAAAAAP\/\/\/8AP\/\/\/\/\/\/\/\/\/\/4AAAAAAAAAAAAAAAAAAAAAAAz\/AAAAAAAAABAAAAAED\/\/\/\/\/4\/\/\/\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAP\/+AAAAAAAAADoff4H\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAP\/\/AAAAAAAAf\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAA\/AAAH\/\/AAAAAAAB\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4AAAAAAAAAAAAAD\/\/8B\/\/\/AAAAAAB\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4AAAAAAAAAD\/\/AD\/\/\/\/\/\/\/AAAAAAH\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wAAAAAAAAf\/\/\/8A\/\/\/\/\/\/+AAAAAA\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4AAAAAAAH\/\/\/\/\/\/\/\/\/\/\/\/\/\/4AAAAH\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/wAAAAAAB\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4AAD\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/gAAAAAP\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/4+\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/8\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\";\n\n  var MASK_W = 360;\n  var MASK_H = 180;\n  var maskBits = (function (b64) {\n    var bin = atob(b64);\n    var out = new Uint8Array(bin.length);\n    for (var i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n    return out;\n  })(LANDMASK_B64);\n\n  function isLand(latDeg, lonDeg) {\n    var x = Math.floor((lonDeg + 180) \/ 360 * MASK_W);\n    var y = Math.floor((90 - latDeg) \/ 180 * MASK_H);\n    if (x < 0) x = 0; if (x >= MASK_W) x = MASK_W - 1;\n    if (y < 0) y = 0; if (y >= MASK_H) y = MASK_H - 1;\n    var i = y * MASK_W + x;\n    return (maskBits[i >> 3] >> (7 - (i & 7))) & 1;\n  }\n\n  function rawVec(latDeg, lonDeg) {\n    var la = latDeg * Math.PI \/ 180;\n    var lo = lonDeg * Math.PI \/ 180;\n    return {\n      x: Math.cos(la) * Math.sin(lo),\n      y: Math.sin(la),\n      z: Math.cos(la) * Math.cos(lo),\n    };\n  }\n\n  function buildLandDots(density) {\n    var pts = [];\n    var n = Math.max(200, density);\n    var ga = Math.PI * (3 - Math.sqrt(5));\n    for (var i = 0; i < n; i++) {\n      var y = 1 - (i \/ (n - 1)) * 2;\n      var r = Math.sqrt(Math.max(0, 1 - y * y));\n      var th = ga * i;\n      var lat = Math.asin(y) * 180 \/ Math.PI;\n      var lon = Math.atan2(Math.sin(th) * r, Math.cos(th) * r) * 180 \/ Math.PI;\n      if (isLand(lat, lon)) pts.push(rawVec(lat, lon));\n    }\n    return pts;\n  }\n\n  function arcPointsRaw(a, b, steps, liftMul) {\n    var A = rawVec(a.lat, a.lon);\n    var B = rawVec(b.lat, b.lon);\n    var dot = Math.max(-1, Math.min(1, A.x * B.x + A.y * B.y + A.z * B.z));\n    var ang = Math.acos(dot);\n    var lift = (0.10 + 0.13 * (ang \/ Math.PI)) * liftMul;\n    var out = [];\n    for (var i = 0; i <= steps; i++) {\n      var t = i \/ steps;\n      var s = Math.sin(ang);\n      var w1 = s < 1e-6 ? 1 - t : Math.sin((1 - t) * ang) \/ s;\n      var w2 = s < 1e-6 ? t : Math.sin(t * ang) \/ s;\n      var x = A.x * w1 + B.x * w2, y = A.y * w1 + B.y * w2, z = A.z * w1 + B.z * w2;\n      var len = Math.sqrt(x * x + y * y + z * z) || 1;\n      var h = 1 + lift * Math.sin(Math.PI * t);\n      out.push({ x: x \/ len * h, y: y \/ len * h, z: z \/ len * h });\n    }\n    return out;\n  }\n\n  function clamp(v, min, max) { return Math.max(min, Math.min(max, v)); }\n\n  function shortestYawDelta(from, to) {\n    var d = (to - from) % 360;\n    if (d > 180) d -= 360;\n    if (d < -180) d += 360;\n    return d;\n  }\n\n  function colorToRgbTriplet(input, fallback) {\n    if (!input) return fallback;\n    var s = String(input).trim();\n    if (s.charAt(0) === '#') {\n      var hex = s.slice(1);\n      if (hex.length === 3) {\n        hex = hex.split('').map(function (c) { return c + c; }).join('');\n      }\n      var num = parseInt(hex, 16);\n      if (isNaN(num)) return fallback;\n      return [(num >> 16) & 255, (num >> 8) & 255, num & 255].join(',');\n    }\n    var m = s.match(\/rgba?\\(([^)]+)\\)\/);\n    if (m) {\n      var vals = m[1].split(',').slice(0, 3).map(function (v) { return parseFloat(v); });\n      if (vals.every(function (v) { return !isNaN(v); })) return vals.join(',');\n    }\n    return fallback;\n  }\n\n  function parsePoints(str) {\n    if (!str) return null;\n    var out = [];\n    str.split(';').forEach(function (chunk) {\n      var parts = chunk.split(',');\n      if (parts.length < 3) return;\n      var lat = parseFloat(parts[0]);\n      var lon = parseFloat(parts[1]);\n      var name = parts.slice(2).join(',').trim();\n      if (!isNaN(lat) && !isNaN(lon) && name) out.push({ lat: lat, lon: lon, name: name });\n    });\n    return out.length ? out : null;\n  }\n\n  function parseRoutes(str) {\n    if (!str) return null;\n    var out = [];\n    str.split(',').forEach(function (chunk) {\n      var pair = chunk.split('>');\n      if (pair.length !== 2) return;\n      var a = pair[0].trim(), b = pair[1].trim();\n      if (a && b) out.push([a, b]);\n    });\n    return out.length ? out : null;\n  }\n\n  var DEFAULT_CITIES = [\n    { name: 'Lisbon',     lat: 38.72,  lon: -9.14 },\n    { name: 'London',     lat: 51.51,  lon: -0.13 },\n    { name: 'Copenhagen', lat: 55.68,  lon: 12.57 },\n    { name: 'Berlin',     lat: 52.52,  lon: 13.40 },\n    { name: 'Cape Town',  lat: -33.92, lon: 18.42 },\n    { name: 'Seoul',      lat: 37.57,  lon: 126.98 },\n    { name: 'Tokyo',      lat: 35.68,  lon: 139.69 },\n    { name: 'Melbourne',  lat: -37.81, lon: 144.96 },\n    { name: 'Vancouver',  lat: 49.28,  lon: -123.12 },\n    { name: 'Boulder',    lat: 40.01,  lon: -105.27 },\n    { name: 'New York',   lat: 40.71,  lon: -74.01 },\n    { name: 'Sao Paulo',  lat: -23.55, lon: -46.63 },\n  ];\n\n  function isDisabledOnViewport(el) {\n    var disable = el.dataset.anmDisable;\n    if (!disable) return false;\n    var breakpoints = {\n      mobile: '(max-width: 479px)',\n      landscape: '(orientation: landscape) and (max-width: 767px)',\n      tablet: '(max-width: 991px)',\n      desktop: '(min-width: 992px)',\n    };\n    return disable.split(',').some(function (v) {\n      var q = breakpoints[v.trim()];\n      return q && window.matchMedia(q).matches;\n    });\n  }\n\n  function initNetworkGlobe(container) {\n    if (isDisabledOnViewport(container)) return null;\n\n    var canvas   = container.querySelector('[data-anm-ng-canvas]');\n    var prevBtn  = container.querySelector('[data-anm-ng-prev]');\n    var nextBtn  = container.querySelector('[data-anm-ng-next]');\n    var cityEl   = container.querySelector('[data-anm-ng-city]');\n    var countEl  = container.querySelector('[data-anm-ng-count]');\n    var revealEls = Array.prototype.slice.call(container.querySelectorAll('[data-anm-ng-reveal]'));\n\n    if (!canvas) return null;\n    var stage = canvas.parentElement;\n    var ctx = canvas.getContext('2d');\n    if (!ctx) return null;\n\n    var pointsAttr      = container.dataset.anmPoints || '';\n    var routesAttr       = container.dataset.anmRoutes || '';\n    var dotColorAttr    = container.dataset.anmDotColor      || '#fd551d';\n    var dotSize          = parseFloat(container.dataset.anmDotSize        || '2.3');\n    var dotDensity       = parseInt(container.dataset.anmDotDensity       || '11000', 10);\n    var globeScale       = parseFloat(container.dataset.anmGlobeScale     || '0.34');\n    var pitchDeg          = parseFloat(container.dataset.anmPitch          || '20');\n    var rollDeg            = parseFloat(container.dataset.anmRoll            || '-11.72');\n    var centerLon         = parseFloat(container.dataset.anmCenterLon      || '-22');\n    var meridianStep      = parseFloat(container.dataset.anmMeridianStep    || '15');\n    var meridianOpacityMul = parseFloat(container.dataset.anmMeridianOpacity || '1');\n    var markerColorAttr  = container.dataset.anmMarkerColor    || '#fffaf2';\n    var markerSize        = parseFloat(container.dataset.anmMarkerSize      || '5');\n    var tooltipsMode       = container.dataset.anmTooltips        || 'all';\n    var arcColorAttr        = container.dataset.anmArcColor        || '#fffaf2';\n    var arcLiftMul         = parseFloat(container.dataset.anmArcLift        || '1');\n    var arcDuration        = parseFloat(container.dataset.anmArcDuration    || '1.4');\n    var connectionCount    = parseInt(container.dataset.anmConnections      || '3', 10);\n    var switchConnection   = container.dataset.anmSwitchConnection !== 'false';\n    var autorotateDeg       = parseFloat(container.dataset.anmAutorotate      || '4');\n    var dragEnabled        = container.dataset.anmDrag !== 'false';\n    var inertiaDecay       = parseFloat(container.dataset.anmInertiaDecay    || '2.4');\n    var inertiaMax         = parseFloat(container.dataset.anmInertiaMax      || '120');\n\n    \/\/ --- HQ (sede\u017ei podjetja): posebej ve\u010dji in obarvani markerji ---\n    var hqAttr        = container.dataset.anmHq || '';\n    var hqColorAttr    = container.dataset.anmHqColor    || dotColorAttr;\n    var hqSizeMul      = parseFloat(container.dataset.anmHqSizeMul || '1.9');\n    var HQ_SET = {};\n    hqAttr.split(',').forEach(function (n) {\n      n = n.trim();\n      if (n) HQ_SET[n] = true;\n    });\n\n    \/\/ --- ozadje globusa (disk za sfero, neodvisno od ozadja sekcije) ---\n    var globeBgAttr = container.dataset.anmGlobeBg;\n    if (typeof globeBgAttr === 'undefined') globeBgAttr = '#101010';\n    var GLOBE_BG_RGB = (globeBgAttr && globeBgAttr !== 'none')\n      ? colorToRgbTriplet(globeBgAttr, '16,16,16')\n      : null;\n\n    var DOT_RGB    = colorToRgbTriplet(dotColorAttr, '253,85,29');\n    var MARKER_RGB = colorToRgbTriplet(markerColorAttr, '255,250,242');\n    var ARC_RGB    = colorToRgbTriplet(arcColorAttr, '255,250,242');\n    var HQ_RGB     = colorToRgbTriplet(hqColorAttr, DOT_RGB);\n    var PITCH_BASE = pitchDeg * Math.PI \/ 180;\n    var ROLL       = rollDeg * Math.PI \/ 180;\n    var FLIGHT_DUR = 1.1;\n    var LAND_LEAD  = 0.45;\n\n    var DRAG_SENS_YAW  = -0.3;\n    var HIT_RADIUS = 16;\n    var TIP_GAP = 12;\n    var TIP_MIN_Z = 0.22;\n    var TIP_Z_HYST = 0.06;\n    var TIP_PAD_X = 5;\n    var TIP_PAD_Y = 4;\n    var TIP_SPRING = 3.2;\n    var TIP_RELAX_PASSES = 4;\n    var TIP_MAX_R = 96;\n    var MOBILE_MAX = 720;\n    var MOBILE_SCALE_MUL = 1.45;\n    var ARC_MIN_SEPARATION = 25;\n    var ARC_DRAW_PORTION = 0.62;\n\n    var PILL_CHAR_STAGGER = 0.008;\n    var LABEL_DUR = 0.55;\n    var PILL_MIN_W = 74;\n    var SWITCH_ARC_DUR = 1.5;\n    var SWITCH_ARC_DRAW = 0.30;\n    var ARC_FADE_START = 0.78;\n    var CITIES = parsePoints(pointsAttr) || DEFAULT_CITIES.map(function (c) { return { name: c.name, lat: c.lat, lon: c.lon }; });\n\n    var ROUTE_POOL = parseRoutes(routesAttr);\n    var DOTS = buildLandDots(dotDensity);\n\n    var reducedMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    var dragging = false;\n    var dragMoved = false;\n    var lastPointerX = 0;\n    var lastPointerY = 0;\n    var dragAccumYaw = 0;\n    var velYaw = 0;\n    var flying = false;\n    var landed = false;\n    var lifting = false;\n    var focusIndex = 0;\n    var forceTooltipIndex = -1;\n    var lastW = 0, lastH = 0, lastDpr = 0;\n    var lastDt = 1 \/ 60;\n    var lastMarkers = [];\n    var stageOffset = { x: 0, y: 0 };\n    var running = false;\n    var inView = true;\n    var pageVisible = !document.hidden;\n    var io = null;\n    var resizeTimer = null;\n    var flightTl = null;\n    var orient = { yaw: centerLon, tilt: 0 };\n    var arcs = [];\n    var poolCursor = 0;\n    var tooltipEls = [];\n    var tipTextEls = [];\n    var tipOffset = {};\n    var tipShown = {};\n    var tipSizes = [];\n\n    var HQ_ORDER = ['Slovenija', 'Srbija', 'Mehika'].map(function (n) {\n      return findCityIndex(n);\n    }).filter(function (i) { return i >= 0; });\n\n    var marketEls = Array.prototype.slice.call(container.querySelectorAll('[data-market]'));\n\n    function clearMarketActive() {\n      marketEls.forEach(function (b) { b.classList.remove('active'); });\n    }\n\n    function onMarketClick(e) {\n      var btn = e.currentTarget;\n      var name = btn.getAttribute('data-market');\n      var idx = findCityIndex(name);\n      if (idx < 0) return;\n      clearMarketActive();\n      btn.classList.add('active');\n      forceTooltipIndex = idx;\n      flightTo(idx);\n    }\n\n    marketEls.forEach(function (b) { b.addEventListener('click', onMarketClick); });\n\n    function project(v, yawDeg, tiltDeg) {\n      var yaw = yawDeg * Math.PI \/ 180;\n      var x1 = v.x * Math.cos(yaw) - v.z * Math.sin(yaw);\n      var z1 = v.x * Math.sin(yaw) + v.z * Math.cos(yaw);\n      var y1 = v.y;\n\n      var p = PITCH_BASE + tiltDeg * Math.PI \/ 180;\n      var y2 = y1 * Math.cos(p) - z1 * Math.sin(p);\n      var z2 = y1 * Math.sin(p) + z1 * Math.cos(p);\n      var x2 = x1;\n\n      return {\n        x: x2 * Math.cos(ROLL) - y2 * Math.sin(ROLL),\n        y: x2 * Math.sin(ROLL) + y2 * Math.cos(ROLL),\n        z: z2,\n      };\n    }\n\n    function targetOrientFor(city) {\n      var raw = rawVec(city.lat, city.lon);\n      return { yaw: Math.atan2(raw.x, raw.z) * 180 \/ Math.PI, tilt: 0 };\n    }\n\n    function separationDeg(a, b) {\n      var va = rawVec(a.lat, a.lon), vb = rawVec(b.lat, b.lon);\n      return Math.acos(clamp(va.x * vb.x + va.y * vb.y + va.z * vb.z, -1, 1)) * 180 \/ Math.PI;\n    }\n\n    function pairInUse(ai, bi) {\n      return arcs.some(function (arc) {\n        return (arc.ai === ai && arc.bi === bi) || (arc.ai === bi && arc.bi === ai);\n      });\n    }\n\n    function nextPair() {\n      if (ROUTE_POOL && ROUTE_POOL.length) {\n        for (var n = 0; n < ROUTE_POOL.length; n++) {\n          var pair = ROUTE_POOL[poolCursor % ROUTE_POOL.length];\n          poolCursor++;\n          var ai = findCityIndex(pair[0]);\n          var bi = findCityIndex(pair[1]);\n          if (ai >= 0 && bi >= 0 && ai !== bi && !pairInUse(ai, bi)) return { ai: ai, bi: bi };\n        }\n        return null;\n      }\n      if (CITIES.length < 2) return null;\n      for (var attempt = 0; attempt < 24; attempt++) {\n        var x = Math.floor(Math.random() * CITIES.length);\n        var y = Math.floor(Math.random() * CITIES.length);\n        if (x === y || pairInUse(x, y)) continue;\n        if (separationDeg(CITIES[x], CITIES[y]) < ARC_MIN_SEPARATION) continue;\n        return { ai: x, bi: y };\n      }\n      return null;\n    }\n\n    function spawnArc(seedLife) {\n      var pair = nextPair();\n      if (!pair) return;\n      arcs.push({\n        ai: pair.ai,\n        bi: pair.bi,\n        life: seedLife || 0,\n        dur: arcDuration * (0.85 + Math.random() * 0.5),\n        pts: arcPointsRaw(CITIES[pair.ai], CITIES[pair.bi], 96, arcLiftMul),\n      });\n    }\n\n    function advanceArcs(dt) {\n      for (var i = arcs.length - 1; i >= 0; i--) {\n        arcs[i].life += dt \/ arcs[i].dur;\n        if (arcs[i].life >= 1) arcs.splice(i, 1);\n      }\n\n      var ambient = 0;\n      for (var j = 0; j < arcs.length; j++) if (!arcs[j].extra) ambient++;\n      if (ambient < connectionCount) spawnArc(0);\n    }\n\n    function computeStageOffset() {\n      var x = 0, y = 0, el = canvas;\n      var guard = 0;\n      while (el && el !== container && guard < 20) {\n        x += el.offsetLeft;\n        y += el.offsetTop;\n        el = el.offsetParent;\n        guard++;\n      }\n      return { x: x, y: y };\n    }\n\n    function ensureCanvasSize() {\n      var dpr = Math.min(window.devicePixelRatio || 1, 2);\n      var w = stage.clientWidth, h = stage.clientHeight;\n      if (w === lastW && h === lastH && dpr === lastDpr) return { w: w, h: h };\n      canvas.width = w * dpr;\n      canvas.height = h * dpr;\n      canvas.style.width = w + 'px';\n      canvas.style.height = h + 'px';\n      ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n      lastW = w; lastH = h; lastDpr = dpr;\n      stageOffset = computeStageOffset();\n      return { w: w, h: h };\n    }\n\n    function findCityIndex(name) {\n      for (var i = 0; i < CITIES.length; i++) {\n        if (CITIES[i].name === name) return i;\n      }\n      return -1;\n    }\n\n    function buildTooltips() {\n      CITIES.forEach(function (city, cityIndex) {\n        var el = document.createElement('div');\n        el.className = 'ng_tip';\n\n        el.setAttribute('role', 'button');\n        el.setAttribute('tabindex', '0');\n        el.setAttribute('aria-label', 'Show ' + city.name);\n        var mask = document.createElement('span');\n        mask.className = 'ng_tip_mask';\n        var text = document.createElement('span');\n        text.className = 'ng_tip_text';\n        text.textContent = city.name;\n        mask.appendChild(text);\n        el.appendChild(mask);\n\n        el.addEventListener('click', function () {\n          if (cityIndex !== focusIndex) flightTo(cityIndex);\n        });\n        el.addEventListener('keydown', function (ev) {\n          if (ev.key !== 'Enter' && ev.key !== ' ') return;\n          ev.preventDefault();\n          if (cityIndex !== focusIndex) flightTo(cityIndex);\n        });\n\n        container.appendChild(el);\n        var rect = el.getBoundingClientRect();\n        tipSizes.push({ w: rect.width, h: rect.height });\n        el.classList.add('ng_tip_hidden');\n        tooltipEls.push(el);\n        tipTextEls.push(text);\n      });\n    }\n\n    function buildCharLine(text) {\n      var line = document.createElement('span');\n      line.className = 'ng_pill_line';\n      text.split('').forEach(function (ch) {\n        var span = document.createElement('span');\n        span.className = 'ng_pill_char';\n        span.textContent = ch === ' ' ? '\\u00A0' : ch;\n        line.appendChild(span);\n      });\n      return line;\n    }\n\n    function swapCityLabel(newText, direction) {\n      if (!cityEl) return;\n      var stagger = direction > 0 ? PILL_CHAR_STAGGER : -PILL_CHAR_STAGGER;\n\n      for (var n = cityEl.childNodes.length - 1; n >= 0; n--) {\n        var node = cityEl.childNodes[n];\n        if (node.nodeType !== 1) cityEl.removeChild(node);\n      }\n\n      var old = cityEl.querySelector('.ng_pill_line:not(.ng_line_out)');\n      if (old) {\n        old.classList.add('ng_line_out');\n        gsap.to(old.querySelectorAll('.ng_pill_char'), {\n          yPercent: direction > 0 ? -110 : 110, y: 0,\n          duration: LABEL_DUR * 0.7, ease: 'annnimateInOut', stagger: stagger,\n          force3D: true, overwrite: true,\n          onComplete: function () { old.remove(); },\n        });\n      }\n\n      var line = buildCharLine(newText);\n      cityEl.appendChild(line);\n      var chars = line.querySelectorAll('.ng_pill_char');\n\n      gsap.set(chars, { yPercent: direction > 0 ? 110 : -110, y: 0 });\n      gsap.to(chars, {\n        yPercent: 0, y: 0,\n        duration: LABEL_DUR, ease: 'annnimateInOut', stagger: stagger,\n        force3D: true, overwrite: true,\n      });\n    }\n\n    function boxAt(cx, cy, size) {\n      return {\n        l: cx - size.w \/ 2 - TIP_PAD_X, r: cx + size.w \/ 2 + TIP_PAD_X,\n        t: cy - size.h \/ 2 - TIP_PAD_Y, b: cy + size.h \/ 2 + TIP_PAD_Y,\n      };\n    }\n\n    function relaxLabels(items) {\n      var i, j, a, b;\n\n      for (i = 0; i < items.length; i++) {\n        a = items[i];\n        var pref = -(TIP_GAP + a.size.h \/ 2);\n        a.off.x += (0 - a.off.x) * Math.min(1, lastDt * TIP_SPRING);\n        a.off.y += (pref - a.off.y) * Math.min(1, lastDt * TIP_SPRING);\n      }\n\n      for (var pass = 0; pass < TIP_RELAX_PASSES; pass++) {\n        for (i = 0; i < items.length; i++) {\n          for (j = i + 1; j < items.length; j++) {\n            a = items[i];\n            b = items[j];\n            var ax = a.anchorX + a.off.x, ay = a.anchorY + a.off.y;\n            var bx = b.anchorX + b.off.x, by = b.anchorY + b.off.y;\n            var hw = a.size.w \/ 2 + b.size.w \/ 2 + TIP_PAD_X * 2;\n            var hh = a.size.h \/ 2 + b.size.h \/ 2 + TIP_PAD_Y * 2;\n            var dx = bx - ax, dy = by - ay;\n            var ox = hw - Math.abs(dx);\n            var oy = hh - Math.abs(dy);\n            if (ox <= 0 || oy <= 0) continue;\n\n            if (ox < oy) {\n              var sx = (dx === 0 ? (i < j ? -1 : 1) : (dx > 0 ? 1 : -1)) * ox \/ 2;\n              a.off.x -= sx; b.off.x += sx;\n            } else {\n              var sy = (dy === 0 ? (i < j ? -1 : 1) : (dy > 0 ? 1 : -1)) * oy \/ 2;\n              a.off.y -= sy; b.off.y += sy;\n            }\n          }\n        }\n      }\n\n      for (i = 0; i < items.length; i++) {\n        a = items[i];\n        var d = Math.hypot(a.off.x, a.off.y);\n        if (d > TIP_MAX_R) {\n          a.off.x = a.off.x \/ d * TIP_MAX_R;\n          a.off.y = a.off.y \/ d * TIP_MAX_R;\n        }\n\n        var halfW = a.size.w \/ 2 + TIP_PAD_X;\n        var minX = halfW - a.anchorX;\n        var maxX = container.clientWidth - halfW - a.anchorX;\n        if (minX < maxX) a.off.x = clamp(a.off.x, minX, maxX);\n      }\n    }\n\n    function updateTooltips() {\n      if (tooltipsMode === 'off') {\n        tooltipEls.forEach(function (el) { el.classList.add('ng_tip_hidden'); });\n        return [];\n      }\n\n      var visible = lastMarkers.filter(function (m) {\n        if (!m.visible) return false;\n        var isHQCity = !!HQ_SET[CITIES[m.index].name];\n        if (tooltipsMode === 'hq') {\n          if (!isHQCity && m.index !== forceTooltipIndex) return false;\n        } else if (tooltipsMode !== 'all' && m.index !== focusIndex && m.index !== forceTooltipIndex) {\n          return false;\n        }\n        var was = tipShown[m.index];\n        var on = was ? m.z > TIP_MIN_Z - TIP_Z_HYST : m.z > TIP_MIN_Z;\n        tipShown[m.index] = on;\n        return on;\n      });\n\n      visible.sort(function (a, b) { return a.index - b.index; });\n\n      var items = visible.map(function (m) {\n        var size = tipSizes[m.index] || { w: 60, h: 24 };\n        if (!tipOffset[m.index]) {\n          tipOffset[m.index] = { x: 0, y: -(TIP_GAP + size.h \/ 2) };\n        }\n        return {\n          index: m.index, z: m.z, size: size, off: tipOffset[m.index],\n          anchorX: stageOffset.x + m.sx, anchorY: stageOffset.y + m.sy,\n          mx: m.sx, my: m.sy,\n        };\n      });\n\n      relaxLabels(items);\n\n      var leaders = [];\n      var shown = {};\n\n      items.forEach(function (it) {\n        var el = tooltipEls[it.index];\n        if (!el) return;\n        var cx = it.anchorX + it.off.x;\n        var cy = it.anchorY + it.off.y;\n        el.style.left = cx + 'px';\n        el.style.top = cy + 'px';\n        el.classList.remove('ng_tip_hidden');\n        shown[it.index] = true;\n\n        leaders.push({\n          mx: it.mx, my: it.my,\n          cx: cx - stageOffset.x, cy: cy - stageOffset.y,\n          hw: it.size.w \/ 2 + TIP_PAD_X, hh: it.size.h \/ 2 + TIP_PAD_Y,\n        });\n\n      });\n\n      tooltipEls.forEach(function (el, idx) {\n        if (!shown[idx]) el.classList.add('ng_tip_hidden');\n        el.classList.toggle('ng_tip_focus', idx === focusIndex);\n      });\n\n      return leaders;\n    }\n\n    function draw() {\n      var sized = ensureCanvasSize();\n      var w = sized.w, h = sized.h;\n\n      var isNarrow = window.innerWidth <= MOBILE_MAX;\n      var mul = isNarrow ? MOBILE_SCALE_MUL : 1;\n      var R = Math.min(w, h) * globeScale * mul;\n      var cx = w \/ 2, cy = h \/ 2;\n\n      ctx.clearRect(0, 0, w, h);\n\n      function toScreen(v) {\n        var p = project(v, orient.yaw, orient.tilt);\n        return { sx: cx + R * p.x, sy: cy - R * p.y, z: p.z };\n      }\n\n      if (GLOBE_BG_RGB) {\n        ctx.beginPath();\n        ctx.arc(cx, cy, R * 1.02, 0, Math.PI * 2);\n        ctx.fillStyle = 'rgba(' + GLOBE_BG_RGB + ',1)';\n        ctx.fill();\n      }\n\n      ctx.beginPath();\n      ctx.arc(cx, cy, R, 0, Math.PI * 2);\n      ctx.strokeStyle = 'rgba(255,250,242,0.07)';\n      ctx.lineWidth = 1;\n      ctx.stroke();\n\n      if (meridianStep > 0) {\n        for (var m = 0; m < 360; m += meridianStep) {\n          var prev = null;\n          for (var la = -90; la <= 90; la += 3) {\n            var p = toScreen(rawVec(la, m));\n            if (prev && prev.z > 0 && p.z > 0) {\n              ctx.beginPath();\n              ctx.moveTo(prev.sx, prev.sy);\n              ctx.lineTo(p.sx, p.sy);\n              var alpha = clamp((0.016 + 0.028 * p.z) * meridianOpacityMul, 0, 1);\n              ctx.strokeStyle = 'rgba(255,250,242,' + alpha.toFixed(3) + ')';\n              ctx.stroke();\n            }\n            prev = p;\n          }\n        }\n      }\n\n      var half = dotSize \/ 2;\n      for (var i = 0; i < DOTS.length; i++) {\n        var dp = toScreen(DOTS[i]);\n        if (dp.z <= 0.02) continue;\n        ctx.fillStyle = 'rgba(' + DOT_RGB + ',' + (0.14 + 0.42 * dp.z).toFixed(3) + ')';\n        ctx.fillRect(dp.sx - half, dp.sy - half, dotSize, dotSize);\n      }\n\n      ctx.lineWidth = 1;\n      ctx.lineCap = 'round';\n      arcs.forEach(function (arc) {\n        var pts = arc.pts;\n        var head = Math.min(1, arc.life \/ (arc.draw || ARC_DRAW_PORTION));\n        var fade = arc.life > ARC_FADE_START\n          ? 1 - (arc.life - ARC_FADE_START) \/ (1 - ARC_FADE_START)\n          : 1;\n        if (fade <= 0) return;\n        var rgb = arc.rgb || ARC_RGB;\n        var upto = Math.max(1, Math.floor((pts.length - 1) * head));\n        for (var k = 1; k <= upto; k++) {\n          var p0 = toScreen(pts[k - 1]);\n          var p1 = toScreen(pts[k]);\n          if (p0.z <= 0 || p1.z <= 0) continue;\n          var t = k \/ upto;\n          var a1 = (0.10 + 0.62 * Math.pow(t, 2.2)) * fade;\n          ctx.beginPath();\n          ctx.moveTo(p0.sx, p0.sy);\n          ctx.lineTo(p1.sx, p1.sy);\n          ctx.strokeStyle = 'rgba(' + rgb + ',' + a1.toFixed(3) + ')';\n          ctx.stroke();\n        }\n        if (head < 1) {\n          var hs = toScreen(pts[upto]);\n          if (hs.z > 0) {\n            ctx.beginPath();\n            ctx.arc(hs.sx, hs.sy, 2, 0, Math.PI * 2);\n            ctx.fillStyle = 'rgba(' + rgb + ',' + (0.92 * fade).toFixed(3) + ')';\n            ctx.fill();\n          }\n        }\n      });\n\n      lastMarkers = [];\n      for (var c = 0; c < CITIES.length; c++) {\n        var city = CITIES[c];\n        if (typeof city.scale !== 'number') city.scale = 0;\n        var raw = rawVec(city.lat, city.lon);\n        var sp = toScreen(raw);\n        var isFocus = landed && c === focusIndex;\n        var visibleNow = sp.z > 0.02;\n\n        if (!(lifting && c === focusIndex)) {\n          var targetScale = visibleNow ? 1 : 0;\n          city.scale += (targetScale - city.scale) * Math.min(1, lastDt * 6);\n        }\n\n        if (typeof city.focusAmt !== 'number') city.focusAmt = 0;\n        var focusTarget = c === focusIndex ? 1 : 0;\n        city.focusAmt += (focusTarget - city.focusAmt) * Math.min(1, lastDt * 9);\n\n        if (city.scale > 0.01) {\n          var isHQ = !!HQ_SET[city.name];\n          var size = markerSize * (isHQ ? hqSizeMul : 1) * (1 + 0.4 * city.focusAmt) * city.scale;\n          var restAlpha = 0.55 + 0.37 * Math.max(0, sp.z);\n          var baseAlpha = restAlpha + (0.92 - restAlpha) * city.focusAmt;\n          var markerRgb = isHQ ? HQ_RGB : MARKER_RGB;\n          ctx.fillStyle = 'rgba(' + markerRgb + ',' + baseAlpha.toFixed(3) + ')';\n          ctx.fillRect(sp.sx - size \/ 2, sp.sy - size \/ 2, size, size);\n        }\n\n        lastMarkers.push({\n          index: c, sx: sp.sx, sy: sp.sy, z: sp.z, isFocus: isFocus,\n          visible: visibleNow && city.scale > 0.05,\n        });\n      }\n\n      var leaders = updateTooltips();\n      ctx.lineWidth = 1;\n      leaders.forEach(function (ld) {\n        var vx = ld.cx - ld.mx;\n        var vy = ld.cy - ld.my;\n        var dist = Math.hypot(vx, vy);\n        if (dist < 4) return;\n\n        var tx = vx !== 0 ? ld.hw \/ Math.abs(vx) : Infinity;\n        var ty = vy !== 0 ? ld.hh \/ Math.abs(vy) : Infinity;\n        var t = 1 - Math.min(tx, ty);\n        if (t <= 0.02) return;\n        ctx.beginPath();\n        ctx.moveTo(ld.mx, ld.my);\n        ctx.lineTo(ld.mx + vx * t, ld.my + vy * t);\n        ctx.strokeStyle = 'rgba(' + MARKER_RGB + ',0.22)';\n        ctx.stroke();\n      });\n    }\n\n    function flightTo(index, direction) {\n      if (!CITIES.length) return null;\n      index = ((index % CITIES.length) + CITIES.length) % CITIES.length;\n      var city = CITIES[index];\n      var prevIndex = focusIndex;\n      focusIndex = index;\n      landed = false;\n      lifting = false;\n      if (prevIndex !== index && HQ_SET[city.name]) swapCityLabel(city.name, direction || 1);\n\n      if (flightTl) { flightTl.kill(); flightTl = null; }\n      gsap.killTweensOf(orient);\n\n      if (switchConnection && prevIndex !== index && CITIES[prevIndex]) {\n        arcs.push({\n          ai: prevIndex,\n          bi: index,\n          life: 0,\n          dur: SWITCH_ARC_DUR,\n          draw: SWITCH_ARC_DRAW,\n          rgb: DOT_RGB,\n          extra: true,\n          pts: arcPointsRaw(CITIES[prevIndex], city, 96, arcLiftMul),\n        });\n      }\n\n      var target = targetOrientFor(city);\n      var toYaw = orient.yaw + shortestYawDelta(orient.yaw, target.yaw);\n      var dur = reducedMotion ? 0.001 : FLIGHT_DUR;\n      var landAt = Math.max(0, dur - (reducedMotion ? 0 : LAND_LEAD));\n\n      flying = true;\n\n      var tl = gsap.timeline({\n        onComplete: function () { flying = false; if (flightTl === tl) flightTl = null; },\n      });\n      flightTl = tl;\n\n      tl.to(orient, {\n        yaw: toYaw,\n        tilt: target.tilt,\n        duration: dur,\n        ease: reducedMotion ? 'none' : 'annnimate',\n        data: { label: 'Globe turns to face ' + city.name },\n      }, 0);\n\n      tl.call(function () {\n        landed = true;\n        lifting = true;\n      }, null, landAt);\n\n      tl.to(city, {\n        scale: 1.35,\n        duration: reducedMotion ? 0.001 : 0.16,\n        ease: 'power2.out',\n        data: { label: city.name + ' marker lifts on arrival' },\n      }, landAt);\n\n      tl.to(city, {\n        scale: 1,\n        duration: reducedMotion ? 0.001 : 0.22,\n        ease: 'power2.out',\n        onComplete: function () { lifting = false; },\n        data: { label: city.name + ' marker settles' },\n      }, '>');\n\n      return tl;\n    }\n\n    function buildEntranceReveal() {\n      if (!revealEls.length) return;\n\n      if (reducedMotion) {\n        gsap.set(revealEls, { y: 0, opacity: 1, clearProps: 'will-change' });\n        return;\n      }\n\n      gsap.set(revealEls, { y: 24, opacity: 0, force3D: true });\n\n      function play() {\n        gsap.to(revealEls, {\n          y: 0, opacity: 1, duration: 0.9, ease: 'annnimate', stagger: 0.08, force3D: true,\n          data: { label: 'Section content rises into view' },\n        });\n      }\n\n      requestAnimationFrame(function () {\n        var r = container.getBoundingClientRect();\n        var isInView = r.top < window.innerHeight && r.bottom > 0;\n        if (isInView) {\n          play();\n        } else {\n          ScrollTrigger.create({ trigger: container, start: 'top 85%', once: true, onEnter: play });\n        }\n        ScrollTrigger.refresh();\n      });\n    }\n\n    function startLoop() {\n      if (running) return;\n      running = true;\n      gsap.ticker.add(tick);\n    }\n\n    function stopLoop() {\n      if (!running) return;\n      running = false;\n      gsap.ticker.remove(tick);\n    }\n\n    function tick(time, deltaMs) {\n      var dt = Math.min((deltaMs || 16.7) \/ 1000, 0.1);\n      lastDt = dt;\n\n      if (!flying) {\n        var stepYaw = dragAccumYaw;\n        dragAccumYaw = 0;\n\n        if (dragging) {\n          velYaw = dt > 0 ? clamp(stepYaw \/ dt, -inertiaMax, inertiaMax) : 0;\n        } else if (reducedMotion) {\n          velYaw = 0;\n        } else {\n          velYaw *= Math.exp(-inertiaDecay * dt);\n        }\n\n        orient.yaw += stepYaw;\n        if (!dragging) orient.yaw += velYaw * dt;\n\n        if (!reducedMotion && autorotateDeg !== 0) {\n          orient.yaw += autorotateDeg * dt;\n        }\n      }\n\n      if (!reducedMotion) advanceArcs(dt);\n\n      draw();\n    }\n\n    function onCanvasClick(e) {\n      if (dragMoved) { dragMoved = false; return; }\n      var rect = canvas.getBoundingClientRect();\n      var x = e.clientX - rect.left;\n      var y = e.clientY - rect.top;\n      var best = -1, bestDist = HIT_RADIUS;\n      lastMarkers.forEach(function (m) {\n        if (!m.visible) return;\n        var d = Math.hypot(m.sx - x, m.sy - y);\n        if (d < bestDist) { bestDist = d; best = m.index; }\n      });\n      if (best >= 0 && best !== focusIndex) {\n        var name = CITIES[best].name;\n        clearMarketActive();\n        if (HQ_SET[name]) {\n          forceTooltipIndex = -1;\n        } else {\n          forceTooltipIndex = best;\n          var btn = marketEls.filter(function (b) { return b.getAttribute('data-market') === name; })[0];\n          if (btn) btn.classList.add('active');\n        }\n        flightTo(best);\n      }\n    }\n\n    function onPointerDown(e) {\n      if (!dragEnabled) return;\n      dragging = true;\n      dragMoved = false;\n      lastPointerX = e.clientX;\n      lastPointerY = e.clientY;\n      if (flying) {\n        if (flightTl) { flightTl.kill(); flightTl = null; }\n        gsap.killTweensOf(orient);\n        flying = false;\n      }\n      if (canvas.setPointerCapture) {\n        try { canvas.setPointerCapture(e.pointerId); } catch (err) {  }\n      }\n    }\n\n    function onPointerMove(e) {\n      if (!dragging) return;\n      var dx = e.clientX - lastPointerX;\n      var dy = e.clientY - lastPointerY;\n      if (Math.abs(dx) + Math.abs(dy) > 3) dragMoved = true;\n      dragAccumYaw += dx * DRAG_SENS_YAW;\n      lastPointerX = e.clientX;\n      lastPointerY = e.clientY;\n    }\n\n    function onPointerUp() {\n      if (!dragging) return;\n      dragging = false;\n    }\n\n    function stepTo(dir) {\n      if (HQ_ORDER.length < 2) return null;\n      var pos = HQ_ORDER.indexOf(focusIndex);\n      if (pos < 0) pos = 0;\n      var nextPos = ((pos + dir) % HQ_ORDER.length + HQ_ORDER.length) % HQ_ORDER.length;\n      var target = HQ_ORDER[nextPos];\n      forceTooltipIndex = -1;\n      clearMarketActive();\n      return flightTo(target, dir);\n    }\n\n    function handlePrev() { return stepTo(-1); }\n    function handleNext() { return stepTo(1); }\n\n    canvas.addEventListener('pointerdown', onPointerDown);\n    canvas.addEventListener('pointermove', onPointerMove);\n    window.addEventListener('pointerup', onPointerUp);\n    window.addEventListener('pointercancel', onPointerUp);\n    canvas.addEventListener('click', onCanvasClick);\n    if (prevBtn) prevBtn.addEventListener('click', handlePrev);\n    if (nextBtn) nextBtn.addEventListener('click', handleNext);\n\n    window.addEventListener('resize', function () {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(function () {\n        if (typeof ScrollTrigger !== 'undefined') ScrollTrigger.refresh();\n      }, 150);\n    });\n\n    document.addEventListener('visibilitychange', function () {\n      pageVisible = !document.hidden;\n      if (inView && pageVisible) startLoop(); else stopLoop();\n    });\n\n    if (typeof IntersectionObserver !== 'undefined') {\n      io = new IntersectionObserver(function (entries) {\n        inView = !!(entries[0] && entries[0].isIntersecting);\n        if (inView && pageVisible) startLoop(); else stopLoop();\n      }, { rootMargin: '200px 0px 200px 0px' });\n      io.observe(container);\n    }\n\n    if (HQ_ORDER.length) {\n      focusIndex = HQ_ORDER[0];\n      orient.yaw = targetOrientFor(CITIES[focusIndex]).yaw;\n      landed = true;\n    }\n\n    if (cityEl && CITIES[focusIndex]) {\n      cityEl.innerHTML = '';\n      cityEl.appendChild(buildCharLine(CITIES[focusIndex].name));\n    }\n\n    CITIES.forEach(function (city) {\n      var raw = rawVec(city.lat, city.lon);\n      city.scale = project(raw, orient.yaw, orient.tilt).z > 0.02 ? 1 : 0;\n    });\n\n    buildTooltips();\n    for (var s0 = 0; s0 < connectionCount; s0++) spawnArc(s0 \/ connectionCount);\n    draw();\n    buildEntranceReveal();\n    startLoop();\n\n    gsap.matchMedia().add('(prefers-reduced-motion: reduce)', function () {\n      reducedMotion = true;\n      velYaw = 0;\n    });\n\n    return {\n      next: function () { return flightTo(focusIndex + 1); },\n      prev: function () { return flightTo(focusIndex - 1); },\n      flyTo: function (name) {\n        var idx = findCityIndex(name);\n        return idx >= 0 ? flightTo(idx) : null;\n      },\n      demo: function () {\n        return flightTo((focusIndex + 1) % CITIES.length);\n      },\n      refresh: function () {\n        draw();\n      },\n      kill: function () {\n        stopLoop();\n        if (io) { io.disconnect(); io = null; }\n        if (flightTl) { flightTl.kill(); flightTl = null; }\n        gsap.killTweensOf(orient);\n        canvas.removeEventListener('pointerdown', onPointerDown);\n        canvas.removeEventListener('pointermove', onPointerMove);\n        window.removeEventListener('pointerup', onPointerUp);\n        window.removeEventListener('pointercancel', onPointerUp);\n        canvas.removeEventListener('click', onCanvasClick);\n        if (prevBtn) prevBtn.removeEventListener('click', handlePrev);\n        if (nextBtn) nextBtn.removeEventListener('click', handleNext);\n        tooltipEls.forEach(function (el) { el.remove(); });\n        tooltipEls = [];\n        tipTextEls = [];\n      },\n    };\n  }\n\n  function waitForGSAP(cb, attempts) {\n    attempts = attempts || 0;\n    if (typeof gsap !== 'undefined' && typeof ScrollTrigger !== 'undefined' && typeof CustomEase !== 'undefined') {\n      cb();\n      return;\n    }\n    if (attempts < 100) setTimeout(function () { waitForGSAP(cb, attempts + 1); }, 50);\n    else console.error('[Annnimate] network-globe: gsap failed to load');\n  }\n\n  waitForGSAP(function () {\n    gsap.registerPlugin(ScrollTrigger, CustomEase);\n    CustomEase.create('annnimate', 'M0,0 C0.3,0.9 0.1,1 1,1');\n    CustomEase.create('annnimateInOut', 'M0,0 C0.7,0 0.16,1 1,1');\n\n    var instances = [];\n    document.querySelectorAll('[data-anm-network-globe]').forEach(function (el) {\n      var api = initNetworkGlobe(el);\n      if (api) instances.push(api);\n    });\n\n    window.Anm = window.Anm || {};\n    window.Anm.NetworkGlobe = {\n      refresh: function () { instances.forEach(function (i) { i.refresh(); }); },\n      demo: function () { return instances[0] ? instances[0].demo() : null; },\n      flyTo: function (name) { return instances[0] ? instances[0].flyTo(name) : null; },\n    };\n  });\n})();\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Od razvoja do re\u0161itve. V plastiki, avtomatizaciji in \u017eici. Poglej video Podjetje \u017de desetletja razvijamo in izdelujemo bovden potege, ki so del milijonov vozil po vsem svetu. Za vsakim izdelkom stojijo bogate izku\u0161nje, natan\u010dni proizvodni procesi in neprestano iskanje bolj\u0161ih re\u0161itev. Z visoko stopnjo kakovosti, tehnolo\u0161kega znanja in zanesljivosti ustvarjamo komponente, ki prispevajo k varnej\u0161emu, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":2398,"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":7788,"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/pages\/17\/revisions\/7788"}],"wp:attachment":[{"href":"https:\/\/tbp.si\/de\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}