{"id":660,"date":"2026-04-15T07:17:37","date_gmt":"2026-04-15T07:17:37","guid":{"rendered":"https:\/\/rapidbase.hetbot.com\/?page_id=660"},"modified":"2026-06-25T12:03:06","modified_gmt":"2026-06-25T12:03:06","slug":"moduly","status":"publish","type":"page","link":"https:\/\/rapidbase.hetbot.com\/en\/moduly\/","title":{"rendered":"Modules"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"660\" class=\"elementor elementor-660\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a92d3cd e-con-full e-flex e-con e-parent\" data-id=\"a92d3cd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c4abfde elementor-widget elementor-widget-html\" data-id=\"c4abfde\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@300;800&display=swap');\r\n\r\n.rb-robot*{box-sizing:border-box;margin:0;padding:0}\r\n.rb-robot{font-family:'Open Sans',sans-serif;background:#080808;padding:100px 60px;position:relative;overflow:hidden}\r\n.rb-robot::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(to right,#d00000,rgba(208,0,0,0.2))}\r\n.rb-robot-glow{position:absolute;top:-100px;right:-100px;width:700px;height:700px;background:radial-gradient(circle,rgba(208,0,0,0.06) 0%,transparent 65%);pointer-events:none}\r\n.rb-robot-inner{max-width:1280px;margin:0 auto}\r\n\r\n.rb-robot-top{margin-bottom:64px;opacity:0;transform:translateY(24px);transition:opacity 0.7s ease,transform 0.7s ease}\r\n.rb-robot-top.visible{opacity:1;transform:translateY(0)}\r\n.rb-robot-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:16px}\r\n.rb-robot-eyebrow-line{width:32px;height:2px;background:#d00000}\r\n.rb-robot-eyebrow-text{font-size:10px;font-weight:800;letter-spacing:5px;text-transform:uppercase;color:#d00000}\r\n.rb-robot-title{font-size:clamp(24px,3vw,44px);font-weight:800;color:#fff;letter-spacing:-1px;line-height:1.05;margin:0}\r\n.rb-robot-title span{color:#d00000}\r\n\r\n.rb-robot-layout{display:grid;grid-template-columns:1fr 420px;gap:48px;align-items:center;opacity:0;transform:translateY(24px);transition:opacity 0.7s ease 0.15s,transform 0.7s ease 0.15s}\r\n.rb-robot-layout.visible{opacity:1;transform:translateY(0)}\r\n\r\n.rb-robot-svg-wrap{position:relative}\r\n.rb-robot-svg-wrap svg{width:100%;height:auto;display:block}\r\n\r\n\/* GUI FLOATING BADGE NAD ROBOTEM *\/\r\n.rb-gui-badge{\r\n  position:absolute;\r\n  top:-10px;\r\n  left:50%;\r\n  transform:translateX(-50%);\r\n  display:flex;\r\n  flex-direction:column;\r\n  align-items:center;\r\n  gap:0;\r\n  cursor:pointer;\r\n  z-index:4;\r\n}\r\n.rb-gui-badge-body{\r\n  background:#111;\r\n  border:1px solid rgba(255,255,255,0.08);\r\n  border-top:2px solid rgba(208,0,0,0.4);\r\n  padding:10px 18px;\r\n  display:flex;\r\n  align-items:center;\r\n  gap:10px;\r\n  transition:background 0.25s,border-top-color 0.25s;\r\n  white-space:nowrap;\r\n}\r\n.rb-gui-badge.active .rb-gui-badge-body,\r\n.rb-gui-badge:hover .rb-gui-badge-body{\r\n  background:#1a0000;\r\n  border-top-color:#d00000;\r\n}\r\n.rb-gui-badge-icon{\r\n  width:28px;height:28px;\r\n  background:rgba(208,0,0,0.1);\r\n  border:1px solid rgba(208,0,0,0.3);\r\n  display:flex;align-items:center;justify-content:center;\r\n  flex-shrink:0;\r\n}\r\n.rb-gui-badge-icon svg{\r\n  width:14px;height:14px;\r\n  stroke:#d00000;fill:none;\r\n  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;\r\n}\r\n.rb-gui-badge-text{}\r\n.rb-gui-badge-label{\r\n  font-size:8px;font-weight:800;\r\n  letter-spacing:3px;text-transform:uppercase;\r\n  color:rgba(208,0,0,0.7);\r\n  margin-bottom:2px;\r\n}\r\n.rb-gui-badge-name{\r\n  font-size:11px;font-weight:800;\r\n  color:#fff;text-transform:uppercase;\r\n  letter-spacing:-0.2px;\r\n}\r\n.rb-gui-badge-line{\r\n  width:1px;height:24px;\r\n  background:linear-gradient(to bottom,rgba(208,0,0,0.5),rgba(208,0,0,0.1));\r\n  position:relative;\r\n}\r\n.rb-gui-badge-line::after{\r\n  content:'';\r\n  position:absolute;\r\n  bottom:0;left:50%;\r\n  transform:translateX(-50%);\r\n  width:6px;height:6px;\r\n  background:#d00000;border-radius:50%;\r\n  box-shadow:0 0 8px rgba(208,0,0,0.8);\r\n  animation:rbGuiPulse 2s ease-in-out infinite;\r\n}\r\n@keyframes rbGuiPulse{\r\n  0%,100%{box-shadow:0 0 4px rgba(208,0,0,0.5)}\r\n  50%{box-shadow:0 0 12px rgba(208,0,0,1)}\r\n}\r\n\r\n.rb-robot-hint{font-size:11px;font-weight:300;color:rgba(255,255,255,0.25);letter-spacing:1px;text-align:center;margin-top:16px}\r\n\r\n.rb-hotspot{cursor:pointer}\r\n@keyframes rbPulse{0%,100%{opacity:0.3;r:14}50%{opacity:0.08;r:20}}\r\n.rb-hotspot-pulse{animation:rbPulse 2s ease-in-out infinite}\r\n.rb-hotspot-pulse-2{animation:rbPulse 2s ease-in-out 0.3s infinite}\r\n.rb-hotspot-pulse-3{animation:rbPulse 2s ease-in-out 0.6s infinite}\r\n.rb-hotspot-pulse-4{animation:rbPulse 2s ease-in-out 0.9s infinite}\r\n.rb-hotspot-pulse-5{animation:rbPulse 2s ease-in-out 1.2s infinite}\r\n.rb-hotspot-pulse-6{animation:rbPulse 2s ease-in-out 1.5s infinite}\r\n\r\n.rb-robot-modules{display:flex;flex-direction:column;gap:3px}\r\n.rb-module-card{background:#111;padding:16px 20px;display:flex;align-items:center;gap:14px;text-decoration:none;transition:background 0.25s;border-left:3px solid transparent;cursor:pointer}\r\n.rb-module-card:hover,.rb-module-card.active{background:#1a0000;border-left-color:#d00000}\r\n.rb-module-card-num{font-size:9px;font-weight:800;letter-spacing:3px;color:rgba(208,0,0,0.6);flex-shrink:0;width:24px}\r\n.rb-module-card-icon{width:28px;height:28px;background:rgba(208,0,0,0.08);border:1px solid rgba(208,0,0,0.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}\r\n.rb-module-card-icon svg{width:13px;height:13px;stroke:#d00000;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}\r\n.rb-module-card-name{font-size:13px;font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:-0.2px;flex:1}\r\n.rb-module-card-arrow{font-size:12px;color:rgba(255,255,255,0.3);transition:color 0.25s,transform 0.25s}\r\n.rb-module-card:hover .rb-module-card-arrow,.rb-module-card.active .rb-module-card-arrow{color:#d00000;transform:translateX(4px)}\r\n.rb-module-card-tag{font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;padding:2px 8px;background:rgba(208,0,0,0.15);color:rgba(208,0,0,0.8);flex-shrink:0}\r\n\r\n.rb-module-separator{\r\n  display:flex;align-items:center;gap:12px;\r\n  padding:10px 20px;\r\n  font-size:8px;font-weight:800;\r\n  letter-spacing:3px;text-transform:uppercase;\r\n  color:rgba(255,255,255,0.15);\r\n}\r\n.rb-module-separator::before,.rb-module-separator::after{\r\n  content:'';flex:1;height:1px;\r\n  background:rgba(255,255,255,0.06);\r\n}\r\n\r\n@media(max-width:1024px){.rb-robot{padding:80px 40px}.rb-robot-layout{grid-template-columns:1fr;gap:40px}}\r\n@media(max-width:768px){.rb-robot{padding:64px 24px}.rb-gui-badge{display:none}}\r\n@media(max-width:480px){.rb-robot{padding:48px 20px}}\r\n<\/style>\r\n\r\n<section class=\"rb-robot\" aria-label=\"Interaktywna grafika systemu RapidBase \u2014 modu\u0142y robotyczne\">\r\n  <div class=\"rb-robot-glow\" aria-hidden=\"true\"><\/div>\r\n  <div class=\"rb-robot-inner\">\r\n\r\n    <div class=\"rb-robot-top\">\r\n      <div class=\"rb-robot-eyebrow\">\r\n        <div class=\"rb-robot-eyebrow-line\"><\/div>\r\n        <div class=\"rb-robot-eyebrow-text\">System modu\u0142\u00f3w<\/div>\r\n      <\/div>\r\n      <h2 class=\"rb-robot-title\">Modu\u0142y jako cz\u0119\u015bci<br><span>wi\u0119kszego systemu<\/span><\/h2>\r\n    <\/div>\r\n\r\n    <div class=\"rb-robot-layout\">\r\n\r\n      <div class=\"rb-robot-svg-wrap\">\r\n\r\n        <!-- GUI FLOATING BADGE NAD ROBOTEM -->\r\n        <div class=\"rb-gui-badge\" data-ext-module=\"6\" role=\"button\" tabindex=\"0\" aria-label=\"Interfejs GUI\">\r\n          <div class=\"rb-gui-badge-body\">\r\n            <div class=\"rb-gui-badge-icon\">\r\n              <svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg>\r\n            <\/div>\r\n            <div class=\"rb-gui-badge-text\">\r\n              <div class=\"rb-gui-badge-label\">07 \/ Software<\/div>\r\n              <div class=\"rb-gui-badge-name\">Interfejs GUI<\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"rb-gui-badge-line\"><\/div>\r\n        <\/div>\r\n\r\n        <svg viewBox=\"0 0 600 420\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\r\n          <rect x=\"40\" y=\"372\" width=\"520\" height=\"1\" fill=\"rgba(255,255,255,0.08)\"\/>\r\n          <ellipse cx=\"300\" cy=\"376\" rx=\"190\" ry=\"6\" fill=\"rgba(0,0,0,0.5)\"\/>\r\n\r\n          <ellipse cx=\"130\" cy=\"355\" rx=\"42\" ry=\"42\" fill=\"#1a1a1a\" stroke=\"#333\" stroke-width=\"2\"\/>\r\n          <ellipse cx=\"130\" cy=\"355\" rx=\"32\" ry=\"32\" fill=\"#222\" stroke=\"#444\" stroke-width=\"1\"\/>\r\n          <ellipse cx=\"130\" cy=\"355\" rx=\"10\" ry=\"10\" fill=\"#111\" stroke=\"rgba(255,255,255,0.3)\" stroke-width=\"1.5\"\/>\r\n          <line x1=\"130\" y1=\"323\" x2=\"130\" y2=\"387\" stroke=\"#333\" stroke-width=\"1\"\/>\r\n          <line x1=\"98\" y1=\"355\" x2=\"162\" y2=\"355\" stroke=\"#333\" stroke-width=\"1\"\/>\r\n          <line x1=\"107\" y1=\"332\" x2=\"153\" y2=\"378\" stroke=\"#2a2a2a\" stroke-width=\"0.8\"\/>\r\n          <line x1=\"153\" y1=\"332\" x2=\"107\" y2=\"378\" stroke=\"#2a2a2a\" stroke-width=\"0.8\"\/>\r\n\r\n          <ellipse cx=\"470\" cy=\"355\" rx=\"42\" ry=\"42\" fill=\"#1a1a1a\" stroke=\"#333\" stroke-width=\"2\"\/>\r\n          <ellipse cx=\"470\" cy=\"355\" rx=\"32\" ry=\"32\" fill=\"#222\" stroke=\"#444\" stroke-width=\"1\"\/>\r\n          <ellipse cx=\"470\" cy=\"355\" rx=\"10\" ry=\"10\" fill=\"#111\" stroke=\"rgba(255,255,255,0.3)\" stroke-width=\"1.5\"\/>\r\n          <line x1=\"470\" y1=\"323\" x2=\"470\" y2=\"387\" stroke=\"#333\" stroke-width=\"1\"\/>\r\n          <line x1=\"438\" y1=\"355\" x2=\"502\" y2=\"355\" stroke=\"#333\" stroke-width=\"1\"\/>\r\n          <line x1=\"447\" y1=\"332\" x2=\"493\" y2=\"378\" stroke=\"#2a2a2a\" stroke-width=\"0.8\"\/>\r\n          <line x1=\"493\" y1=\"332\" x2=\"447\" y2=\"378\" stroke=\"#2a2a2a\" stroke-width=\"0.8\"\/>\r\n\r\n          <rect x=\"100\" y=\"300\" width=\"400\" height=\"60\" rx=\"4\" fill=\"#2a2a2a\" stroke=\"#444\" stroke-width=\"1.5\"\/>\r\n          <rect x=\"100\" y=\"300\" width=\"400\" height=\"3\" fill=\"rgba(255,255,255,0.2)\"\/>\r\n          <line x1=\"200\" y1=\"303\" x2=\"200\" y2=\"360\" stroke=\"rgba(255,255,255,0.06)\" stroke-width=\"1\"\/>\r\n          <line x1=\"300\" y1=\"303\" x2=\"300\" y2=\"360\" stroke=\"rgba(255,255,255,0.06)\" stroke-width=\"1\"\/>\r\n          <line x1=\"400\" y1=\"303\" x2=\"400\" y2=\"360\" stroke=\"rgba(255,255,255,0.06)\" stroke-width=\"1\"\/>\r\n          <rect x=\"115\" y=\"315\" width=\"60\" height=\"25\" rx=\"2\" fill=\"#222\" stroke=\"#3a3a3a\" stroke-width=\"1\"\/>\r\n          <rect x=\"420\" y=\"315\" width=\"60\" height=\"25\" rx=\"2\" fill=\"#222\" stroke=\"#3a3a3a\" stroke-width=\"1\"\/>\r\n\r\n          <!-- CHIP STEROWNIK na podwoziu -->\r\n          <rect x=\"245\" y=\"308\" width=\"110\" height=\"44\" rx=\"3\" fill=\"#1a1a1a\" stroke=\"#d00000\" stroke-width=\"1\"\/>\r\n          <rect x=\"249\" y=\"312\" width=\"102\" height=\"36\" rx=\"2\" fill=\"#0d0d0d\"\/>\r\n          <rect x=\"253\" y=\"316\" width=\"94\" height=\"8\" rx=\"1\" fill=\"rgba(208,0,0,0.15)\"\/>\r\n          <rect x=\"253\" y=\"327\" width=\"40\" height=\"4\" rx=\"1\" fill=\"rgba(208,0,0,0.4)\"\/>\r\n          <rect x=\"297\" y=\"327\" width=\"50\" height=\"4\" rx=\"1\" fill=\"rgba(255,255,255,0.08)\"\/>\r\n          <rect x=\"253\" y=\"334\" width=\"94\" height=\"4\" rx=\"1\" fill=\"rgba(255,255,255,0.05)\"\/>\r\n          <!-- piny sterownika -->\r\n          <line x1=\"255\" y1=\"308\" x2=\"255\" y2=\"300\" stroke=\"rgba(208,0,0,0.5)\" stroke-width=\"1.5\"\/>\r\n          <line x1=\"270\" y1=\"308\" x2=\"270\" y2=\"300\" stroke=\"rgba(208,0,0,0.5)\" stroke-width=\"1.5\"\/>\r\n          <line x1=\"285\" y1=\"308\" x2=\"285\" y2=\"300\" stroke=\"rgba(208,0,0,0.5)\" stroke-width=\"1.5\"\/>\r\n          <line x1=\"315\" y1=\"308\" x2=\"315\" y2=\"300\" stroke=\"rgba(208,0,0,0.5)\" stroke-width=\"1.5\"\/>\r\n          <line x1=\"330\" y1=\"308\" x2=\"330\" y2=\"300\" stroke=\"rgba(208,0,0,0.5)\" stroke-width=\"1.5\"\/>\r\n          <line x1=\"345\" y1=\"308\" x2=\"345\" y2=\"300\" stroke=\"rgba(208,0,0,0.5)\" stroke-width=\"1.5\"\/>\r\n\r\n          <rect x=\"120\" y=\"160\" width=\"360\" height=\"145\" rx=\"6\" fill=\"#e8e8e8\" stroke=\"#ccc\" stroke-width=\"1.5\"\/>\r\n          <rect x=\"120\" y=\"160\" width=\"360\" height=\"5\" fill=\"#d00000\"\/>\r\n          <rect x=\"120\" y=\"295\" width=\"360\" height=\"10\" fill=\"#ccc\"\/>\r\n\r\n          <rect x=\"88\" y=\"188\" width=\"34\" height=\"96\" rx=\"3\" fill=\"#d0d0d0\" stroke=\"#bbb\" stroke-width=\"1\"\/>\r\n          <rect x=\"92\" y=\"198\" width=\"26\" height=\"4\" rx=\"1\" fill=\"#bbb\"\/>\r\n          <rect x=\"92\" y=\"208\" width=\"26\" height=\"4\" rx=\"1\" fill=\"#c8c8c8\"\/>\r\n          <rect x=\"92\" y=\"218\" width=\"26\" height=\"4\" rx=\"1\" fill=\"#c8c8c8\"\/>\r\n          <rect x=\"92\" y=\"248\" width=\"26\" height=\"22\" rx=\"2\" fill=\"#e0e0e0\" stroke=\"#bbb\" stroke-width=\"1\"\/>\r\n          <circle cx=\"105\" cy=\"259\" r=\"4\" fill=\"#d00000\"\/>\r\n\r\n          <rect x=\"478\" y=\"188\" width=\"34\" height=\"96\" rx=\"3\" fill=\"#d0d0d0\" stroke=\"#bbb\" stroke-width=\"1\"\/>\r\n          <rect x=\"482\" y=\"198\" width=\"26\" height=\"4\" rx=\"1\" fill=\"#bbb\"\/>\r\n          <rect x=\"482\" y=\"208\" width=\"26\" height=\"4\" rx=\"1\" fill=\"#c8c8c8\"\/>\r\n          <rect x=\"482\" y=\"218\" width=\"26\" height=\"4\" rx=\"1\" fill=\"#c8c8c8\"\/>\r\n          <rect x=\"482\" y=\"248\" width=\"26\" height=\"22\" rx=\"2\" fill=\"#e0e0e0\" stroke=\"#bbb\" stroke-width=\"1\"\/>\r\n          <circle cx=\"495\" cy=\"259\" r=\"4\" fill=\"#d00000\"\/>\r\n\r\n          <rect x=\"215\" y=\"128\" width=\"170\" height=\"36\" rx=\"4\" fill=\"#c8c8c8\" stroke=\"#aaa\" stroke-width=\"1.5\"\/>\r\n          <rect x=\"215\" y=\"128\" width=\"170\" height=\"4\" fill=\"rgba(255,255,255,0.5)\"\/>\r\n          <circle cx=\"300\" cy=\"146\" r=\"11\" fill=\"#333\" stroke=\"#555\" stroke-width=\"1.5\"\/>\r\n          <circle cx=\"300\" cy=\"146\" r=\"5\" fill=\"#d00000\"\/>\r\n          <line x1=\"300\" y1=\"135\" x2=\"255\" y2=\"78\" stroke=\"rgba(208,0,0,0.25)\" stroke-width=\"1\" stroke-dasharray=\"4,4\"\/>\r\n          <line x1=\"300\" y1=\"135\" x2=\"300\" y2=\"72\" stroke=\"rgba(208,0,0,0.3)\" stroke-width=\"1.2\" stroke-dasharray=\"4,4\"\/>\r\n          <line x1=\"300\" y1=\"135\" x2=\"345\" y2=\"78\" stroke=\"rgba(208,0,0,0.25)\" stroke-width=\"1\" stroke-dasharray=\"4,4\"\/>\r\n\r\n          <rect x=\"468\" y=\"178\" width=\"30\" height=\"22\" rx=\"3\" fill=\"#333\" stroke=\"#555\" stroke-width=\"1\"\/>\r\n          <circle cx=\"483\" cy=\"189\" r=\"7\" fill=\"#1a1a1a\" stroke=\"#555\" stroke-width=\"1\"\/>\r\n          <circle cx=\"483\" cy=\"189\" r=\"3\" fill=\"#080808\"\/>\r\n          <circle cx=\"483\" cy=\"189\" r=\"1\" fill=\"rgba(255,255,255,0.3)\"\/>\r\n\r\n          <rect x=\"369\" y=\"96\" width=\"5\" height=\"36\" fill=\"#aaa\" rx=\"1\"\/>\r\n          <circle cx=\"371\" cy=\"93\" r=\"6\" fill=\"none\" stroke=\"#aaa\" stroke-width=\"1.5\"\/>\r\n          <circle cx=\"371\" cy=\"93\" r=\"2.5\" fill=\"#d00000\"\/>\r\n\r\n          <rect x=\"150\" y=\"182\" width=\"108\" height=\"76\" rx=\"3\" fill=\"#1a1a1a\" stroke=\"#555\" stroke-width=\"1.5\"\/>\r\n          <rect x=\"154\" y=\"186\" width=\"100\" height=\"68\" rx=\"1\" fill=\"#0a0a0a\"\/>\r\n          <rect x=\"154\" y=\"186\" width=\"100\" height=\"14\" fill=\"#111\"\/>\r\n          <rect x=\"158\" y=\"190\" width=\"40\" height=\"6\" rx=\"1\" fill=\"rgba(208,0,0,0.7)\"\/>\r\n          <rect x=\"158\" y=\"206\" width=\"70\" height=\"3\" rx=\"1\" fill=\"rgba(255,255,255,0.15)\"\/>\r\n          <rect x=\"158\" y=\"212\" width=\"55\" height=\"3\" rx=\"1\" fill=\"rgba(255,255,255,0.1)\"\/>\r\n          <rect x=\"158\" y=\"218\" width=\"65\" height=\"3\" rx=\"1\" fill=\"rgba(255,255,255,0.1)\"\/>\r\n          <rect x=\"158\" y=\"228\" width=\"35\" height=\"10\" rx=\"2\" fill=\"rgba(208,0,0,0.6)\"\/>\r\n          <rect x=\"196\" y=\"228\" width=\"50\" height=\"10\" rx=\"2\" fill=\"rgba(255,255,255,0.1)\"\/>\r\n          <rect x=\"158\" y=\"244\" width=\"90\" height=\"3\" rx=\"1\" fill=\"rgba(255,255,255,0.07)\"\/>\r\n\r\n          <rect x=\"338\" y=\"190\" width=\"116\" height=\"62\" rx=\"3\" fill=\"#ddd\" stroke=\"#bbb\" stroke-width=\"1.5\"\/>\r\n          <rect x=\"338\" y=\"190\" width=\"116\" height=\"4\" fill=\"rgba(255,255,255,0.6)\"\/>\r\n          <rect x=\"344\" y=\"198\" width=\"34\" height=\"18\" rx=\"2\" fill=\"#333\" stroke=\"#555\" stroke-width=\"1\"\/>\r\n          <polygon points=\"361,200 356,212 361,210 356,220 367,208 361,210 367,200\" fill=\"#d00000\"\/>\r\n          <rect x=\"344\" y=\"222\" width=\"104\" height=\"7\" rx=\"2\" fill=\"#ccc\"\/>\r\n          <rect x=\"344\" y=\"222\" width=\"72\" height=\"7\" rx=\"2\" fill=\"rgba(208,0,0,0.6)\"\/>\r\n          <rect x=\"344\" y=\"234\" width=\"104\" height=\"12\" rx=\"2\" fill=\"#c8c8c8\"\/>\r\n          <text x=\"348\" y=\"244\" font-family=\"monospace\" font-size=\"8\" fill=\"#555\">48V  12.4Ah<\/text>\r\n\r\n          <line x1=\"300\" y1=\"158\" x2=\"300\" y2=\"128\" stroke=\"rgba(208,0,0,0.3)\" stroke-width=\"1\" stroke-dasharray=\"3,3\"\/>\r\n          <line x1=\"258\" y1=\"220\" x2=\"150\" y2=\"220\" stroke=\"rgba(208,0,0,0.2)\" stroke-width=\"1\" stroke-dasharray=\"3,3\"\/>\r\n          <line x1=\"338\" y1=\"222\" x2=\"310\" y2=\"222\" stroke=\"rgba(208,0,0,0.2)\" stroke-width=\"1\" stroke-dasharray=\"3,3\"\/>\r\n          <line x1=\"468\" y1=\"189\" x2=\"480\" y2=\"189\" stroke=\"rgba(208,0,0,0.2)\" stroke-width=\"1\" stroke-dasharray=\"3,3\"\/>\r\n\r\n          <!-- HOTSPOT 1 \u2014 LOKALIZACJA -->\r\n          <g class=\"rb-hotspot\" data-module=\"0\" role=\"button\" tabindex=\"0\" aria-label=\"Lokalizacja\">\r\n            <circle cx=\"300\" cy=\"118\" r=\"20\" fill=\"rgba(208,0,0,0.2)\" class=\"rb-hotspot-pulse\"\/>\r\n            <circle cx=\"300\" cy=\"118\" r=\"10\" fill=\"rgba(208,0,0,0.2)\" stroke=\"#d00000\" stroke-width=\"1.5\" class=\"ring\"\/>\r\n            <circle cx=\"300\" cy=\"118\" r=\"4\" fill=\"#d00000\" class=\"dot\"\/>\r\n          <\/g>\r\n\r\n          <!-- HOTSPOT 2 \u2014 KONTROLA I NAWIGACJA -->\r\n          <g class=\"rb-hotspot\" data-module=\"1\" role=\"button\" tabindex=\"0\" aria-label=\"Kontrola i nawigacja\">\r\n            <circle cx=\"260\" cy=\"168\" r=\"20\" fill=\"rgba(208,0,0,0.2)\" class=\"rb-hotspot-pulse-2\"\/>\r\n            <circle cx=\"260\" cy=\"168\" r=\"10\" fill=\"rgba(208,0,0,0.2)\" stroke=\"#d00000\" stroke-width=\"1.5\" class=\"ring\"\/>\r\n            <circle cx=\"260\" cy=\"168\" r=\"4\" fill=\"#d00000\" class=\"dot\"\/>\r\n          <\/g>\r\n\r\n          <!-- HOTSPOT 3 \u2014 PERCEPCJA -->\r\n          <g class=\"rb-hotspot\" data-module=\"2\" role=\"button\" tabindex=\"0\" aria-label=\"Percepcja\">\r\n            <circle cx=\"510\" cy=\"170\" r=\"20\" fill=\"rgba(208,0,0,0.2)\" class=\"rb-hotspot-pulse-3\"\/>\r\n            <circle cx=\"510\" cy=\"170\" r=\"10\" fill=\"rgba(208,0,0,0.2)\" stroke=\"#d00000\" stroke-width=\"1.5\" class=\"ring\"\/>\r\n            <circle cx=\"510\" cy=\"170\" r=\"4\" fill=\"#d00000\" class=\"dot\"\/>\r\n            <line x1=\"500\" y1=\"174\" x2=\"490\" y2=\"185\" stroke=\"#d00000\" stroke-width=\"1\" stroke-dasharray=\"2,2\"\/>\r\n          <\/g>\r\n\r\n          <!-- HOTSPOT 4 \u2014 ZASILANIE -->\r\n          <g class=\"rb-hotspot\" data-module=\"3\" role=\"button\" tabindex=\"0\" aria-label=\"Zasilanie\">\r\n            <circle cx=\"430\" cy=\"168\" r=\"20\" fill=\"rgba(208,0,0,0.2)\" class=\"rb-hotspot-pulse-4\"\/>\r\n            <circle cx=\"430\" cy=\"168\" r=\"10\" fill=\"rgba(208,0,0,0.2)\" stroke=\"#d00000\" stroke-width=\"1.5\" class=\"ring\"\/>\r\n            <circle cx=\"430\" cy=\"168\" r=\"4\" fill=\"#d00000\" class=\"dot\"\/>\r\n            <line x1=\"430\" y1=\"178\" x2=\"415\" y2=\"192\" stroke=\"#d00000\" stroke-width=\"1\" stroke-dasharray=\"2,2\"\/>\r\n          <\/g>\r\n\r\n          <!-- HOTSPOT 5 \u2014 KINEMATYKA -->\r\n          <g class=\"rb-hotspot\" data-module=\"4\" role=\"button\" tabindex=\"0\" aria-label=\"Kinematyka\">\r\n            <circle cx=\"300\" cy=\"395\" r=\"20\" fill=\"rgba(208,0,0,0.2)\" class=\"rb-hotspot-pulse-5\"\/>\r\n            <circle cx=\"300\" cy=\"395\" r=\"10\" fill=\"rgba(208,0,0,0.2)\" stroke=\"#d00000\" stroke-width=\"1.5\" class=\"ring\"\/>\r\n            <circle cx=\"300\" cy=\"395\" r=\"4\" fill=\"#d00000\" class=\"dot\"\/>\r\n            <line x1=\"300\" y1=\"385\" x2=\"300\" y2=\"360\" stroke=\"#d00000\" stroke-width=\"1\" stroke-dasharray=\"2,2\"\/>\r\n          <\/g>\r\n\r\n          <!-- HOTSPOT 6 \u2014 STEROWNIK NISKOPOZIOMOWY na chipie -->\r\n          <g class=\"rb-hotspot\" data-module=\"5\" role=\"button\" tabindex=\"0\" aria-label=\"Sterownik niskopoziomowy\">\r\n            <circle cx=\"200\" cy=\"308\" r=\"20\" fill=\"rgba(208,0,0,0.2)\" class=\"rb-hotspot-pulse-6\"\/>\r\n            <circle cx=\"200\" cy=\"308\" r=\"10\" fill=\"rgba(208,0,0,0.2)\" stroke=\"#d00000\" stroke-width=\"1.5\" class=\"ring\"\/>\r\n            <circle cx=\"200\" cy=\"308\" r=\"4\" fill=\"#d00000\" class=\"dot\"\/>\r\n            <line x1=\"210\" y1=\"308\" x2=\"245\" y2=\"325\" stroke=\"#d00000\" stroke-width=\"1\" stroke-dasharray=\"2,2\"\/>\r\n          <\/g>\r\n\r\n        <\/svg>\r\n\r\n        <div class=\"rb-robot-hint\">Najed\u017a lub kliknij w punkt aby zobaczy\u0107 modu\u0142<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"rb-robot-modules\" id=\"rbModuleList\">\r\n        <a class=\"rb-module-card\" href=\"https:\/\/rapidbase.hetbot.com\/komponent\/lokalizacja\/\" data-index=\"0\">\r\n          <div class=\"rb-module-card-num\">01<\/div>\r\n          <div class=\"rb-module-card-icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M12 2v3M12 19v3M2 12h3M19 12h3\"\/><\/svg><\/div>\r\n          <div class=\"rb-module-card-name\">Lokalizacja<\/div>\r\n          <div class=\"rb-module-card-tag\">Software<\/div>\r\n          <div class=\"rb-module-card-arrow\">\u2192<\/div>\r\n        <\/a>\r\n        <a class=\"rb-module-card\" href=\"https:\/\/rapidbase.hetbot.com\/komponent\/kontrola-i-nawigacja\/\" data-index=\"1\">\r\n          <div class=\"rb-module-card-num\">02<\/div>\r\n          <div class=\"rb-module-card-icon\"><svg viewBox=\"0 0 24 24\"><polygon points=\"3 11 22 2 13 21 11 13 3 11\"\/><\/svg><\/div>\r\n          <div class=\"rb-module-card-name\">Kontrola i nawigacja<\/div>\r\n          <div class=\"rb-module-card-tag\">Software<\/div>\r\n          <div class=\"rb-module-card-arrow\">\u2192<\/div>\r\n        <\/a>\r\n        <a class=\"rb-module-card\" href=\"https:\/\/rapidbase.hetbot.com\/komponent\/percepcja\/\" data-index=\"2\">\r\n          <div class=\"rb-module-card-num\">03<\/div>\r\n          <div class=\"rb-module-card-icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><\/svg><\/div>\r\n          <div class=\"rb-module-card-name\">Percepcja<\/div>\r\n          <div class=\"rb-module-card-tag\">Software<\/div>\r\n          <div class=\"rb-module-card-arrow\">\u2192<\/div>\r\n        <\/a>\r\n        <a class=\"rb-module-card\" href=\"https:\/\/rapidbase.hetbot.com\/komponent\/zasilanie\/\" data-index=\"3\">\r\n          <div class=\"rb-module-card-num\">04<\/div>\r\n          <div class=\"rb-module-card-icon\"><svg viewBox=\"0 0 24 24\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg><\/div>\r\n          <div class=\"rb-module-card-name\">Zasilanie<\/div>\r\n          <div class=\"rb-module-card-tag\">Hardware<\/div>\r\n          <div class=\"rb-module-card-arrow\">\u2192<\/div>\r\n        <\/a>\r\n        <a class=\"rb-module-card\" href=\"https:\/\/rapidbase.hetbot.com\/komponent\/kinematyka-adaptacyjna\/\" data-index=\"4\">\r\n          <div class=\"rb-module-card-num\">05<\/div>\r\n          <div class=\"rb-module-card-icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83\"\/><\/svg><\/div>\r\n          <div class=\"rb-module-card-name\">Kinematyka adaptacyjna<\/div>\r\n          <div class=\"rb-module-card-tag\">Hardware<\/div>\r\n          <div class=\"rb-module-card-arrow\">\u2192<\/div>\r\n        <\/a>\r\n        <a class=\"rb-module-card\" href=\"https:\/\/rapidbase.hetbot.com\/komponent\/sterownik-niskopoziomowy\/\" data-index=\"5\">\r\n          <div class=\"rb-module-card-num\">06<\/div>\r\n          <div class=\"rb-module-card-icon\"><svg viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\"\/><rect x=\"9\" y=\"9\" width=\"6\" height=\"6\"\/><line x1=\"9\" y1=\"2\" x2=\"9\" y2=\"4\"\/><line x1=\"15\" y1=\"2\" x2=\"15\" y2=\"4\"\/><line x1=\"9\" y1=\"20\" x2=\"9\" y2=\"22\"\/><line x1=\"15\" y1=\"20\" x2=\"15\" y2=\"22\"\/><line x1=\"20\" y1=\"9\" x2=\"22\" y2=\"9\"\/><line x1=\"20\" y1=\"15\" x2=\"22\" y2=\"15\"\/><line x1=\"2\" y1=\"9\" x2=\"4\" y2=\"9\"\/><line x1=\"2\" y1=\"15\" x2=\"4\" y2=\"15\"\/><\/svg><\/div>\r\n          <div class=\"rb-module-card-name\">Sterownik niskopoziomowy<\/div>\r\n          <div class=\"rb-module-card-tag\">Hardware<\/div>\r\n          <div class=\"rb-module-card-arrow\">\u2192<\/div>\r\n        <\/a>\r\n        <div class=\"rb-module-separator\">Systemy zewn\u0119trzne<\/div>\r\n        <a class=\"rb-module-card\" href=\"https:\/\/rapidbase.hetbot.com\/komponent\/interfejs-gui\/\" data-index=\"6\">\r\n          <div class=\"rb-module-card-num\">07<\/div>\r\n          <div class=\"rb-module-card-icon\"><svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg><\/div>\r\n          <div class=\"rb-module-card-name\">Interfejs GUI<\/div>\r\n          <div class=\"rb-module-card-tag\">Software<\/div>\r\n          <div class=\"rb-module-card-arrow\">\u2192<\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function(){\r\n  var top = document.querySelector('.rb-robot-top');\r\n  var layout = document.querySelector('.rb-robot-layout');\r\n  var observer = new IntersectionObserver(function(entries){\r\n    entries.forEach(function(entry){\r\n      if(entry.isIntersecting){entry.target.classList.add('visible');observer.unobserve(entry.target)}\r\n    });\r\n  },{threshold:0.1});\r\n  if(top) observer.observe(top);\r\n  if(layout) observer.observe(layout);\r\n\r\n  var hotspots = document.querySelectorAll('.rb-hotspot');\r\n  var cards = document.querySelectorAll('.rb-module-card');\r\n  var guiBadge = document.querySelector('.rb-gui-badge');\r\n\r\n  function resetAll(){\r\n    cards.forEach(function(c){c.classList.remove('active')});\r\n    if(guiBadge) guiBadge.classList.remove('active');\r\n    hotspots.forEach(function(h){\r\n      var ring = h.querySelector('circle.ring');\r\n      var dot = h.querySelector('circle.dot');\r\n      if(ring) ring.setAttribute('stroke','#d00000');\r\n      if(dot) dot.setAttribute('fill','#d00000');\r\n    });\r\n  }\r\n\r\n  function activate(index){\r\n    resetAll();\r\n    if(index === null || index === undefined) return;\r\n    if(cards[index]) cards[index].classList.add('active');\r\n    if(index < hotspots.length){\r\n      var ring = hotspots[index].querySelector('circle.ring');\r\n      var dot = hotspots[index].querySelector('circle.dot');\r\n      if(ring) ring.setAttribute('stroke','#fff');\r\n      if(dot) dot.setAttribute('fill','#fff');\r\n    }\r\n  }\r\n\r\n  function activateGui(){\r\n    resetAll();\r\n    if(guiBadge) guiBadge.classList.add('active');\r\n    if(cards[6]) cards[6].classList.add('active');\r\n  }\r\n\r\n  hotspots.forEach(function(hs, i){\r\n    hs.addEventListener('click', function(e){e.preventDefault();activate(i)});\r\n    hs.addEventListener('mouseenter', function(){activate(i)});\r\n    hs.addEventListener('keydown', function(e){\r\n      if(e.key==='Enter'||e.key===' '){e.preventDefault();activate(i)}\r\n    });\r\n  });\r\n\r\n  cards.forEach(function(card, i){\r\n    card.addEventListener('mouseenter', function(){\r\n      if(i === 6) activateGui();\r\n      else activate(i);\r\n    });\r\n  });\r\n\r\n  if(guiBadge){\r\n    guiBadge.addEventListener('mouseenter', activateGui);\r\n    guiBadge.addEventListener('click', function(e){e.preventDefault();activateGui()});\r\n    guiBadge.addEventListener('keydown', function(e){\r\n      if(e.key==='Enter'||e.key===' '){e.preventDefault();activateGui()}\r\n    });\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4982ab2 e-con-full elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"4982ab2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-312530c elementor-widget elementor-widget-html\" data-id=\"312530c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.kp-hero*{box-sizing:border-box;margin:0;padding:0}\r\n.kp-hero{background:#fff;padding:96px 40px}\r\n.kp-hero-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}\r\n.kp-hero-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:20px}\r\n.kp-hero-eyebrow-line{width:36px;height:1px;background:#d00000}\r\n.kp-hero-eyebrow-text{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:#d00000}\r\n.kp-hero-title{font-family:'Barlow Condensed',sans-serif;font-size:clamp(32px,4vw,52px);font-weight:700;color:#111;text-transform:uppercase;line-height:1;letter-spacing:-0.5px;margin-bottom:20px}\r\n.kp-hero-title span{color:#d00000}\r\n.kp-hero-desc{font-size:14px;color:#666;line-height:1.8;margin-bottom:0}\r\n.kp-hero-diagram{position:relative;display:flex;align-items:center;justify-content:center}\r\n.kp-diagram{width:100%;max-width:480px}\r\n.kp-diagram-center{width:120px;height:120px;background:#111;border:2px solid #d00000;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto;position:relative;z-index:2}\r\n.kp-diagram-center-label{font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;color:#fff;text-transform:uppercase;text-align:center;letter-spacing:1px;line-height:1.2}\r\n.kp-diagram-center-label span{color:#d00000;display:block;font-size:11px}\r\n.kp-diagram-nodes{position:relative;width:100%;height:340px}\r\n.kp-node{position:absolute;background:#f7f6f4;border:1px solid #e0deda;padding:10px 14px;display:flex;align-items:center;gap:8px;font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#111;transition:background 0.2s,border-color 0.2s}\r\n.kp-node:hover{background:#fff;border-color:#d00000;color:#d00000}\r\n.kp-node-icon{width:28px;height:28px;background:#d00000;display:flex;align-items:center;justify-content:center;flex-shrink:0}\r\n.kp-node-icon svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}\r\n.kp-node-1{top:0;left:50%;transform:translateX(-50%)}\r\n.kp-node-2{top:60px;right:0}\r\n.kp-node-3{top:50%;right:0;transform:translateY(-50%)}\r\n.kp-node-4{bottom:60px;right:0}\r\n.kp-node-5{bottom:0;left:50%;transform:translateX(-50%)}\r\n.kp-node-6{bottom:60px;left:0}\r\n.kp-node-7{top:50%;left:0;transform:translateY(-50%)}\r\n.kp-node-8{top:60px;left:0}\r\n.kp-ros2{position:absolute;bottom:0;right:0;background:#d00000;padding:5px 12px;font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff}\r\n@media(max-width:900px){.kp-hero-inner{grid-template-columns:1fr;gap:40px}.kp-hero{padding:64px 32px}.kp-hero-diagram{display:none}}\r\n@media(max-width:480px){.kp-hero{padding:48px 20px}}\r\n<\/style>\r\n\r\n<section class=\"kp-hero\" itemscope itemtype=\"https:\/\/schema.org\/WebPage\">\r\n  <div class=\"kp-hero-inner\">\r\n    <div>\r\n      <div class=\"kp-hero-eyebrow\">\r\n        <div class=\"kp-hero-eyebrow-line\"><\/div>\r\n        <div class=\"kp-hero-eyebrow-text\">RapidBase<\/div>\r\n      <\/div>\r\n      <h1 class=\"kp-hero-title\" itemprop=\"name\">Kompleksowy system<br>technologii do <span>autonomizacji<\/span><\/h1>\r\n      <p class=\"kp-hero-desc\" itemprop=\"description\">Modu\u0142owy system technologii wspierany przez algorytmy AI do autonomizacji urz\u0105dze\u0144 i maszyn mobilnych. RapidBase \u0142\u0105czy funkcje lokalizacji, percepcji 3D, planowania ruchu, sterowania, zarz\u0105dzania flot\u0105 oraz komunikacji w sp\u00f3jn\u0105 parametryzowaln\u0105 struktur\u0119 sprz\u0119towo-programistyczn\u0105 do autonomizacji maszyn.<\/p>\r\n    <\/div>\r\n    <div class=\"kp-hero-diagram\" aria-hidden=\"true\">\r\n      <div style=\"position:relative;width:100%;max-width:420px;margin:0 auto\">\r\n        <div style=\"display:grid;grid-template-columns:1fr 120px 1fr;grid-template-rows:repeat(3,1fr);gap:8px;align-items:center;justify-items:center;min-height:300px\">\r\n          <div class=\"kp-node\"><div class=\"kp-node-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5\"\/><\/svg><\/div>Percepcja<\/div>\r\n          <div style=\"grid-row:1\/2;grid-column:2\/3\"><\/div>\r\n          <div class=\"kp-node\"><div class=\"kp-node-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg><\/div>Lokalizacja<\/div>\r\n\r\n          <div class=\"kp-node\"><div class=\"kp-node-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\/><\/svg><\/div>Zasilanie<\/div>\r\n          <div style=\"background:#111;border:2px solid #d00000;border-radius:50%;width:100px;height:100px;display:flex;align-items:center;justify-content:center;grid-row:2\/3;grid-column:2\/3\">\r\n            <div style=\"text-align:center\"><div style=\"font-family:'Barlow Condensed',sans-serif;font-size:10px;font-weight:700;color:#d00000;letter-spacing:1px;text-transform:uppercase\">Rapid<\/div><div style=\"font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;color:#fff;letter-spacing:1px;text-transform:uppercase\">Base<\/div><\/div>\r\n          <\/div>\r\n          <div class=\"kp-node\"><div class=\"kp-node-icon\"><svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M8 21h8M12 17v4\"\/><\/svg><\/div>GUI<\/div>\r\n\r\n          <div class=\"kp-node\"><div class=\"kp-node-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M3 12h18M3 6h18M3 18h18\"\/><\/svg><\/div>Sterownik<\/div>\r\n          <div style=\"grid-row:3\/4;grid-column:2\/3\"><\/div>\r\n          <div class=\"kp-node\"><div class=\"kp-node-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>Nawigacja<\/div>\r\n        <\/div>\r\n        <div class=\"kp-ros2\">ROS 2<\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-835c418 e-con-full e-flex e-con e-parent\" data-id=\"835c418\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3ca7943 elementor-widget elementor-widget-shortcode\" data-id=\"3ca7943\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\r\n    @import url(\"https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@300;800&display=swap\");\r\n\r\n    .rbm2{font-family:\"Open Sans\",sans-serif;background:#000000;padding:100px 0;position:relative;overflow:hidden}\r\n    .rbm2::before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(to right,#d00000,rgba(208,0,0,0.2))}\r\n    .rbm2 *{box-sizing:border-box;margin:0;padding:0}\r\n\r\n    .rbm2-top{max-width:1280px;margin:0 auto 64px;padding:0 60px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}\r\n    .rbm2-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:16px}\r\n    .rbm2-eyebrow-line{width:32px;height:2px;background:#d00000}\r\n    .rbm2-eyebrow-text{font-size:10px;font-weight:800;letter-spacing:5px;text-transform:uppercase;color:#d00000}\r\n    .rbm2-title{font-size:clamp(28px,4vw,56px);font-weight:800;color:#ffffff !important;letter-spacing:-2px;line-height:1;text-transform:uppercase}\r\n    .rbm2-title span{color:#d00000 !important}\r\n    .rbm2-desc{font-size:14px;font-weight:300;color:#ffffff !important;line-height:1.85;max-width:360px;text-align:right;opacity:0.5}\r\n\r\n    .rbm2-outer{overflow:hidden;position:relative}\r\n    .rbm2-outer::before,.rbm2-outer::after{content:\"\";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}\r\n    .rbm2-outer::before{left:0;background:linear-gradient(to right,#000000,transparent)}\r\n    .rbm2-outer::after{right:0;background:linear-gradient(to left,#000000,transparent)}\r\n\r\n    .rbm2-track{display:flex;gap:3px;width:max-content;animation:rbm2Scroll 32s linear infinite;transition:transform 0.5s cubic-bezier(0.22,1,0.36,1)}\r\n    .rbm2-track.paused{animation-play-state:paused}\r\n    @keyframes rbm2Scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}\r\n\r\n    .rbm2-card{flex:0 0 400px;height:520px;position:relative;overflow:hidden;text-decoration:none;display:block;background:#050505}\r\n    .rbm2-card-img{position:absolute;inset:0}\r\n    .rbm2-card-img img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(0.95);transition:filter 0.6s ease,transform 0.6s ease;transform:scale(1.03)}\r\n    .rbm2-card:hover .rbm2-card-img img{filter:brightness(1.1) contrast(1.1);transform:scale(1)}\r\n    .rbm2-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.92) 0%,rgba(0,0,0,0.3) 50%,transparent 100%);transition:background 0.4s}\r\n    .rbm2-card:hover .rbm2-card-overlay{background:linear-gradient(to top,rgba(13,0,0,0.97) 0%,rgba(13,0,0,0.5) 55%,transparent 100%)}\r\n    .rbm2-card::before{content:\"\";position:absolute;top:0;left:0;right:0;height:3px;background:#d00000;transform:scaleX(0);transform-origin:left;transition:transform 0.5s cubic-bezier(0.22,1,0.36,1);z-index:3}\r\n    .rbm2-card:hover::before{transform:scaleX(1)}\r\n    .rbm2-card-num{position:absolute;top:20px;right:20px;font-size:64px;font-weight:800;color:rgba(255,255,255,0.07);line-height:1;letter-spacing:-3px;z-index:1;pointer-events:none}\r\n\r\n    .rbm2-card-body{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:28px 24px}\r\n    .rbm2-card-tag{font-size:8px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:#d00000;margin-bottom:8px}\r\n    .rbm2-card-title{font-size:18px;font-weight:800;color:#ffffff !important;text-transform:uppercase;letter-spacing:-0.3px;line-height:1.15;margin-bottom:10px}\r\n    .rbm2-card-sep{width:0;height:2px;background:#d00000;margin-bottom:12px;transition:width 0.5s cubic-bezier(0.22,1,0.36,1)}\r\n    .rbm2-card:hover .rbm2-card-sep{width:32px}\r\n\r\n    \/* OPIS ZAWSZE WIDOCZNY W CA\u0141O\u015aCI *\/\r\n    .rbm2-card-desc{font-size:12px;font-weight:300;color:#ffffff !important;line-height:1.65;overflow:visible;opacity:0.75;margin-bottom:14px}\r\n    .rbm2-card:hover .rbm2-card-desc{opacity:1}\r\n\r\n    .rbm2-card-btn{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#ffffff !important;opacity:0;transform:translateY(6px);transition:opacity 0.3s ease 0.1s,transform 0.3s ease 0.1s}\r\n    .rbm2-card:hover .rbm2-card-btn{opacity:1;transform:translateY(0)}\r\n    .rbm2-card-btn-arrow{width:26px;height:26px;background:#d00000;display:flex;align-items:center;justify-content:center;transition:transform 0.25s}\r\n    .rbm2-card:hover .rbm2-card-btn-arrow{transform:translateX(3px)}\r\n    .rbm2-card-btn-arrow svg{width:11px;height:11px;stroke:#ffffff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\r\n\r\n    .rbm2-nav{max-width:1280px;margin:40px auto 0;padding:0 60px;display:flex;align-items:center;gap:8px}\r\n    .rbm2-nav-btn{width:48px;height:48px;background:#0d0000;border:1px solid rgba(255,255,255,0.08);color:#ffffff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.25s,border-color 0.25s;font-family:\"Open Sans\",sans-serif;flex-shrink:0;outline:none}\r\n    .rbm2-nav-btn:hover{background:#d00000;border-color:#d00000}\r\n    .rbm2-nav-btn:focus{outline:none;background:#0d0000;border-color:rgba(255,255,255,0.08)}\r\n    .rbm2-nav-btn:active{background:#d00000;border-color:#d00000}\r\n    .rbm2-nav-play{width:48px;height:48px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);color:#ffffff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.25s,border-color 0.25s;flex-shrink:0;outline:none}\r\n    .rbm2-nav-play:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.2)}\r\n    .rbm2-nav-play:focus{outline:none}\r\n    .rbm2-nav-play svg{width:14px;height:14px;fill:#ffffff}\r\n    .rbm2-nav-hint{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#ffffff;opacity:0.3;margin-left:16px}\r\n\r\n    @media(max-width:1024px){.rbm2-top{padding:0 40px}.rbm2-nav{padding:0 40px}.rbm2-card{flex:0 0 340px;height:460px}}\r\n    @media(max-width:768px){.rbm2-top{flex-direction:column;align-items:flex-start;padding:0 24px}.rbm2-desc{text-align:left;max-width:100%}.rbm2-nav{padding:0 24px}.rbm2-card{flex:0 0 290px;height:400px}.rbm2-outer::before,.rbm2-outer::after{width:30px}}\r\n    @media(max-width:480px){.rbm2-top{padding:0 20px}.rbm2-nav{padding:0 20px}.rbm2-card{flex:0 0 260px;height:360px}.rbm2-outer::before,.rbm2-outer::after{display:none}}\r\n    <\/style><section class=\"rbm2\"><div class=\"rbm2-top\"><div><div class=\"rbm2-eyebrow\"><div class=\"rbm2-eyebrow-line\"><\/div><div class=\"rbm2-eyebrow-text\">System modulow<\/div><\/div><h2 class=\"rbm2-title\">Poznaj <span>moduly<\/span><\/h2><\/div><p class=\"rbm2-desc\">Kompletny backend autonomii \u2014 wdr\u00f3\u017c pojedynczy modu\u0142 lub pe\u0142ny stack, w zale\u017cno\u015bci od etapu projektu.<\/p><\/div><div class=\"rbm2-outer\"><div class=\"rbm2-track\" id=\"rbm2Track\"><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/kontrola-i-nawigacja\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_12.png\" alt=\"Kontroler Nawigacji\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">01<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">Kontroler Nawigacji<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Globalne i lokalne planowanie \u015bcie\u017cki, omijanie przeszk\u00f3d 3D i prowadzenie po trajektorii p\u0119tli, zazwyczaj z cz\u0119stotliwo\u015bci\u0105 20\u201330 Hz. Obs\u0142uga pr\u0119dko\u015bci do 3 m\/s, szybka p\u0119tla zwrotna, precyzyjne dokowanie i integracja z API.\r\n<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/lokalizacja\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_13.png\" alt=\"lokalizacja\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">02<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">lokalizacja<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Okre\u015blanie po\u0142o\u017cenia i orientacji wewn\u0105trz i na zewn\u0105trz z dok\u0142adno\u015bci\u0105 do &lt;3 cm. Obs\u0142uga GPS, RTK, UWB, LiDAR, IMU i wizji komputerowej z fuzj\u0105 danych, a tak\u017ce obs\u0142uga AMCL (Adaptacyjnej Lokalizacji Monte Carlo) i SLAM (Jednoczesnej Lokalizacji i Mapowania).<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/interfejs-gui\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_14.png\" alt=\"interfejs gui\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">03<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">interfejs gui<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Intuicyjny interfejs do zarz\u0105dzania ca\u0142\u0105 flot\u0105. Monitorowanie w czasie rzeczywistym, diagnostyka i konfiguracja tras, miejsc docelowych i stref dla pojedynczego robota lub floty, obs\u0142uga r\u00f3l u\u017cytkownik\u00f3w, zarz\u0105dzanie robotami i integracja poprzez API.<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/sterownik-niskopoziomowy\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_13-1.png\" alt=\"sterownik niskopoziomowy\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">04<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">hardware<\/div><div class=\"rbm2-card-title\">sterownik niskopoziomowy<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Integracja nap\u0119d\u00f3w, czujnik\u00f3w i diagnostyki oraz komunikacja przez EtherCAT, CAN i Ethernet z opcjonaln\u0105 \u0142\u0105czno\u015bci\u0105 Wi-Fi, LTE i 5G. Obs\u0142uga system\u00f3w bezpiecze\u0144stwa (bezpiecze\u0144stwo funkcjonalne) i sp\u00f3jna telemetria upraszczaj\u0105 integracj\u0119 i serwis w r\u00f3\u017cnych konfiguracjach robot\u00f3w.<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/zasilanie\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_15.png\" alt=\"zasilanie\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">05<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">hardware<\/div><div class=\"rbm2-card-title\">zasilanie<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Obs\u0142uga zakresu 10-60 V, konfiguracji szeregowych i r\u00f3wnoleg\u0142ych baterii oraz architektury wielobateryjnej, w tym kompatybilno\u015b\u0107 z MultiBat. Stabiln\u0105 prac\u0119 zapewniaj\u0105 przetwornice napi\u0119cia DC\/DC, BMS (system zarz\u0105dzania bateri\u0105) oraz DPPM (dynamiczna \u015bcie\u017cka zasilania).<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/percepcja\/\"><div class=\"rbm2-card-img\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">06<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">Percepcja<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/kinematyka-adaptacyjna\/\"><div class=\"rbm2-card-img\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">07<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">Kinematyka adaptacyjna<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/kontrola-i-nawigacja\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_12.png\" alt=\"Kontroler Nawigacji\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">01<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">Kontroler Nawigacji<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Globalne i lokalne planowanie \u015bcie\u017cki, omijanie przeszk\u00f3d 3D i prowadzenie po trajektorii p\u0119tli, zazwyczaj z cz\u0119stotliwo\u015bci\u0105 20\u201330 Hz. Obs\u0142uga pr\u0119dko\u015bci do 3 m\/s, szybka p\u0119tla zwrotna, precyzyjne dokowanie i integracja z API.\r\n<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/lokalizacja\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_13.png\" alt=\"lokalizacja\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">02<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">lokalizacja<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Okre\u015blanie po\u0142o\u017cenia i orientacji wewn\u0105trz i na zewn\u0105trz z dok\u0142adno\u015bci\u0105 do &lt;3 cm. Obs\u0142uga GPS, RTK, UWB, LiDAR, IMU i wizji komputerowej z fuzj\u0105 danych, a tak\u017ce obs\u0142uga AMCL (Adaptacyjnej Lokalizacji Monte Carlo) i SLAM (Jednoczesnej Lokalizacji i Mapowania).<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/interfejs-gui\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_14.png\" alt=\"interfejs gui\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">03<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">interfejs gui<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Intuicyjny interfejs do zarz\u0105dzania ca\u0142\u0105 flot\u0105. Monitorowanie w czasie rzeczywistym, diagnostyka i konfiguracja tras, miejsc docelowych i stref dla pojedynczego robota lub floty, obs\u0142uga r\u00f3l u\u017cytkownik\u00f3w, zarz\u0105dzanie robotami i integracja poprzez API.<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/sterownik-niskopoziomowy\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_13-1.png\" alt=\"sterownik niskopoziomowy\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">04<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">hardware<\/div><div class=\"rbm2-card-title\">sterownik niskopoziomowy<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Integracja nap\u0119d\u00f3w, czujnik\u00f3w i diagnostyki oraz komunikacja przez EtherCAT, CAN i Ethernet z opcjonaln\u0105 \u0142\u0105czno\u015bci\u0105 Wi-Fi, LTE i 5G. Obs\u0142uga system\u00f3w bezpiecze\u0144stwa (bezpiecze\u0144stwo funkcjonalne) i sp\u00f3jna telemetria upraszczaj\u0105 integracj\u0119 i serwis w r\u00f3\u017cnych konfiguracjach robot\u00f3w.<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/zasilanie\/\"><div class=\"rbm2-card-img\"><img decoding=\"async\" src=\"https:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/Screenshot_15.png\" alt=\"zasilanie\" loading=\"lazy\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">05<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">hardware<\/div><div class=\"rbm2-card-title\">zasilanie<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-desc\">Obs\u0142uga zakresu 10-60 V, konfiguracji szeregowych i r\u00f3wnoleg\u0142ych baterii oraz architektury wielobateryjnej, w tym kompatybilno\u015b\u0107 z MultiBat. Stabiln\u0105 prac\u0119 zapewniaj\u0105 przetwornice napi\u0119cia DC\/DC, BMS (system zarz\u0105dzania bateri\u0105) oraz DPPM (dynamiczna \u015bcie\u017cka zasilania).<\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/percepcja\/\"><div class=\"rbm2-card-img\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">06<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">Percepcja<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><a class=\"rbm2-card\" href=\"https:\/\/rapidbase.hetbot.com\/en\/komponent\/kinematyka-adaptacyjna\/\"><div class=\"rbm2-card-img\"><\/div><div class=\"rbm2-card-overlay\"><\/div><div class=\"rbm2-card-num\">07<\/div><div class=\"rbm2-card-body\"><div class=\"rbm2-card-tag\">software<\/div><div class=\"rbm2-card-title\">Kinematyka adaptacyjna<\/div><div class=\"rbm2-card-sep\"><\/div><div class=\"rbm2-card-btn\">Zobacz modul<div class=\"rbm2-card-btn-arrow\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div><\/div><\/div><\/a><\/div><\/div><div class=\"rbm2-nav\"><button class=\"rbm2-nav-btn\" id=\"rbm2Prev\" onmousedown=\"this.blur()\" aria-label=\"Poprzedni\">&#8592;<\/button><button class=\"rbm2-nav-btn\" id=\"rbm2Next\" onmousedown=\"this.blur()\" aria-label=\"Nastepny\">&#8594;<\/button><button class=\"rbm2-nav-play\" id=\"rbm2Play\" onmousedown=\"this.blur()\" aria-label=\"Play\/Pause\"><svg id=\"rbm2PlayIcon\" viewBox=\"0 0 24 24\"><rect x=\"6\" y=\"4\" width=\"4\" height=\"16\"\/><rect x=\"14\" y=\"4\" width=\"4\" height=\"16\"\/><\/svg><\/button><span class=\"rbm2-nav-hint\">Przeci\u0105gnij lub u\u017cyj strza\u0142ek<\/span><\/div><\/section><script>\r\n    (function(){\r\n        var track = document.getElementById(\"rbm2Track\");\r\n        var prev = document.getElementById(\"rbm2Prev\");\r\n        var next = document.getElementById(\"rbm2Next\");\r\n        var playBtn = document.getElementById(\"rbm2Play\");\r\n        var playIcon = document.getElementById(\"rbm2PlayIcon\");\r\n        if(!track) return;\r\n\r\n        var playing = true;\r\n        var offset = 0;\r\n\r\n        function getCardWidth(){\r\n            var card = track.querySelector(\".rbm2-card\");\r\n            return card ? card.offsetWidth + 3 : 403;\r\n        }\r\n\r\n        function getOffset(){\r\n            var style = window.getComputedStyle(track);\r\n            var matrix = new DOMMatrix(style.transform);\r\n            return matrix.m41;\r\n        }\r\n\r\n        function pause(){\r\n            if(!playing) return;\r\n            offset = getOffset();\r\n            track.style.animation = \"none\";\r\n            track.style.transform = \"translateX(\"+offset+\"px)\";\r\n            playing = false;\r\n            playIcon.innerHTML = \"<path d=\\\"M5 3l14 9-14 9V3z\\\"\/>\";\r\n        }\r\n\r\n        function play(){\r\n            var halfW = track.scrollWidth \/ 2;\r\n            var pct = Math.abs(offset) \/ halfW;\r\n            var remaining = (1 - pct) * 32;\r\n            track.style.animation = \"rbm2Scroll \"+remaining+\"s linear forwards\";\r\n            track.addEventListener(\"animationend\", function(){\r\n                offset = 0;\r\n                track.style.animation = \"rbm2Scroll 32s linear infinite\";\r\n            }, {once:true});\r\n            playing = true;\r\n            playIcon.innerHTML = \"<rect x=\\\"6\\\" y=\\\"4\\\" width=\\\"4\\\" height=\\\"16\\\"\/><rect x=\\\"14\\\" y=\\\"4\\\" width=\\\"4\\\" height=\\\"16\\\"\/>\";\r\n        }\r\n\r\n        function moveBy(delta){\r\n            pause();\r\n            var halfW = track.scrollWidth \/ 2;\r\n            offset += delta;\r\n            if(offset > 0) offset = -halfW + offset;\r\n            if(offset < -halfW) offset = offset + halfW;\r\n            track.style.transition = \"transform 0.5s cubic-bezier(0.22,1,0.36,1)\";\r\n            track.style.transform = \"translateX(\"+offset+\"px)\";\r\n            setTimeout(function(){track.style.transition = \"\";}, 520);\r\n        }\r\n\r\n        if(prev) prev.addEventListener(\"click\", function(){ moveBy(getCardWidth()); });\r\n        if(next) next.addEventListener(\"click\", function(){ moveBy(-getCardWidth()); });\r\n        if(playBtn) playBtn.addEventListener(\"click\", function(){\r\n            if(playing) pause(); else play();\r\n        });\r\n\r\n        track.addEventListener(\"mouseenter\", function(){ if(playing){ track.style.animationPlayState=\"paused\"; }});\r\n        track.addEventListener(\"mouseleave\", function(){ if(playing){ track.style.animationPlayState=\"running\"; }});\r\n\r\n        var isDown = false, startX, startOffset;\r\n        track.addEventListener(\"touchstart\", function(e){\r\n            isDown = true;\r\n            pause();\r\n            startX = e.touches[0].pageX;\r\n            startOffset = offset;\r\n        },{passive:true});\r\n        track.addEventListener(\"touchend\", function(){ isDown = false; },{passive:true});\r\n        track.addEventListener(\"touchmove\", function(e){\r\n            if(!isDown) return;\r\n            var x = e.touches[0].pageX;\r\n            var walk = (x - startX) * 1.5;\r\n            var halfW = track.scrollWidth \/ 2;\r\n            var newOffset = startOffset + walk;\r\n            if(newOffset > 0) newOffset = -halfW + newOffset;\r\n            if(newOffset < -halfW) newOffset = newOffset + halfW;\r\n            track.style.transform = \"translateX(\"+newOffset+\"px)\";\r\n            offset = newOffset;\r\n        },{passive:true});\r\n    })();\r\n    <\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-873e3c4 e-con-full e-flex e-con e-parent\" data-id=\"873e3c4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ab9ebfa elementor-widget elementor-widget-html\" data-id=\"ab9ebfa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@300;800&display=swap');\r\n\r\n.kpp*{box-sizing:border-box;margin:0;padding:0}\r\n.kpp{font-family:'Open Sans',sans-serif;background:#fff;padding:72px 60px}\r\n.kpp-inner{max-width:1280px;margin:0 auto}\r\n.kpp-top{text-align:center;margin-bottom:48px}\r\n.kpp-eyebrow{font-size:10px;font-weight:800;letter-spacing:5px;text-transform:uppercase;color:#bbb;margin-bottom:8px}\r\n.kpp-title{font-size:clamp(22px,2.5vw,34px);font-weight:800;color:#0a0a0a;letter-spacing:-0.5px}\r\n.kpp-title span{color:#d00000}\r\n.kpp-outer{overflow:hidden;position:relative}\r\n.kpp-outer::before,.kpp-outer::after{content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}\r\n.kpp-outer::before{left:0;background:linear-gradient(to right,#fff,transparent)}\r\n.kpp-outer::after{right:0;background:linear-gradient(to left,#fff,transparent)}\r\n.kpp-track{display:flex;gap:3px;width:max-content;animation:kppScroll 32s linear infinite}\r\n.kpp:hover .kpp-track{animation-play-state:paused}\r\n@keyframes kppScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}\r\n\r\n.kpp-slide{flex:0 0 220px;background:#f7f6f4;padding:32px 28px;display:flex;align-items:center;justify-content:center;min-height:110px;position:relative;overflow:hidden;transition:background 0.3s,transform 0.3s,box-shadow 0.3s;cursor:pointer}\r\n.kpp-slide:hover{background:#fff;transform:translateY(-6px);box-shadow:0 12px 32px rgba(0,0,0,0.08),0 0 0 1px #f0efed}\r\n.kpp-slide::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:#d00000;transform:scaleX(0);transform-origin:left;transition:transform 0.4s cubic-bezier(0.22,1,0.36,1)}\r\n.kpp-slide:hover::before{transform:scaleX(1)}\r\n.kpp-slide img{max-width:130px;max-height:44px;width:auto;height:auto;object-fit:contain;display:block;filter:grayscale(0%);opacity:0.7;transition:opacity 0.3s,transform 0.3s}\r\n.kpp-slide:hover img{opacity:1;transform:scale(1.05)}\r\n\r\n@media(max-width:1024px){.kpp{padding:56px 40px}}\r\n@media(max-width:600px){.kpp{padding:48px 20px}.kpp-slide{flex:0 0 160px;padding:24px 20px}}\r\n<\/style>\r\n\r\n<section class=\"kpp\" aria-label=\"Partnerzy technologiczni RapidBase \u2014 bran\u017cowy standard autonomizacji\">\r\n  <div class=\"kpp-inner\">\r\n    <div class=\"kpp-top\">\r\n      <div class=\"kpp-eyebrow\">Bran\u017cowy standard<\/div>\r\n      <h2 class=\"kpp-title\">Sprawdzone rozwi\u0105zania, <span>globalni producenci<\/span><\/h2>\r\n    <\/div>\r\n    <div class=\"kpp-outer\">\r\n      <div class=\"kpp-track\" id=\"kppTrack\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function(){\r\n  var logos=[\r\n    {label:'Econsystems',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/econsystems_logo.png'},\r\n    {label:'Livox',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/livox_logo.png'},\r\n    {label:'Nvidia',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/nvidia_logo.png'},\r\n    {label:'Ouster',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/ouster_logo.png'},\r\n    {label:'RoboSense',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/robosense_logo.png'},\r\n    {label:'Roboteq',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/roboteq_logo.png'},\r\n    {label:'ROS 2',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/ros2_logo.png'},\r\n    {label:'Sensing360',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/sensing_logo.png'},\r\n    {label:'Septentrio',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/septentrio_logo.png'},\r\n    {label:'Teltonika',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/teltonika_logo.png'},\r\n    {label:'Beckhoff',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/beckhoff_logo.png'},\r\n    {label:'Advantech',url:'http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/05\/advantach_logo-3.png'},\r\n  ];\r\n  var track=document.getElementById('kppTrack');\r\n  function buildSlide(logo){\r\n    var slide=document.createElement('div');\r\n    slide.className='kpp-slide';\r\n    var img=document.createElement('img');\r\n    img.alt=logo.label+' \u2014 partner technologiczny RapidBase';\r\n    img.loading='lazy';\r\n    img.onerror=function(){slide.style.opacity='0.3'};\r\n    img.src=logo.url;\r\n    slide.appendChild(img);\r\n    return slide;\r\n  }\r\n  logos.forEach(function(l){track.appendChild(buildSlide(l))});\r\n  logos.forEach(function(l){track.appendChild(buildSlide(l))});\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f82760b e-con-full e-flex e-con e-parent\" data-id=\"f82760b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-724d532 elementor-widget elementor-widget-html\" data-id=\"724d532\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@300;800&display=swap');\r\n\r\n.rb-video*{box-sizing:border-box;margin:0;padding:0}\r\n.rb-video{font-family:'Open Sans',sans-serif;background:#fff;padding:100px 60px;position:relative;overflow:hidden}\r\n.rb-video::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(to right,#d00000,rgba(208,0,0,0.2))}\r\n.rb-video-inner{max-width:1280px;margin:0 auto}\r\n\r\n.rb-video-top{margin-bottom:48px;opacity:0;transform:translateY(24px);transition:opacity 0.7s ease,transform 0.7s ease}\r\n.rb-video-top.visible{opacity:1;transform:translateY(0)}\r\n.rb-video-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:16px}\r\n.rb-video-eyebrow-line{width:32px;height:2px;background:#d00000}\r\n.rb-video-eyebrow-text{font-size:10px;font-weight:800;letter-spacing:5px;text-transform:uppercase;color:#d00000}\r\n.rb-video-title{font-size:clamp(24px,3vw,44px);font-weight:800;color:#0a0a0a;letter-spacing:-1px;line-height:1.05;margin:0}\r\n.rb-video-title span{color:#d00000}\r\n\r\n.rb-video-wrap{position:relative;width:100%;opacity:0;transform:translateY(24px);transition:opacity 0.7s ease 0.15s,transform 0.7s ease 0.15s}\r\n.rb-video-wrap.visible{opacity:1;transform:translateY(0)}\r\n\r\n.rb-video-ratio{position:relative;width:100%;padding-bottom:56.25%;background:#000}\r\n.rb-video-ratio video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}\r\n\r\n.rb-video-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.4);transition:opacity 0.4s ease;cursor:pointer;z-index:2}\r\n.rb-video-overlay.hidden{opacity:0;pointer-events:none}\r\n.rb-video-play{width:80px;height:80px;background:#d00000;display:flex;align-items:center;justify-content:center;transition:transform 0.3s ease,background 0.3s}\r\n.rb-video-play:hover{background:#b00000;transform:scale(1.1)}\r\n.rb-video-play svg{width:28px;height:28px;fill:#fff;margin-left:4px}\r\n\r\n.rb-video-controls{display:flex;align-items:center;gap:0;background:#0a0a0a;border-top:1px solid rgba(255,255,255,0.06);padding:0 16px;height:52px}\r\n.rb-vc-btn{width:44px;height:52px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity 0.2s;padding:0}\r\n.rb-vc-btn:hover{opacity:0.7}\r\n.rb-vc-btn svg{width:18px;height:18px;fill:#fff;flex-shrink:0}\r\n.rb-vc-btn svg.stroke{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\r\n\r\n.rb-vc-progress{flex:1;margin:0 12px;position:relative;height:3px;background:rgba(255,255,255,0.2);cursor:pointer}\r\n.rb-vc-progress-fill{height:100%;background:#d00000;width:0%;transition:width 0.1s linear;pointer-events:none}\r\n.rb-vc-progress:hover .rb-vc-progress-fill{background:#ff1a1a}\r\n\r\n.rb-vc-time{font-size:11px;font-weight:800;color:rgba(255,255,255,0.5);letter-spacing:1px;white-space:nowrap;margin-right:8px;min-width:80px;text-align:center}\r\n\r\n.rb-vc-volume{display:flex;align-items:center;gap:8px}\r\n.rb-vc-volume-slider{width:60px;height:3px;background:rgba(255,255,255,0.2);cursor:pointer;position:relative;appearance:none;-webkit-appearance:none;outline:none;border:none}\r\n.rb-vc-volume-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:12px;background:#d00000;border-radius:50%;cursor:pointer}\r\n.rb-vc-volume-slider::-moz-range-thumb{width:12px;height:12px;background:#d00000;border-radius:50%;cursor:pointer;border:none}\r\n\r\n.rb-vc-label{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.3);margin-left:auto;padding-left:16px;border-left:1px solid rgba(255,255,255,0.1)}\r\n\r\n@media(max-width:1024px){.rb-video{padding:80px 40px}}\r\n@media(max-width:768px){.rb-video{padding:64px 24px}.rb-video-play{width:64px;height:64px}.rb-video-play svg{width:22px;height:22px}.rb-vc-volume{display:none}.rb-vc-label{display:none}}\r\n@media(max-width:480px){.rb-video{padding:48px 20px}}\r\n<\/style>\r\n\r\n<section class=\"rb-video\" aria-label=\"Film przedstawiaj\u0105cy RapidBase \u2014 modu\u0142owy system autonomizacji maszyn\">\r\n  <div class=\"rb-video-inner\">\r\n\r\n    <div class=\"rb-video-top\">\r\n      <div class=\"rb-video-eyebrow\">\r\n        <div class=\"rb-video-eyebrow-line\"><\/div>\r\n        <div class=\"rb-video-eyebrow-text\">RapidBase w akcji<\/div>\r\n      <\/div>\r\n      <h2 class=\"rb-video-title\">Zobacz jak dzia\u0142a<br><span>RapidBase<\/span><\/h2>\r\n    <\/div>\r\n\r\n    <div class=\"rb-video-wrap\">\r\n      <div class=\"rb-video-ratio\">\r\n        <video id=\"rbVideo\" preload=\"metadata\" playsinline>\r\n          <source src=\"http:\/\/rapidbase.hetbot.com\/wp-content\/uploads\/2026\/06\/0610.mp4\" type=\"video\/mp4\">\r\n        <\/video>\r\n        <div class=\"rb-video-overlay\" id=\"rbVideoOverlay\">\r\n          <div class=\"rb-video-play\" aria-label=\"Odtw\u00f3rz film\">\r\n            <svg viewBox=\"0 0 24 24\"><path d=\"M5 3l14 9-14 9V3z\"\/><\/svg>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"rb-video-controls\">\r\n        <button class=\"rb-vc-btn\" id=\"rbPlayBtn\" aria-label=\"Odtw\u00f3rz \/ Pauza\">\r\n          <svg viewBox=\"0 0 24 24\"><path d=\"M5 3l14 9-14 9V3z\"\/><\/svg>\r\n        <\/button>\r\n        <button class=\"rb-vc-btn\" id=\"rbRestartBtn\" aria-label=\"Od pocz\u0105tku\">\r\n          <svg class=\"stroke\" viewBox=\"0 0 24 24\"><polyline points=\"1 4 1 10 7 10\"\/><path d=\"M3.51 15a9 9 0 1 0 .49-4.38\"\/><\/svg>\r\n        <\/button>\r\n        <div class=\"rb-vc-progress\" id=\"rbProgress\">\r\n          <div class=\"rb-vc-progress-fill\" id=\"rbProgressFill\"><\/div>\r\n        <\/div>\r\n        <div class=\"rb-vc-time\" id=\"rbTime\">0:00 \/ 0:00<\/div>\r\n        <div class=\"rb-vc-volume\">\r\n          <button class=\"rb-vc-btn\" id=\"rbMuteBtn\" aria-label=\"Wycisz\">\r\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\" fill=\"#fff\"\/><path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\" stroke=\"#fff\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\"\/><\/svg>\r\n          <\/button>\r\n          <input type=\"range\" class=\"rb-vc-volume-slider\" id=\"rbVolume\" min=\"0\" max=\"1\" step=\"0.05\" value=\"1\">\r\n        <\/div>\r\n        <button class=\"rb-vc-btn\" id=\"rbFullBtn\" aria-label=\"Pe\u0142ny ekran\">\r\n          <svg class=\"stroke\" viewBox=\"0 0 24 24\"><path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"\/><\/svg>\r\n        <\/button>\r\n        <div class=\"rb-vc-label\">HetBot Group<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function(){\r\n  var top = document.querySelector('.rb-video-top');\r\n  var wrap = document.querySelector('.rb-video-wrap');\r\n  var video = document.getElementById('rbVideo');\r\n  var overlay = document.getElementById('rbVideoOverlay');\r\n  var playBtn = document.getElementById('rbPlayBtn');\r\n  var restartBtn = document.getElementById('rbRestartBtn');\r\n  var muteBtn = document.getElementById('rbMuteBtn');\r\n  var fullBtn = document.getElementById('rbFullBtn');\r\n  var progress = document.getElementById('rbProgress');\r\n  var progressFill = document.getElementById('rbProgressFill');\r\n  var volumeSlider = document.getElementById('rbVolume');\r\n  var timeEl = document.getElementById('rbTime');\r\n\r\n  var observer = new IntersectionObserver(function(entries){\r\n    entries.forEach(function(entry){\r\n      if(entry.isIntersecting){entry.target.classList.add('visible');observer.unobserve(entry.target)}\r\n    });\r\n  },{threshold:0.1});\r\n  if(top) observer.observe(top);\r\n  if(wrap) observer.observe(wrap);\r\n\r\n  function formatTime(s){\r\n    var m=Math.floor(s\/60);\r\n    var sec=Math.floor(s%60);\r\n    return m+':'+(sec<10?'0':'')+sec;\r\n  }\r\n\r\n  function updatePlayIcon(){\r\n    playBtn.innerHTML = video.paused\r\n      ? '<svg viewBox=\"0 0 24 24\"><path d=\"M5 3l14 9-14 9V3z\" fill=\"#fff\"\/><\/svg>'\r\n      : '<svg viewBox=\"0 0 24 24\"><rect x=\"6\" y=\"4\" width=\"4\" height=\"16\" fill=\"#fff\"\/><rect x=\"14\" y=\"4\" width=\"4\" height=\"16\" fill=\"#fff\"\/><\/svg>';\r\n  }\r\n\r\n  function updateMuteIcon(){\r\n    muteBtn.innerHTML = video.muted || video.volume===0\r\n      ? '<svg viewBox=\"0 0 24 24\"><polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\" fill=\"#fff\"\/><line x1=\"23\" y1=\"9\" x2=\"17\" y2=\"15\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\"\/><line x1=\"17\" y1=\"9\" x2=\"23\" y2=\"15\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg>'\r\n      : '<svg viewBox=\"0 0 24 24\"><polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\" fill=\"#fff\"\/><path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\" stroke=\"#fff\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\"\/><\/svg>';\r\n  }\r\n\r\n  if(overlay) overlay.addEventListener('click', function(){\r\n    video.play();\r\n    overlay.classList.add('hidden');\r\n    updatePlayIcon();\r\n  });\r\n\r\n  if(playBtn) playBtn.addEventListener('click', function(){\r\n    if(video.paused){video.play();overlay.classList.add('hidden')}\r\n    else{video.pause();overlay.classList.remove('hidden')}\r\n    updatePlayIcon();\r\n  });\r\n\r\n  if(restartBtn) restartBtn.addEventListener('click', function(){\r\n    video.currentTime=0;\r\n    video.play();\r\n    overlay.classList.add('hidden');\r\n    updatePlayIcon();\r\n  });\r\n\r\n  if(muteBtn) muteBtn.addEventListener('click', function(){\r\n    video.muted=!video.muted;\r\n    updateMuteIcon();\r\n  });\r\n\r\n  if(volumeSlider) volumeSlider.addEventListener('input', function(){\r\n    video.volume=this.value;\r\n    video.muted=this.value==0;\r\n    updateMuteIcon();\r\n  });\r\n\r\n  if(fullBtn) fullBtn.addEventListener('click', function(){\r\n    var container = video.closest('.rb-video-ratio') || video;\r\n    if(document.fullscreenElement){document.exitFullscreen()}\r\n    else if(container.requestFullscreen){container.requestFullscreen()}\r\n    else if(video.webkitEnterFullscreen){video.webkitEnterFullscreen()}\r\n  });\r\n\r\n  if(progress) progress.addEventListener('click', function(e){\r\n    var rect=this.getBoundingClientRect();\r\n    var pct=(e.clientX-rect.left)\/rect.width;\r\n    video.currentTime=pct*video.duration;\r\n  });\r\n\r\n  if(video){\r\n    video.addEventListener('timeupdate', function(){\r\n      if(video.duration){\r\n        var pct=(video.currentTime\/video.duration)*100;\r\n        progressFill.style.width=pct+'%';\r\n        timeEl.textContent=formatTime(video.currentTime)+' \/ '+formatTime(video.duration);\r\n      }\r\n    });\r\n    video.addEventListener('ended', function(){\r\n      overlay.classList.remove('hidden');\r\n      updatePlayIcon();\r\n    });\r\n    video.addEventListener('pause', function(){updatePlayIcon()});\r\n    video.addEventListener('play', function(){updatePlayIcon()});\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2211fba e-con-full e-flex e-con e-parent\" data-id=\"2211fba\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-38f0410 elementor-widget elementor-widget-html\" data-id=\"38f0410\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@300;800&display=swap');\r\n\r\n.cta-form*{box-sizing:border-box;margin:0;padding:0}\r\n.cta-form{font-family:'Open Sans',sans-serif;background:#f7f6f4;padding:100px 60px;position:relative;overflow:hidden}\r\n.cta-form::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(to right,#d00000,rgba(208,0,0,0.2))}\r\n.cta-form-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:start}\r\n\r\n.cta-form-left{opacity:0;transform:translateY(32px);transition:opacity 0.7s ease,transform 0.7s ease}\r\n.cta-form-left.visible{opacity:1;transform:translateY(0)}\r\n.cta-form-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:20px}\r\n.cta-form-eyebrow-line{width:32px;height:2px;background:#d00000}\r\n.cta-form-eyebrow-text{font-size:10px;font-weight:800;letter-spacing:5px;text-transform:uppercase;color:#d00000}\r\n.cta-form-title{font-size:clamp(28px,3.5vw,52px);font-weight:800;color:#0a0a0a;line-height:1.05;letter-spacing:-1px;margin-bottom:20px}\r\n.cta-form-title span{color:#d00000}\r\n.cta-form-desc{font-size:15px;font-weight:300;color:#666;line-height:1.8;margin-bottom:40px}\r\n.cta-form-info{display:flex;flex-direction:column;gap:16px}\r\n.cta-form-info-item{display:flex;align-items:center;gap:14px}\r\n.cta-form-info-icon{width:40px;height:40px;background:#fff;border:1px solid #e0deda;display:flex;align-items:center;justify-content:center;flex-shrink:0}\r\n.cta-form-info-icon svg{width:16px;height:16px;stroke:#d00000;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}\r\n.cta-form-info-label{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#999;margin-bottom:2px}\r\n.cta-form-info-val{font-size:14px;font-weight:300;color:#333}\r\n.cta-form-info-val a{color:#333;text-decoration:none;transition:color 0.2s}\r\n.cta-form-info-val a:hover{color:#d00000}\r\n\r\n.cta-form-right{background:#fff;padding:48px;opacity:0;transform:translateY(32px);transition:opacity 0.7s ease 0.15s,transform 0.7s ease 0.15s}\r\n.cta-form-right.visible{opacity:1;transform:translateY(0)}\r\n\r\n.cta-form-group{margin-bottom:24px}\r\n.cta-form-label{display:block;font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#999;margin-bottom:8px}\r\n.cta-form-label span{color:#d00000}\r\n.cta-form-input,.cta-form-textarea,.cta-form-select{width:100%;background:#f7f6f4;border:none;border-bottom:2px solid #e0deda;padding:14px 0;font-family:'Open Sans',sans-serif;font-size:14px;font-weight:300;color:#0a0a0a;outline:none;transition:border-color 0.3s;border-radius:0;appearance:none}\r\n.cta-form-input:focus,.cta-form-textarea:focus,.cta-form-select:focus{border-color:#d00000;background:#fff}\r\n.cta-form-input::placeholder,.cta-form-textarea::placeholder{color:#bbb;font-weight:300}\r\n.cta-form-textarea{resize:none;min-height:120px;line-height:1.6}\r\n.cta-form-select{cursor:pointer;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}\r\n\r\n.cta-form-chips{display:flex;flex-wrap:wrap;gap:8px}\r\n.cta-form-chip{padding:8px 16px;border:1px solid #e0deda;background:#f7f6f4;font-family:'Open Sans',sans-serif;font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#666;cursor:pointer;transition:all 0.2s;user-select:none}\r\n.cta-form-chip:hover{border-color:#d00000;color:#d00000}\r\n.cta-form-chip.active{background:#d00000;border-color:#d00000;color:#fff}\r\n\r\n.cta-form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}\r\n.cta-form-consent{display:flex;align-items:flex-start;gap:12px;margin-bottom:32px}\r\n.cta-form-consent input[type=\"checkbox\"]{width:18px;height:18px;flex-shrink:0;accent-color:#d00000;margin-top:2px;cursor:pointer}\r\n.cta-form-consent-text{font-size:11px;font-weight:300;color:#999;line-height:1.6}\r\n.cta-form-consent-text span{color:#d00000}\r\n.cta-form-consent-text a{color:#d00000;font-weight:600;text-decoration:underline;text-decoration-color:rgba(208,0,0,0.3);transition:text-decoration-color 0.2s}\r\n.cta-form-consent-text a:hover{text-decoration-color:#d00000}\r\n\r\n.cta-form-submit{display:flex;align-items:center;gap:20px;flex-wrap:wrap}\r\n.cta-form-btn{display:inline-flex;align-items:center;gap:12px;padding:16px 36px;background:#0a0a0a;color:#fff;font-family:'Open Sans',sans-serif;font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;transition:background 0.25s;position:relative;overflow:hidden}\r\n.cta-form-btn::before{content:'';position:absolute;inset:0;background:rgba(208,0,0,0.9);transform:translateX(-100%);transition:transform 0.4s ease}\r\n.cta-form-btn:hover::before{transform:translateX(0)}\r\n.cta-form-btn:disabled{opacity:0.6;cursor:not-allowed}\r\n.cta-form-btn span{position:relative;z-index:1;display:flex;align-items:center;gap:12px}\r\n.cta-form-btn-arrow{display:inline-block;transition:transform 0.3s}\r\n.cta-form-btn:hover .cta-form-btn-arrow{transform:translateX(4px)}\r\n.cta-form-note{font-size:11px;font-weight:300;color:#bbb;line-height:1.5}\r\n\r\n.cta-form-error{display:none;background:#fff0f0;border-left:3px solid #d00000;padding:12px 16px;font-size:13px;font-weight:300;color:#d00000;margin-bottom:20px}\r\n\r\n.cta-form-success{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px;gap:16px}\r\n.cta-form-success-icon{width:56px;height:56px;background:#d00000;display:flex;align-items:center;justify-content:center}\r\n.cta-form-success-icon svg{width:24px;height:24px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\r\n.cta-form-success-title{font-size:24px;font-weight:800;color:#0a0a0a;letter-spacing:-0.5px}\r\n.cta-form-success-sub{font-size:14px;font-weight:300;color:#999}\r\n\r\n@media(max-width:1024px){.cta-form{padding:80px 40px}.cta-form-inner{gap:48px}}\r\n@media(max-width:768px){.cta-form{padding:64px 24px}.cta-form-inner{grid-template-columns:1fr;gap:48px}.cta-form-right{padding:36px 32px}.cta-form-row{grid-template-columns:1fr}}\r\n@media(max-width:480px){.cta-form{padding:48px 20px}.cta-form-right{padding:28px 20px}.cta-form-submit{flex-direction:column;align-items:flex-start}}\r\n<\/style>\r\n\r\n<section class=\"cta-form\" aria-label=\"Formularz kontaktowy RapidBase \u2014 zapytaj o ofert\u0119 autonomizacji maszyn\">\r\n  <div class=\"cta-form-inner\">\r\n\r\n    <div class=\"cta-form-left\">\r\n      <div class=\"cta-form-eyebrow\">\r\n        <div class=\"cta-form-eyebrow-line\"><\/div>\r\n        <div class=\"cta-form-eyebrow-text\">Kontakt<\/div>\r\n      <\/div>\r\n      <h2 class=\"cta-form-title\">Chcesz ruszy\u0107<br>z projektem<br><span>od zaraz?<\/span><\/h2>\r\n      <p class=\"cta-form-desc\">Opisz swoj\u0105 maszyn\u0119 lub projekt. Nasz zesp\u00f3\u0142 odpowie w ci\u0105gu 24 godzin z konkretnym planem dzia\u0142ania dopasowanym do Twojego przypadku.<\/p>\r\n      <div class=\"cta-form-info\">\r\n        <div class=\"cta-form-info-item\">\r\n          <div class=\"cta-form-info-icon\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\r\n          <\/div>\r\n          <div>\r\n            <div class=\"cta-form-info-label\">Email<\/div>\r\n            <div class=\"cta-form-info-val\"><a href=\"mailto:rapidbase@hetbot.com\">rapidbase@hetbot.com<\/a><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"cta-form-info-item\">\r\n          <div class=\"cta-form-info-icon\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81a19.79 19.79 0 01-3.07-8.68A2 2 0 012 .99h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.09 8.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"\/><\/svg>\r\n          <\/div>\r\n          <div>\r\n            <div class=\"cta-form-info-label\">Telefon<\/div>\r\n            <div class=\"cta-form-info-val\"><a href=\"tel:+48781393328\">+48 781 393 328<\/a><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"cta-form-info-item\">\r\n          <div class=\"cta-form-info-icon\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>\r\n          <\/div>\r\n          <div>\r\n            <div class=\"cta-form-info-label\">Siedziba<\/div>\r\n            <div class=\"cta-form-info-val\">ul. Stefanowskiego 18<br>90-537 \u0141\u00f3d\u017a<\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"cta-form-right\">\r\n      <div class=\"cta-form-error\" id=\"rfError\" role=\"alert\"><\/div>\r\n\r\n      <form id=\"rfForm\" aria-label=\"Formularz zapytania o ofert\u0119 RapidBase\" novalidate>\r\n\r\n        <div class=\"cta-form-group\">\r\n          <label class=\"cta-form-label\">Temat <span>*<\/span><\/label>\r\n          <div class=\"cta-form-chips\" role=\"group\" aria-label=\"Wybierz temat zapytania\">\r\n            <div class=\"cta-form-chip active\" role=\"checkbox\" aria-checked=\"true\" tabindex=\"0\" data-topic=\"Autonomizacja maszyn\">Autonomizacja maszyn<\/div>\r\n            <div class=\"cta-form-chip\" role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\" data-topic=\"Rozw\u00f3j nowych robot\u00f3w\">Rozw\u00f3j nowych robot\u00f3w<\/div>\r\n            <div class=\"cta-form-chip\" role=\"checkbox\" aria-checked=\"false\" tabindex=\"0\" data-topic=\"Development technologii\">Development technologii<\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"cta-form-row\">\r\n          <div class=\"cta-form-group\">\r\n            <label class=\"cta-form-label\" for=\"rfPhone\">Numer telefonu<\/label>\r\n            <input type=\"tel\" id=\"rfPhone\" name=\"phone\" class=\"cta-form-input\" placeholder=\"+48 000 000 000\" autocomplete=\"tel\">\r\n          <\/div>\r\n          <div class=\"cta-form-group\">\r\n            <label class=\"cta-form-label\" for=\"rfEmail\">Email <span>*<\/span><\/label>\r\n            <input type=\"email\" id=\"rfEmail\" name=\"email\" class=\"cta-form-input\" placeholder=\"jan@firma.pl\" required autocomplete=\"email\">\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"cta-form-group\">\r\n          <label class=\"cta-form-label\" for=\"rfMessage\">Opis rozwa\u017canego projektu<\/label>\r\n          <textarea id=\"rfMessage\" name=\"message\" class=\"cta-form-textarea\" placeholder=\"Opisz swoj\u0105 maszyn\u0119 lub projekt kt\u00f3ry chcesz zautonomizowa\u0107...\"><\/textarea>\r\n        <\/div>\r\n\r\n        <div class=\"cta-form-consent\">\r\n          <input type=\"checkbox\" id=\"rfConsent\" name=\"consent\" required>\r\n          <label class=\"cta-form-consent-text\" for=\"rfConsent\">\r\n            Wyra\u017cam zgod\u0119 na kontakt ze strony HetBot Sp. z o.o. w celu obs\u0142ugi mojego zapytania oraz przygotowania odpowiedzi lub oferty na podstawie danych podanych w formularzu. Zapozna\u0142em\/am si\u0119 z <a href=\"https:\/\/rapidbase.hetbot.com\/polityka-prywatnosci\/\" target=\"_blank\" rel=\"noopener\">Polityk\u0105 prywatno\u015bci<\/a>. <span>*<\/span>\r\n          <\/label>\r\n        <\/div>\r\n\r\n        <div class=\"cta-form-submit\">\r\n          <button type=\"submit\" id=\"rfBtn\" class=\"cta-form-btn\" aria-label=\"Wy\u015blij zapytanie o ofert\u0119 RapidBase\">\r\n            <span>\r\n              <span id=\"rfBtnLabel\">Wy\u015blij zapytanie<\/span>\r\n              <span class=\"cta-form-btn-arrow\" aria-hidden=\"true\">\u2192<\/span>\r\n            <\/span>\r\n          <\/button>\r\n          <span class=\"cta-form-note\">Odpowiadamy<br>w ci\u0105gu 24h<\/span>\r\n        <\/div>\r\n\r\n      <\/form>\r\n\r\n      <div class=\"cta-form-success\" id=\"rfSuccess\" role=\"alert\" aria-live=\"polite\">\r\n        <div class=\"cta-form-success-icon\">\r\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\r\n        <\/div>\r\n        <div class=\"cta-form-success-title\">Wiadomo\u015b\u0107 wys\u0142ana!<\/div>\r\n        <div class=\"cta-form-success-sub\">Odezwiemy si\u0119 w ci\u0105gu 24 godzin.<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function(){\r\n  var ENDPOINT = '\/wp-json\/rapidbase\/v1\/contact';\r\n\r\n  var els = document.querySelectorAll('.cta-form-left,.cta-form-right');\r\n  var observer = new IntersectionObserver(function(entries){\r\n    entries.forEach(function(entry){\r\n      if(entry.isIntersecting){ entry.target.classList.add('visible'); observer.unobserve(entry.target); }\r\n    });\r\n  }, {threshold: 0.1});\r\n  els.forEach(function(el){ observer.observe(el); });\r\n\r\n  document.querySelectorAll('.cta-form-chip').forEach(function(chip){\r\n    chip.addEventListener('click', function(){\r\n      chip.classList.toggle('active');\r\n      chip.setAttribute('aria-checked', chip.classList.contains('active'));\r\n    });\r\n    chip.addEventListener('keydown', function(e){\r\n      if(e.key===' '||e.key==='Enter'){ e.preventDefault(); chip.click(); }\r\n    });\r\n  });\r\n\r\n  document.getElementById('rfForm').addEventListener('submit', function(e){\r\n    e.preventDefault();\r\n\r\n    var email   = document.getElementById('rfEmail').value.trim();\r\n    var phone   = document.getElementById('rfPhone').value.trim();\r\n    var message = document.getElementById('rfMessage').value.trim();\r\n    var consent = document.getElementById('rfConsent').checked;\r\n    var errEl   = document.getElementById('rfError');\r\n    var btn     = document.getElementById('rfBtn');\r\n    var btnLbl  = document.getElementById('rfBtnLabel');\r\n\r\n    var topics = [];\r\n    document.querySelectorAll('.cta-form-chip.active').forEach(function(c){\r\n      topics.push(c.getAttribute('data-topic'));\r\n    });\r\n\r\n    errEl.style.display = 'none';\r\n    if(!email || !\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)){\r\n      errEl.textContent = 'Podaj poprawny adres email.';\r\n      errEl.style.display = 'block';\r\n      return;\r\n    }\r\n    if(!consent){\r\n      errEl.textContent = 'Wymagana zgoda na kontakt.';\r\n      errEl.style.display = 'block';\r\n      return;\r\n    }\r\n\r\n    btn.disabled = true;\r\n    btnLbl.textContent = 'Wysy\u0142anie\u2026';\r\n\r\n    fetch(ENDPOINT, {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application\/json' },\r\n      body: JSON.stringify({ email: email, phone: phone, message: message, topics: topics })\r\n    })\r\n    .then(function(res){ return res.json(); })\r\n    .then(function(data){\r\n      if(data.success){\r\n        document.getElementById('rfForm').style.display = 'none';\r\n        document.getElementById('rfSuccess').style.display = 'flex';\r\n      } else {\r\n        errEl.textContent = data.message || 'B\u0142\u0105d wysy\u0142ki. Spr\u00f3buj ponownie.';\r\n        errEl.style.display = 'block';\r\n        btn.disabled = false;\r\n        btnLbl.textContent = 'Wy\u015blij zapytanie';\r\n      }\r\n    })\r\n    .catch(function(){\r\n      errEl.textContent = 'B\u0142\u0105d po\u0142\u0105czenia z serwerem. Spr\u00f3buj ponownie.';\r\n      errEl.style.display = 'block';\r\n      btn.disabled = false;\r\n      btnLbl.textContent = 'Wy\u015blij zapytanie';\r\n    });\r\n  });\r\n})();\r\n<\/script>\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>System modu\u0142\u00f3w Modu\u0142y jako cz\u0119\u015bciwi\u0119kszego systemu 07 \/ Software Interfejs GUI 48V 12.4Ah Najed\u017a lub kliknij w punkt aby zobaczy\u0107 modu\u0142 01 Lokalizacja Software \u2192 02 Kontrola i nawigacja Software \u2192 03 Percepcja Software \u2192 04 Zasilanie Hardware \u2192 05 Kinematyka adaptacyjna Hardware \u2192 06 Sterownik niskopoziomowy Hardware \u2192 Systemy zewn\u0119trzne 07 Interfejs GUI Software [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-660","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/pages\/660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/comments?post=660"}],"version-history":[{"count":248,"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/pages\/660\/revisions"}],"predecessor-version":[{"id":2640,"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/pages\/660\/revisions\/2640"}],"wp:attachment":[{"href":"https:\/\/rapidbase.hetbot.com\/en\/wp-json\/wp\/v2\/media?parent=660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}