{"id":3,"date":"2026-07-13T12:17:51","date_gmt":"2026-07-13T12:17:51","guid":{"rendered":"https:\/\/develop.office.one\/?page_id=3"},"modified":"2026-11-09T11:33:07","modified_gmt":"2026-11-09T11:33:07","slug":"impressum","status":"publish","type":"page","link":"https:\/\/develop.office.one\/?page_id=3","title":{"rendered":"Impressum"},"content":{"rendered":"\n\n<nav class=\"oo-lang-nav\" aria-label=\"Sprache\"><a href=\"https:\/\/develop.office.one\/?page_id=3\" lang=\"de\" hreflang=\"de\" aria-current=\"page\">DE<\/a><span aria-hidden=\"true\">\/<\/span><a href=\"https:\/\/develop.office.one\/?page_id=303\" lang=\"en\" hreflang=\"en\">EN<\/a><\/nav>\n<script>(()=>{const lang=\"de\",widget=document.querySelector('.oo-lang-nav');document.documentElement.lang=lang;if(widget){const header=document.querySelector('header.header')||document.querySelector('header');if(header)header.append(widget);}\nconst pairs=[{\"de\":2,\"en\":302,\"deUrl\":\"https:\/\/develop.office.one\/?page_id=2\",\"enUrl\":\"https:\/\/develop.office.one\/?page_id=302\"},{\"de\":3,\"en\":303,\"deUrl\":\"https:\/\/develop.office.one\/?page_id=3\",\"enUrl\":\"https:\/\/develop.office.one\/?page_id=303\"},{\"de\":35,\"en\":304,\"deUrl\":\"https:\/\/develop.office.one\/\",\"enUrl\":\"https:\/\/develop.office.one\/?page_id=304\"},{\"de\":37,\"en\":305,\"deUrl\":\"https:\/\/develop.office.one\/?page_id=37\",\"enUrl\":\"https:\/\/develop.office.one\/?page_id=305\"},{\"de\":38,\"en\":306,\"deUrl\":\"https:\/\/develop.office.one\/?page_id=38\",\"enUrl\":\"https:\/\/develop.office.one\/?page_id=306\"},{\"de\":265,\"en\":307,\"deUrl\":\"https:\/\/develop.office.one\/?page_id=265\",\"enUrl\":\"https:\/\/develop.office.one\/?page_id=307\"},{\"de\":270,\"en\":308,\"deUrl\":\"https:\/\/develop.office.one\/?page_id=270\",\"enUrl\":\"https:\/\/develop.office.one\/?page_id=308\"}];const labels={'Expertise':'Expertise','Angebot':'Support plans','Leistungen':'Services','Betreuungsmodelle':'Support plans','Team':'Team','Home':'Home'};if(lang==='en'){document.querySelectorAll('header a,#site-footer a').forEach(a=>{const href=a.getAttribute('href');const p=pairs.find(p=>a.href===p.deUrl||href==='\/?page_id='+p.de);if(p)a.href=p.enUrl;if(href==='\/'||a.href==='https:\/\/develop.office.one\/')a.href=\"https:\/\/develop.office.one\/?page_id=304\";if(labels[a.textContent.trim()])a.textContent=labels[a.textContent.trim()];});document.querySelectorAll('header .current-menu-item,header .current_page_item').forEach(e=>e.classList.remove('current-menu-item','current_page_item'));const current=303;document.querySelectorAll('header nav a').forEach(a=>{if(a.href.includes('page_id='+current))a.closest('li')?.classList.add('current-menu-item')});}\nfor(const [l,u] of [['de',\"https:\/\/develop.office.one\/?page_id=3\"],['en',\"https:\/\/develop.office.one\/?page_id=303\"]]){const link=document.createElement('link');link.rel='alternate';link.hreflang=l;link.href=u;document.head.append(link)}\n})();<\/script>\n\n\n<style id=\"oo-language-frame\">html body header.header nav.oo-lang-nav{outline:1px solid #b8c3cc!important;outline-offset:6px!important;border-radius:0!important}@media(min-width:960px){html body header.header nav.oo-lang-nav{top:45px!important}}@media(max-width:781px){html body:is(.page-id-35,.page-id-304) #content .nv-content-wrap .oo-home .hero .actions .btn{width:240px!important}}\nhtml:root{--oo-surface:#eaf6fa}\nhtml:root body:is(.page-id-35,.page-id-304) #content .nv-content-wrap .oo-home section.oo-approach,\nhtml:root body:is(.page-id-38,.page-id-306) #content .nv-content-wrap > .wp-block-group:has(.wp-image-564,.wp-image-566,.wp-image-568),\nhtml:root body:is(.page-id-2,.page-id-302) #content .nv-content-wrap .office-models .om-package:nth-child(n),\nhtml:root body:is(.page-id-37,.page-id-305) #content .nv-content-wrap .o1-team details.o1-person .o1-avatar,\nhtml:root body:is(.page-id-37,.page-id-305) #content .nv-content-wrap .o1-team details.o1-person .o1-avatar.oo-avatar-blue,\nhtml:root body:is(.page-id-37,.page-id-305) #content .nv-content-wrap .o1-team details.o1-person[open],\nhtml:root body:is(.page-id-38,.page-id-306) #content .nv-content-wrap .oo-service-chips li,\nhtml:root body:is(.page-id-270,.page-id-308) #content .nv-content-wrap .oo-contact .oo-contact-fields input,\nhtml:root body:is(.page-id-270,.page-id-308) #content .nv-content-wrap .oo-contact textarea{\nbackground:var(--oo-surface)!important;background-image:none!important\n}\nhtml:root body:is(.page-id-35,.page-id-304,.page-id-38,.page-id-306) #content .nv-content-wrap section.oo-contact-cta .oo-cta-inner{\ngrid-template-columns:minmax(0,48%) minmax(0,1fr)!important;gap:40px!important;justify-content:stretch!important\n}\nhtml:root body:is(.page-id-35,.page-id-304,.page-id-38,.page-id-306) #content .nv-content-wrap section.oo-contact-cta .oo-cta-button{\njustify-self:center!important;margin:0!important\n}\n@media(max-width:959px){\nhtml:root body:is(.page-id-35,.page-id-304,.page-id-38,.page-id-306) #content .nv-content-wrap section.oo-contact-cta .oo-cta-inner{\ngrid-template-columns:1fr!important;gap:28px!important\n}\n}\n\n@media(max-width:959px){\nhtml:root body header.header > nav.oo-lang-nav{display:none!important}\nhtml:root body #header-menu-sidebar nav.oo-lang-nav{position:static!important;inset:auto!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;align-self:stretch!important;width:auto!important;max-width:none!important;margin:24px 28px 12px!important;padding:18px 0 0!important;gap:12px!important;transform:none!important;outline:none!important;outline-offset:0!important;border:0!important;border-top:1px solid rgba(255,255,255,.18)!important;border-radius:0!important;background:transparent!important;z-index:auto!important;font-size:14px!important;line-height:1.5!important}\nhtml:root body #header-menu-sidebar nav.oo-lang-nav a{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:44px!important;min-height:44px!important;color:#f5faff!important}\nhtml:root body #header-menu-sidebar nav.oo-lang-nav a[aria-current=\"page\"]{color:#24c5d8!important}\n}\n@media(max-width:781px){\nhtml:root body:is(.page-id-35,.page-id-304) #content .nv-content-wrap .oo-home .hero .actions .btn{width:208px!important;min-height:44px!important;font-size:14px!important;line-height:1.3!important;padding:10px 16px!important;gap:14px!important}\n}\nhtml:root body:is(.page-id-38,.page-id-306) #content .nv-content-wrap .wp-block-image img.wp-image-568{mix-blend-mode:multiply!important}\nhtml:root body:is(.page-id-37,.page-id-305) #content .nv-content-wrap .o1-team details.o1-person .o1-avatar{color:#164e55!important}\nhtml:root body:is(.page-id-3,.page-id-303,.page-id-265,.page-id-307,.page-id-270,.page-id-308) #content .nv-content-wrap .oo-legal h1{font-size:clamp(30px,2.75vw,42px)!important;line-height:1.14!important}\n@media(max-width:781px){html:root body:is(.page-id-3,.page-id-303,.page-id-265,.page-id-307,.page-id-270,.page-id-308) #content .nv-content-wrap .oo-legal h1{font-size:clamp(30px,7.6vw,42px)!important}}\n@media(max-width:359px){html:root body:is(.page-id-3,.page-id-303,.page-id-265,.page-id-307,.page-id-270,.page-id-308) #content .nv-content-wrap .oo-legal h1{font-size:26px!important}}\n\n@media(max-width:959px),(hover:none),(pointer:coarse){\nhtml:root body:is(.page-id-35,.page-id-304) #content .nv-content-wrap .oo-home .hero .actions .btn-primary:is(:hover,:focus-visible,:active),\nhtml:root body:is(.page-id-35,.page-id-304,.page-id-2,.page-id-302) #content .nv-content-wrap section.oo-contact-cta .oo-cta-inner .oo-cta-button:is(:hover,:focus-visible,:active){background:#24c5d8!important;border-color:#24c5d8!important;color:#164e55!important;box-shadow:none!important;transition:none!important}\nhtml:root body:is(.page-id-35,.page-id-304) #content .nv-content-wrap .oo-home .hero .actions .btn-outline:is(:hover,:focus-visible,:active){background:rgba(255,255,255,.85)!important;color:#111a27!important;border-color:#566273!important;box-shadow:none!important;transition:none!important}\n}\n\nhtml:root body #header-menu-sidebar nav.oo-lang-nav{color:#293b40!important;border-top-color:#d5e0e5!important}html:root body #header-menu-sidebar nav.oo-lang-nav a{color:#293b40!important}html:root body #header-menu-sidebar nav.oo-lang-nav a[aria-current=\"page\"]{color:#087f94!important;font-weight:600!important}html:root body #header-menu-sidebar nav.oo-lang-nav span{color:#71838b!important}\n<\/style>\n<script id=\"oo-mobile-language-nav\">\n(()=>{if(document.documentElement.dataset.ooLanguageNavBound)return;const nav=document.querySelector('.oo-lang-nav'),header=document.querySelector('header.header'),menu=document.getElementById('header-menu-sidebar-inner');if(!nav||!header||!menu)return;document.documentElement.dataset.ooLanguageNavBound='1';const mobile=window.matchMedia('(max-width:959px)');function place(){const parent=mobile.matches?menu:header;if(nav.parentElement!==parent)parent.append(nav)}place();if(mobile.addEventListener)mobile.addEventListener('change',place);else mobile.addListener(place)})();\n<\/script>\n\n<style id=\"oo-entry-refresh\">\nhtml body header.header #header-grid .site-logo img{\nclip-path:polygon(0 0,100% 0,100% 64%,24% 64%,24% 75%,0 75%)!important;\ntransform:translateY(6px)!important\n}\n@media(min-width:960px){\nhtml body header.header #header-grid .header-main[data-show-on=\"desktop\"]{--height:84px!important}\nhtml body header.header #header-grid .header-main[data-show-on=\"desktop\"] .row--wrapper,\nhtml body header.header #header-grid .header-main[data-show-on=\"desktop\"] .header-main-inner{min-height:84px!important;height:84px!important;padding-top:0!important;padding-bottom:0!important}\nhtml body header.header #header-grid .header-main[data-show-on=\"desktop\"] .site-logo img{width:224px!important;min-width:0!important;max-width:224px!important;height:auto!important}\nhtml body header.header #header-grid .header-main[data-show-on=\"desktop\"] .site-logo{margin:0!important}\nhtml body header.header #header-grid .header-main[data-show-on=\"desktop\"] .nav-menu-primary a{font-size:16px!important;font-weight:450!important;letter-spacing:0!important}\nhtml body header.header .oo-lang-nav{top:30px!important}\n}\n\nhtml body header.header #header-grid{padding-bottom:14px!important;background:#050606!important}\n<\/style>\n\n<style>\nbody.page-id-3 .nv-page-title-wrap,body.page-id-3 #site-footer{display:none}\nbody.page-id-3 .single-page-container{max-width:none;padding:0}\nbody.page-id-3 .nv-single-page-wrap{padding:0}\n.oo-legal{margin:0;padding:80px 24px 90px;color:#101927;background:#fff}\n.oo-legal .legal-eyebrow{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin:0 0 22px}\n.oo-legal .legal-eyebrow:after{content:\"\";display:block;width:24px;height:2px;background:#11b9b7;margin-top:8px}\n.oo-legal h1{font-size:clamp(36px,4.5vw,62px);font-weight:750;letter-spacing:-.035em;line-height:1.14;margin:0 0 24px}\n.oo-legal .legal-dot{color:#00b9b5}\n.oo-legal .legal-intro{font-size:18px;color:#657188;margin:0 0 44px}\n.oo-legal .legal-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 64px;padding-bottom:40px}\n.oo-legal h2{font-size:23px;font-weight:650;letter-spacing:-.025em;line-height:1.3;margin:0 0 14px}\n.oo-legal p{font-size:17px;line-height:1.65;margin:0;color:#657188}\n.oo-legal a{color:inherit;text-decoration:underline;text-underline-offset:3px}\n.oo-legal a:hover{color:#00aebc}\n.oo-legal .legal-notice{border-top:1px solid #e9edf0;padding-top:36px}\n.oo-legal .legal-notice h3{font-size:18px;font-weight:600;margin:22px 0 12px}\n.oo-legal .legal-notice p+p{margin-top:16px}\n.oo-legal-footer{background:#05090f;color:#d1d6dc}\n.oo-legal-footer .home-footer{padding:38px 24px 32px}\n.oo-legal-footer .footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:48px}\n.oo-legal-footer .footer-logo{width:220px;height:auto;max-width:100%}\n.oo-legal-footer .copyright{font-size:11px;margin-top:28px;color:#96a0ac}\n.oo-legal-footer h3{font-size:15px;font-weight:500;color:white;margin:0 0 18px}\n.oo-legal-footer .footer-links{display:flex;flex-direction:column;gap:12px}\n.oo-legal-footer .footer-links a,.oo-legal-footer .footer-pending{color:#d1d6dc;font-size:13px;text-decoration:none;line-height:1.5}\n.oo-legal-footer a:hover{color:#00bcc8}\n@media(min-width:960px){.oo-legal{padding-left:clamp(96px,13.5vw,300px);padding-right:clamp(64px,9vw,220px)}.oo-legal-footer .home-footer{padding-left:96px;padding-right:96px}}\n@media(max-width:781px){.oo-legal{padding-top:40px;padding-bottom:50px}.oo-legal .legal-grid{grid-template-columns:1fr;gap:28px}.oo-legal-footer .footer-grid{grid-template-columns:1fr 1fr;gap:28px}.oo-legal-footer .footer-branding{grid-column:1\/-1}}\n<\/style>\n<main class=\"oo-legal\">\n<h1>Impressum<span class=\"legal-dot\">.<\/span><\/h1>\n<p class=\"legal-intro\">Angaben gem\u00e4\u00df \u00a7 5 TMG:<\/p>\n<div class=\"legal-grid\">\n<section><h2>Planetary Systems IT GmbH<\/h2><p>Postanschrift:<br>Naumannstr. 64<br>10829 Berlin<\/p><\/section>\n<section><h2>Kontakt<\/h2><p>Telefon: <a href=\"tel:+493050930140\">+49 30 5093014-0<\/a><br>E-Mail: <a href=\"mailto:info@planetary-systems.de\">info@planetary-systems.de<\/a><\/p><\/section>\n<section><h2>Vertreten durch<\/h2><p>Dennis Tschech<br>Fabian Umbach<\/p><\/section>\n<section><h2>Eingetragen am<\/h2><p>Amtsgericht Charlottenburg<br>HRB 211351 B<\/p><\/section>\n<section><h2>Umsatzsteuer-Identifikationsnummer<\/h2><p>DE327072959<\/p><\/section>\n<\/div>\n<section class=\"legal-notice\"><h2>Hinweise zur Website<\/h2><h3>Information gem\u00e4\u00df \u00a7 36 VSBG<\/h3><p>Gem\u00e4\u00df \u00a7 36 VSBG (Verbraucherstreitbeilegungsgesetz \u2013 Gesetz \u00fcber die alternative Streitbeilegung in Verbrauchersachen) erkl\u00e4rt der Betreiber dieser Website:<\/p><p>Wir sind weder bereit noch verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.<\/p><\/section>\n<\/main>\n<div class=\"oo-legal-footer\"><script id=\"oo-mobile-menu-controller\">\n(()=>{if(document.documentElement.dataset.ooMobileMenuBound)return;const panel=document.getElementById('header-menu-sidebar');if(!panel)return;document.documentElement.dataset.ooMobileMenuBound='1';const body=document.body,overlay=document.querySelector('.header-menu-sidebar-overlay'),openers=[...document.querySelectorAll('.menu-mobile-toggle button.navbar-toggle')],close=panel.querySelector('.close-sidebar-panel button.navbar-toggle');let previousFocus=null,previousOverflow='';\nconst isOpen=()=>body.classList.contains('oo-menu-open');\nfunction setOpen(open,restore=true){if(open===isOpen())return;if(open){previousFocus=document.activeElement;previousOverflow=body.style.overflow}\nbody.classList.toggle('oo-menu-open',open);body.classList.toggle('is-menu-sidebar',open);body.classList.remove('hiding-header-menu-sidebar');panel.setAttribute('aria-hidden',String(!open));if(overlay)overlay.setAttribute('aria-hidden',String(!open));openers.forEach(b=>{b.setAttribute('aria-expanded',String(open));b.setAttribute('aria-controls',panel.id);b.closest('.menu-mobile-toggle').classList.toggle('is-active',open)});if(close)close.setAttribute('aria-expanded',String(open));body.style.overflow=open?'hidden':previousOverflow;\nif(open){const target=close||panel.querySelector('a[href]');if(target)target.focus({preventScroll:true})}else{document.dispatchEvent(new CustomEvent('ftrap-end'));document.querySelectorAll('.neve-skip-link,#content,.scroll-to-top,#site-footer,.header--row').forEach(e=>e.removeAttribute('aria-hidden'));if(restore&&previousFocus&&previousFocus.isConnected)previousFocus.focus({preventScroll:true})}}\nif(close)close.setAttribute('aria-label',document.documentElement.lang.startsWith('en')?'Close navigation':'Navigation schlie\u00dfen');\ndocument.addEventListener('click',e=>{const target=e.target instanceof Element?e.target:null;if(!target)return;const opener=target.closest('.menu-mobile-toggle button.navbar-toggle');const closer=target.closest('#header-menu-sidebar .close-sidebar-panel button.navbar-toggle');const backdrop=target.closest('.header-menu-sidebar-overlay');\nif(opener||closer||backdrop){e.preventDefault();e.stopImmediatePropagation();setOpen(opener?!isOpen():false);return}if(isOpen()&&target.closest('#header-menu-sidebar a[href]'))setOpen(false,false)},true);\ndocument.addEventListener('keydown',e=>{if(!isOpen())return;if(e.key==='Escape'){e.preventDefault();e.stopImmediatePropagation();setOpen(false);return}if(e.key==='Tab'){const nodes=[...panel.querySelectorAll('a[href],button:not([disabled]),[tabindex=\"0\"]')].filter(n=>n.getClientRects().length),first=nodes[0],last=nodes[nodes.length-1];if(!first)return;if(e.shiftKey&&document.activeElement===first){e.preventDefault();last.focus()}else if(!e.shiftKey&&document.activeElement===last){e.preventDefault();first.focus()}}},true);\nwindow.addEventListener('resize',()=>{if(window.innerWidth>=960&&isOpen())setOpen(false,false)});\n})();<\/script>\n\n\n<aside class=\"oo-chat oo-orbit-widget oo-orbit-docked\" aria-label=\"Orbit \u2013 office.one\">\n<details class=\"oo-chat-shell\">\n<summary class=\"oo-orbit-launch\" aria-label=\"Chat mit Orbit \u00f6ffnen\" title=\"Chat mit Orbit \u00f6ffnen\"><img loading=\"lazy\" class=\"oo-orbit-mascot\" src=\"https:\/\/develop.office.one\/wp-content\/uploads\/2026\/11\/Orbit-\u2013-office.one_.png\" alt=\"\" width=\"1536\" height=\"1024\" decoding=\"async\"><\/summary>\n<div class=\"oo-chat-panel\">\n<div class=\"oo-chat-header\"><strong>Orbit<\/strong><button class=\"oo-chat-close\" type=\"button\" aria-label=\"Chat schlie\u00dfen\">\u00d7<\/button><\/div>\n<div class=\"oo-chat-messages\" role=\"log\" aria-live=\"polite\"><p class=\"oo-chat-answer\">Hallo! Ich bin Orbit. Sind Sie Neukunde oder Bestandskunde?<\/p><div class=\"oo-chat-intake-choices\"><button type=\"button\" data-oo-intake=\"Neukunde\">Neukunde<\/button><button type=\"button\" data-oo-intake=\"Bestandskunde\">Bestandskunde<\/button><\/div><\/div><style>.oo-chat-intake-choices{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}.oo-chat-intake-choices button{font:inherit;font-size:14px;line-height:1.4;padding:8px 11px;color:#183941;background:#fff;border:1px solid #b9d5dc;border-radius:8px;cursor:pointer}.oo-chat-intake-choices button:hover,.oo-chat-intake-choices button:focus-visible{background:#eaf6fa;border-color:#0c91a5}<\/style>\n\n<form class=\"oo-chat-input\"><label class=\"oo-chat-label\" for=\"oo-chat-question\">Ihre Frage<\/label><input id=\"oo-chat-question\" type=\"text\" maxlength=\"1000\" placeholder=\"Ihre Frage an Orbit \u2026\" autocomplete=\"off\"><button type=\"submit\" aria-label=\"Frage senden\">\u2192<\/button><\/form>\n\n<\/div><\/details><\/aside>\n<style>\n.oo-chat{position:fixed;right:24px;bottom:24px;z-index:1000;font-family:Inter,Arial,sans-serif}\n.oo-chat summary{list-style:none;background:#07151c;color:white;border:1px solid #26343e;border-radius:999px;padding:14px 20px;cursor:pointer;box-shadow:0 5px 24px #0002;font-size:14px;font-weight:500}\n.oo-chat summary::-webkit-details-marker{display:none}\n.oo-chat summary>span{color:#16bdc5;font-size:20px;margin-right:8px;vertical-align:middle}\n.oo-chat-panel{position:absolute;bottom:64px;right:0;width:350px;max-width:calc(100vw - 32px);background:white;border:1px solid #e4e8ec;border-radius:14px;box-shadow:0 12px 45px #0003;overflow:hidden;color:#101927}\n.oo-chat-header{padding:18px 20px;background:#07151c;color:white;display:flex;flex-direction:column;gap:5px}\n.oo-chat-header strong{font-size:16px}.oo-chat-header span{font-size:12px;color:#b8c6cc}\n.oo-chat-messages{padding:18px;max-height:260px;overflow-y:auto}\n.oo-chat .oo-chat-messages p{margin:0 0 12px;font-size:14px;line-height:1.55;padding:12px;border-radius:9px;background:#f0f3f5;color:#24343f}\n.oo-chat .oo-chat-messages .oo-chat-question{background:#e4f7f7;margin-left:32px}\n.oo-chat .oo-chat-messages a{display:inline-block;margin-top:8px;color:#008c96;text-decoration:underline}\n.oo-chat-options{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 16px}\n.oo-chat-options button{padding:7px 10px;border:1px solid #d9e1e5;border-radius:999px;background:white;color:#24343f;font-size:12px;cursor:pointer}\n.oo-chat-options button:hover{border-color:#00aebc;color:#008c96}\n.oo-chat-input{display:flex;gap:8px;padding:14px 18px;border-top:1px solid #e9edf0}\n.oo-chat-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}\n.oo-chat-input input{min-width:0;flex:1;border:1px solid #d9e1e5;border-radius:6px;padding:10px;font-size:14px;background:#fff;color:#101927}\n.oo-chat-input button{border:0;border-radius:6px;background:#00aebc;color:white;width:40px;cursor:pointer}\n.oo-chat .oo-chat-hint{font-size:11px;color:#657188;padding:0 18px 15px;margin:0;line-height:1.5}\n@media(max-width:781px){.oo-chat{right:16px;bottom:16px}.oo-chat summary{font-size:12px;padding:12px 16px}}\n<\/style>\n<script>\n(()=>{const root=document.querySelector('.oo-chat');if(!root)return;const hero=document.querySelector('.oo-home .hero');if(hero)hero.append(root);\nfunction alignScreen(){if(!hero||innerWidth<782)return;const img=hero.querySelector('img');if(!img||!img.naturalWidth)return;const ir=img.getBoundingClientRect(),hr=hero.getBoundingClientRect(),scale=Math.max(ir.width\/img.naturalWidth,ir.height\/img.naturalHeight),ox=ir.left-hr.left+(ir.width-img.naturalWidth*scale),oy=ir.top-hr.top+(ir.height-img.naturalHeight*scale)*.2;const pts=[[1715,342],[1957,317],[1928,544],[1685,507]].map(([x,y])=>[ox+x*scale,oy+y*scale]);const [[x0,y0],[x1,y1],[x2,y2],[x3,y3]]=pts,dx1=x1-x2,dx2=x3-x2,dx3=x0-x1+x2-x3,dy1=y1-y2,dy2=y3-y2,dy3=y0-y1+y2-y3,den=dx1*dy2-dx2*dy1,g=(dx3*dy2-dx2*dy3)\/den,h=(dx1*dy3-dx3*dy1)\/den,a=x1-x0+g*x1,b=x3-x0+h*x3,d=y1-y0+g*y1,e=y3-y0+h*y3;const m=[a\/300,d\/300,0,g\/300,b\/240,e\/240,0,h\/240,0,0,1,0,x0,y0,0,1];root.style.setProperty('--oo-screen-transform','matrix3d('+m.join(',')+')');root.style.setProperty('--oo-screen-x',((x0+x1+x2+x3)\/4)+'px');root.style.setProperty('--oo-screen-y',((y0+y1+y2+y3)\/4)+'px');}\nwindow.addEventListener('resize',alignScreen);hero?.querySelector('img')?.addEventListener('load',alignScreen);if(hero ? Boolean(window.ResizeObserver) : false)new ResizeObserver(alignScreen).observe(hero);alignScreen();\nfunction createOrbit(language, routes) {\n  const en = language === 'en';\n  const state = { topic: '', pending: '', people: null };\n  const pick = (de, english) => en ? english : de;\n  const contact = () => ({ url: routes.contact, label: pick('Mit dem Team sprechen', 'Talk to our team') });\n  const result = (text, links = []) => ({ text, links });\n  function reply(message) {\n    const q = message.trim().toLowerCase();\n    const count = q.match(\/\\b(\\d{1,4})\\s*(?:mitarbeit\\w*|personen|arbeitspl[a\u00e4]tz\\w*|nutzer\\w*|people|employees|users|workstations)\\b\/);\n    if (count ? +count[1] > 0 : false) state.people = +count[1];\n    if (\/^(hallo|hi|hey|hello|guten tag)[!,.\\s]*$\/.test(q)) return result(pick('Hallo! Sch\u00f6n, dass Sie da sind. Was besch\u00e4ftigt Sie gerade bei Ihrer IT?', 'Hello! Nice to meet you. What would you like to discuss about your IT?'));\n    if (\/wie (hei[\u00dfs]t|geht)|wer bist|dein name|who are you|your name|how are you\/.test(q)) return result(pick('Ich bin Orbit, der Website-Assistent von office.one. Ich helfe Ihnen mit Informationen zu unserer Betreuung, Fernwartung und einer ersten Anfrage. Worum geht es bei Ihnen?', 'I\u2019m Orbit, the office.one website assistant. I can help with information about our support, remote access tools and an initial enquiry. What do you have in mind?'));\n    if (\/bist du.*ki|echte ki|chatgpt|are you.*ai|real ai\/.test(q)) return result(pick('Aktuell helfe ich anhand hinterlegter Website-Informationen und einfacher R\u00fcckfragen. Eine freie KI-Unterhaltung ist noch nicht aktiviert. Bei individuellen Fragen ist unser Team f\u00fcr Sie da.', 'At the moment I use our website information and simple follow-up questions. Open-ended AI conversation has not been activated yet. Our team can help with individual questions.'), [contact()]);\n    if (\/^(danke|vielen dank|super|prima|thanks|thank you|great)[!,.\\s]*$\/.test(q)) return result(pick('Gern! Gibt es noch etwas, wobei ich Ihnen helfen kann?', 'You\u2019re welcome! Is there anything else I can help with?'));\n    if (\/^(tsch[u\u00fc]ss|auf wiedersehen|bye|goodbye)[!,.\\s]*$\/.test(q)) return result(pick('Auf Wiedersehen und einen sch\u00f6nen Tag!', 'Goodbye, and have a lovely day!'));\n    if (\/^was kannst|^wobei.*helfen|what can you|how can you help\/.test(q)) return result(pick('Ich kann Fernwartungsprogramme finden, unsere Betreuungsmodelle erkl\u00e4ren und mit Ihnen kl\u00e4ren, welche Unterst\u00fctzung zu Ihrer Anfrage passt. Was m\u00f6chten Sie als Erstes besprechen?', 'I can help find remote support downloads, explain our support plans and clarify what kind of help might suit your enquiry. What would you like to discuss first?'));\n    if (state.pending === 'internal' ? \/^(ja|nein|yes|no|haben wir|haben wir nicht|noch nicht)[!,.\\s]*$\/.test(q) : false) {\n      const yes = \/^(ja|yes|haben wir$)\/.test(q); state.pending = ''; state.topic = 'support';\n      return result(yes ? pick('Dann k\u00f6nnte \u201eGezielt unterst\u00fctzt\u201c passen: Unser Team erg\u00e4nzt Ihre interne IT, zum Beispiel bei einzelnen Themen, Projekten oder Support. Welche Aufgaben m\u00f6chten Sie abgeben?', 'Then our targeted support plan could be a good fit. We can complement your internal IT with specific topics, projects or day-to-day support. Which tasks would you like help with?') : pick('Dann ist \u201eRundum sorglos\u201c ein guter Ausgangspunkt. Dabei \u00fcbernimmt unser Team den Betrieb, die Wartung und die Weiterentwicklung Ihrer IT. Geht es vor allem um den laufenden Betrieb oder steht gerade eine Ver\u00e4nderung an?', 'Then our fully managed support plan is a useful starting point. Our team takes care of IT operations, maintenance and development. Are you mainly looking for ongoing support, or are you planning a change?'), [{ url: routes.models, label: pick('Die beiden Modelle im \u00dcberblick', 'Compare the two support plans') }]);\n    }\n    if (\/preis|kosten|kostet|teuer|price|cost|how much|budget\/.test(q)) {\n      state.topic = 'pricing'; state.pending = '';\n      return result(pick('Ein verbindlicher Preis h\u00e4ngt von Ihrer Umgebung und dem gew\u00fcnschten Umfang ab. Ich m\u00f6chte Ihnen deshalb keinen Pauschalpreis versprechen. '+(state.people ? 'Sie haben '+state.people+' Arbeitspl\u00e4tze genannt. ' : '')+'Suchen Sie eine vollst\u00e4ndige Betreuung oder Unterst\u00fctzung f\u00fcr einzelne Themen?', 'A firm price depends on your setup and the scope of support. I don\u2019t want to promise a flat rate that may not suit you. '+(state.people ? 'You mentioned '+state.people+' workstations. ' : '')+'Are you looking for fully managed IT or help with specific topics?'), [contact()]);\n    }\n    if (\/st[o\u00f6]rung|ausfall|ausgefallen|geht nicht|funktioniert nicht|notfall|verschl[u\u00fc]ssel|ransom|outage|not working|won.t work|emergency|hacked\/.test(q)) {\n      state.topic = 'incident'; state.pending = '';\n      return result(pick('Das sollte sich unser Support direkt ansehen. Sie erreichen das Team unter 030 5093014-0. Beschreiben Sie bitte kurz, was betroffen ist und seit wann. Ich selbst kann keine Systeme pr\u00fcfen oder ein Supportticket absenden.', 'Our support team should take a look at that directly. You can reach them on +49 30 5093014-0. Please describe what is affected and when the problem started. I can\u2019t inspect your systems or submit a support ticket myself.'), [contact()]);\n    }\n    if (\/download|teamviewer|gotoassist|go to assist|fernwart|remote access|remote support\/.test(q) || (state.topic === 'downloads' ? \/windows|mac|apple\/.test(q) : false)) {\n      state.topic = 'downloads';\n      if (!\/windows|mac|apple\/.test(q)) { state.pending = 'os'; return result(pick('F\u00fcr die Fernwartung bieten wir TeamViewer und GoToAssist an. Nutzen Sie Windows oder Mac OS?', 'We offer TeamViewer and GoToAssist for remote support. Are you using Windows or Mac OS?'), [{ url: routes.downloads, label: pick('Alle Fernwartungsdownloads', 'All remote support downloads') }]); }\n      const mac = \/mac|apple\/.test(q); state.pending = '';\n      return result(pick('F\u00fcr '+(mac ? 'Mac OS' : 'Windows')+' finden Sie die passenden TeamViewer- und GoToAssist-Schaltfl\u00e4chen auf unserer Downloads-Seite. W\u00e4hlen Sie das Programm, das unser Team mit Ihnen vereinbart hat.'+(mac ? ' GoToAssist startet auf dem Mac \u00fcber den Support-Zugang.' : ''), 'You\u2019ll find the TeamViewer and GoToAssist options for '+(mac ? 'Mac OS' : 'Windows')+' on our downloads page. Use the program agreed with our team.'+(mac ? ' On Mac, GoToAssist starts through the support access page.' : '')), [{ url: routes.downloads, label: pick('Downloads f\u00fcr '+(mac ? 'Mac OS' : 'Windows'), 'Downloads for '+(mac ? 'Mac OS' : 'Windows')) }]);\n    }\n    if (\/r[u\u00fc]ckruf|rueckruf|call back|callback|termin|appointment\/.test(q)) { state.topic = 'contact'; state.pending = ''; return result(pick('Gern. Hinterlassen Sie im Kontaktformular Ihre Telefonnummer und wann Sie gut erreichbar sind. Dort wird Ihre Anfrage an das Team gesendet; dieses Gespr\u00e4ch allein l\u00f6st noch keinen R\u00fcckruf aus.', 'Of course. Please leave your phone number and a suitable time in the contact form. That sends your request to our team; this conversation alone does not arrange a callback.'), [contact()]); }\n    if (\/angebot|anfrage|offer|quote|enquiry\/.test(q)) { state.topic = 'offer'; state.pending = 'offer'; return result(pick('Lassen Sie uns die Anfrage kurz eingrenzen: Wie viele Mitarbeitende oder Arbeitspl\u00e4tze sollen betreut werden, und worum geht es haupts\u00e4chlich?', 'Let\u2019s narrow down your enquiry: how many people or workstations need support, and what do you mainly need help with?')); }\n    if (state.pending === 'offer' ? q.length > 3 : false) { state.pending = ''; return result(pick('Danke, das hilft bei der Einordnung. '+(state.people ? 'F\u00fcr '+state.people+' Arbeitspl\u00e4tze ' : 'F\u00fcr Ihre Umgebung ')+'sollte unser Team den gew\u00fcnschten Umfang und die vorhandenen Systeme mit Ihnen besprechen. \u00dcbernehmen Sie die Angaben bitte ins Kontaktformular, damit Ihre Anfrage beim Team ankommt. Hier im Chat wurde noch nichts versendet.', 'Thank you, that helps. '+(state.people ? 'For '+state.people+' workstations, ' : 'For your setup, ')+'our team should discuss the scope and existing systems with you. Please copy these details into the contact form to send your enquiry to the team. Nothing has been submitted from this chat.'), [contact()]); }\n    const topics = [\n      [\/server|netzwerk|network|wlan|infrastruktur|infrastructure\/, 'infrastructure', pick('Wir betreuen Server, Netzwerke und Arbeitspl\u00e4tze und betreiben eigene Infrastruktur in einem Berliner Rechenzentrum. Geht es bei Ihnen um laufende Betreuung oder eine geplante Modernisierung?', 'We support servers, networks and workstations and operate our own infrastructure in a Berlin data centre. Are you looking for ongoing support or planning a modernisation?')],\n      [\/microsoft|\\b365\\b|exchange|outlook|teams|cloud\/, 'cloud', pick('Wir unterst\u00fctzen bei Microsoft 365 und Cloud-Diensten \u2013 von Einrichtung und Umzug bis zur laufenden Betreuung. Geht es um eine neue Umgebung, einen Wechsel oder Ihre bestehenden Systeme?', 'We help with Microsoft 365 and cloud services, from setup and migration to ongoing support. Is this a new setup, a move, or support for your existing systems?')],\n      [\/backup|datensicher|sicher|firewall|security|protect\/, 'security', pick('Wir betreuen Datensicherung, Server- und Netzwerksicherheit. Dabei schauen wir auf die vorhandene Umgebung und darauf, ob sich Daten im Ernstfall wiederherstellen lassen. M\u00f6chten Sie ein bestehendes Konzept pr\u00fcfen oder etwas neu aufbauen?', 'We help with backups and server and network security, including whether data can be restored when needed. Would you like us to review your existing setup or build something new?')],\n      [\/telefonanlage|telefonie|xelion|nfon|telephony|phone system\/, 'phone', pick('Telefonie geh\u00f6rt ebenfalls zu unseren Leistungen. Wichtig sind etwa die Anbindung an den Arbeitsplatz, Smartphone-Nutzung und das Arbeiten von unterwegs. M\u00f6chten Sie eine bestehende Anlage ersetzen oder erweitern?', 'Telephony is part of our services too, including desktop integration, smartphone apps and remote working. Are you looking to replace or extend an existing phone system?')],\n      [\/umzug|migration|projekt|digital|neuer standort|office move|project|new location\/, 'project', pick('Wir begleiten IT-Projekte und Standortver\u00e4nderungen von der Planung bis zur Umsetzung. Was soll sich ver\u00e4ndern, und gibt es schon einen gew\u00fcnschten Zeitraum?', 'We support IT projects and office moves from planning through implementation. What are you planning to change, and do you have a target timeframe?')]\n    ];\n    for (const [pattern, topic, text] of topics) if (pattern.test(q)) { state.topic = topic; state.pending = 'detail'; return result(text, [{ url: routes.services, label: pick('Passende Leistungen ansehen', 'Explore our services') }]); }\n    if (\/betreuung|support|modell|paket|arbeitsplatz|arbeitspl[a\u00e4]tze|service|managed|plan|package\/.test(q) || count || (state.topic === 'pricing' ? \/voll|komplett|einzeln|full|specific\/.test(q) : false)) { state.topic = 'support'; state.pending = 'internal'; return result(pick((state.people ? 'F\u00fcr '+state.people+' Arbeitspl\u00e4tze ' : 'F\u00fcr Unternehmen ')+'bieten wir vollst\u00e4ndige Betreuung oder gezielte Unterst\u00fctzung an. Gibt es bei Ihnen bereits eine interne IT-Ansprechperson?', (state.people ? 'For '+state.people+' workstations, ' : 'For businesses, ')+'we offer fully managed IT or targeted support. Do you already have someone handling IT internally?')); }\n    if (\/kontakt|adresse|wo seid|berlin|email|e-mail|telephone|address|where are|contact\/.test(q)) return result(pick('Sie finden uns in der Naumannstr. 64, 10829 Berlin. Telefon: 030 5093014-0. E-Mail: info@planetary-systems.de.', 'You can find us at Naumannstr. 64, 10829 Berlin. Phone: +49 30 5093014-0. Email: info@planetary-systems.de.'), [contact()]);\n    if (\/team|menschen|mit wem|people|who works\/.test(q)) return result(pick('Hinter office.one steht das Team der Planetary Systems IT GmbH. Auf unserer Teamseite lernen Sie die Ansprechpersonen und ihre Erfahrungen kennen.', 'office.one is backed by the team at Planetary Systems IT GmbH. Meet the people and read about their experience on our team page.'), [{ url: routes.team, label: pick('Das Team kennenlernen', 'Meet the team') }]);\n    if (state.pending === 'detail') { state.pending = ''; return result(pick('Verstanden. Diese Einzelheiten sollte unser Team mit Ihnen durchgehen. Ich kann Ihre Systeme nicht selbst bewerten, aber Sie k\u00f6nnen die Angaben direkt \u00fcber das Kontaktformular senden. M\u00f6chten Sie noch etwas zu unseren Leistungen wissen?', 'Understood. Our team should discuss those details with you. I can\u2019t assess your systems myself, but you can send the details through our contact form. Would you like to know anything else about our services?'), [contact()]); }\n    if (\/^(ja|yes)[!,.\\s]*$\/.test(q)) return result(pick('Gern \u2013 wor\u00fcber m\u00f6chten Sie mehr wissen: Fernwartung, laufende IT-Betreuung oder ein konkretes Projekt?', 'Of course. What would you like to know more about: remote support, ongoing IT support or a specific project?'));\n    if (\/^(nein|no)[!,.\\s]*$\/.test(q)) return result(pick('Alles klar. Wenn sp\u00e4ter noch eine Frage auftaucht, bin ich hier.', 'No problem. I\u2019m here if you have another question later.'));\n    return result(pick('Dabei bin ich noch unsicher und m\u00f6chte Ihnen nichts Falsches sagen. Geht es um eine technische St\u00f6rung, eine neue IT-Betreuung oder etwas anderes? F\u00fcr individuelle Fragen k\u00f6nnen Sie auch direkt unser Team ansprechen.', 'I\u2019m not sure about that and don\u2019t want to give you incorrect information. Is this about a technical issue, new IT support or something else? Our team can also help with individual questions.'), [contact()]);\n  }\n  return { reply, state };\n}\n\nconst language = 'de';\nconst routes = {\"services\":\"https:\/\/develop.office.one\/?page_id=38\",\"models\":\"https:\/\/develop.office.one\/?page_id=2\",\"team\":\"https:\/\/develop.office.one\/?page_id=37\",\"contact\":\"https:\/\/develop.office.one\/?page_id=270\",\"downloads\":\"https:\/\/develop.office.one\/?page_id=341\"};\nconst log = root.querySelector('.oo-chat-messages');\nconst input = root.querySelector('input');\nconst send = root.querySelector('button[type=\"submit\"]');\nconst orbit = createOrbit(language, routes);\nconst history = [];\nlet busy = false, intakeStage='customer', customerType='', urgency='';\nfunction intakeReply(message){\nconst q=message.toLowerCase(),en=language==='en';\nconst options=en?['New customer','Existing customer']:['Neukunde','Bestandskunde'];\nconst priorities=en?['Urgent \u2013 business has stopped','Soon \u2013 work is affected','Not urgent']:['Dringend \u2013 Betrieb steht','Zeitnah \u2013 Arbeit eingeschr\u00e4nkt','Nicht dringend'];\nif(intakeStage==='done')return null;\nif(intakeStage==='customer'){\nif(\/bestandskund|existing|already.*customer|bereits.*kund|schon.*kund\/.test(q)){\ncustomerType='existing';intakeStage='urgency';\nreturn {text:uiText('Wie dringend ist Ihr Anliegen?','How urgent is your request?'),choices:priorities};\n}\nif(\/neukund|new customer|neu hier|noch kein|noch nicht.*kund|interessent\/.test(q)){\ncustomerType='new';intakeStage='done';\nreturn {text:uiText('Sch\u00f6n, dass Sie da sind! Wie kann ich Ihnen helfen? Geht es um IT-Betreuung oder ein bestimmtes Projekt?','Welcome! How can I help you? Are you looking for IT support or help with a particular project?')};\n}\nreturn {text:uiText('Sind Sie Neukunde oder Bestandskunde?','Are you a new or an existing customer?'),choices:options};\n}\nif(\/nicht dringend|keine eile|hat zeit|not urgent|no rush\/.test(q))urgency='normal';\nelse if(\/zeitnah|eingeschr[a\u00e4]nkt|soon|affected\/.test(q))urgency='soon';\nelse if(\/dringend|urgent|betrieb steht|stillstand|notfall|ausfall|emergency|stopped\/.test(q))urgency='urgent';\nif(!urgency)return {text:uiText('Ist Ihr Betrieb ausgefallen, ist die Arbeit eingeschr\u00e4nkt oder hat Ihr Anliegen etwas Zeit?','Has your business stopped, is work affected, or is your request not urgent?'),choices:priorities};\nintakeStage='done';\nif(urgency==='urgent')return {text:uiText('Bei einem dringenden Ausfall rufen Sie unser Team bitte direkt unter 030 5093014-0 an. Was ist betroffen und seit wann? \u00dcber diesen Chat wird noch kein Supportticket erstellt.','For an urgent outage, please call our team directly on +49 30 5093014-0. What is affected, and when did the problem start? This chat does not create a support ticket.'),links:[{url:routes.contact,label:uiText('Zum Kontaktformular','Open the contact form')}]};\nreturn {text:urgency==='soon'?uiText('Verstanden. Was ist bei Ihrer Arbeit eingeschr\u00e4nkt und seit wann?','Understood. What is affecting your work, and when did it start?'):uiText('Alles klar. Worum geht es bei Ihrem Anliegen?','Of course. What can I help you with?')};\n}\nconst uiText = (de, en) => language === 'en' ? en : de;\nfunction appendMessage(text, kind, links = [], choices = []) {\n  const p = document.createElement('p');\n  p.className = kind === 'user' ? 'oo-chat-question' : 'oo-chat-answer';\n  p.textContent = text;\n  for (const link of links) {\n    try {\n      const url = new URL(link.url, location.origin);\n      if (url.origin !== location.origin || !\/^https?:$\/.test(url.protocol)) continue;\n      const a = document.createElement('a'); a.href = url.href; a.textContent = link.label;\n      p.append(document.createElement('br'), a);\n    } catch (_) {}\n  }\n  log.append(p);\n  if(choices.length){\n    const group=document.createElement('div');group.className='oo-chat-intake-choices';\n    choices.forEach(label=>{const button=document.createElement('button');button.type='button';button.dataset.ooIntake=label;button.textContent=label;group.append(button);});\n    log.append(group);\n  }\n  while (log.children.length > 60) log.firstElementChild.remove();\n  log.scrollTop = log.scrollHeight;\n  return p;\n}\nasync function answer(question) {\n  const q = question.trim().slice(0, 1000);\n  if (!q || busy) return;\n  log.querySelectorAll('.oo-chat-intake-choices').forEach(group=>group.remove());\n  appendMessage(q, 'user'); input.value = ''; busy = true; send.disabled = true;\n  history.push({ role: 'user', content: q });\n  let response, pending, timer;\n  try {\n    const config = window.ooOrbit;\n    const intakeResponse=intakeReply(q);\n    if(intakeResponse)response=intakeResponse;\n    else\n    if (config ? (config.enabled === true ? config.endpoint : false) : false) {\n      const endpoint = new URL(config.endpoint, location.origin);\n      if (endpoint.origin !== location.origin) throw new Error('A same-origin endpoint is required.');\n      pending = appendMessage(uiText('Orbit antwortet \u2026', 'Orbit is replying \u2026'), 'assistant');\n      log.setAttribute('aria-busy', 'true');\n      const controller = new AbortController();\n      timer = setTimeout(() => controller.abort(), 25000);\n      const headers = { 'Content-Type': 'application\/json' };\n      if (config.nonce) headers['X-WP-Nonce'] = config.nonce;\n      const res = await fetch(endpoint.href, { method: 'POST', credentials: 'same-origin', headers,\n        body: JSON.stringify({ message: q, history: history.slice(-20), language }), signal: controller.signal });\n      if (!res.ok) throw new Error('Chat endpoint unavailable');\n      const data = await res.json();\n      if (typeof data.reply !== 'string' || !data.reply.trim()) throw new Error('Empty reply');\n      response = { text: data.reply.slice(0, 8000), links: Array.isArray(data.links) ? data.links.slice(0, 4) : [] };\n    } else response = orbit.reply(q);\n  } catch (_) {\n    response = { text: uiText('Die KI-Verbindung ist gerade nicht verf\u00fcgbar. Bitte versuchen Sie es sp\u00e4ter erneut oder sprechen Sie direkt unser Team an.', 'The AI connection is currently unavailable. Please try again later or contact our team directly.'), links: [{ url: routes.contact, label: uiText('Zum Kontaktformular', 'Open the contact form') }] };\n  } finally {\n    clearTimeout(timer); if (pending) pending.remove(); log.removeAttribute('aria-busy');\n    busy = false; send.disabled = false;\n  }\n  appendMessage(response.text, 'assistant', response.links, response.choices);\n  history.push({ role: 'assistant', content: response.text });\n  if (history.length > 20) history.splice(0, history.length - 20);\n}\n\nlog.addEventListener('click',event=>{const button=event.target.closest('button[data-oo-intake]');if(button)answer(button.dataset.ooIntake);});\nfunction closeChat(restoreFocus=true){root.querySelector('details').open=false;if(restoreFocus)root.querySelector('summary').focus({preventScroll:true})}document.addEventListener('pointerdown',e=>{if(root.querySelector('details').open ? !root.contains(e.target) : false)closeChat(false)});root.querySelector('.oo-chat-close').addEventListener('click',closeChat);root.addEventListener('keydown',e=>{if(e.key==='Escape'){e.preventDefault();closeChat()}});root.querySelector('form').addEventListener('submit',e=>{e.preventDefault();answer(input.value)});root.querySelectorAll('[data-oo-chat]').forEach(b=>b.addEventListener('click',()=>answer(b.dataset.ooChat)));})();\n<\/script><style id=\"oo-orbit-follow-style\">\nhtml:root body .oo-chat.oo-orbit-widget{font-family:Inter,Arial,sans-serif!important;opacity:1!important;mix-blend-mode:normal!important;isolation:isolate}\nhtml:root body .oo-chat.oo-orbit-widget summary.oo-orbit-launch{cursor:pointer!important;list-style:none!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;border:0!important;text-shadow:none!important}\nhtml:root body .oo-chat.oo-orbit-widget summary.oo-orbit-launch img.oo-orbit-mascot{position:static!important;inset:auto!important;display:block!important;object-fit:contain!important;object-position:center!important;max-width:none!important;min-width:0!important;margin:0!important;padding:0!important;opacity:1!important;filter:none!important;box-shadow:none!important;border:0!important;pointer-events:none!important;mix-blend-mode:normal!important}\n@media(min-width:782px){html:root body .oo-home .hero .oo-chat.oo-orbit-widget:not(.oo-orbit-docked) summary.oo-orbit-launch{overflow:visible!important}\nhtml:root body .oo-home .hero .oo-chat.oo-orbit-widget:not(.oo-orbit-docked) summary.oo-orbit-launch img.oo-orbit-mascot{width:140%!important;height:140%!important;transform:translate(4%,-10%)!important;flex-shrink:0!important}}\nhtml:root body .oo-chat.oo-orbit-widget.oo-orbit-docked{position:fixed!important;inset:auto 24px 82px auto!important;width:140px!important;height:112px!important;transform:none!important;z-index:2147483000!important;pointer-events:none!important}\nhtml:root body .oo-chat.oo-orbit-widget.oo-orbit-docked summary.oo-orbit-launch{position:relative!important;inset:auto!important;width:140px!important;height:112px!important;transform:none!important;transform-origin:center!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;pointer-events:auto!important;overflow:visible!important}\nhtml:root body .oo-chat.oo-orbit-widget.oo-orbit-docked summary.oo-orbit-launch img.oo-orbit-mascot{width:140px!important;height:112px!important;transform:none!important}\nhtml:root body .oo-chat.oo-orbit-widget.oo-orbit-docked .oo-chat-panel{position:absolute!important;inset:auto 0 126px auto!important;width:350px!important;max-width:calc(100vw - 32px)!important;max-height:calc(100dvh - 240px)!important;transform:none;pointer-events:auto!important;z-index:2!important;overflow:auto!important;box-shadow:0 12px 40px rgba(7,21,28,.2)!important}\nhtml:root body .oo-chat.oo-orbit-widget summary.oo-orbit-launch:focus-visible{outline:3px solid #24c5d8!important;outline-offset:4px!important}\n@media(max-width:781px){html:root body .oo-chat.oo-orbit-widget.oo-orbit-docked{right:12px!important;bottom:78px!important;width:108px!important;height:88px!important}\nhtml:root body .oo-chat.oo-orbit-widget.oo-orbit-docked summary.oo-orbit-launch{width:108px!important;height:88px!important}\nhtml:root body .oo-chat.oo-orbit-widget.oo-orbit-docked summary.oo-orbit-launch img.oo-orbit-mascot{width:108px!important;height:88px!important}\nhtml:root body .oo-chat.oo-orbit-widget.oo-orbit-docked .oo-chat-panel{bottom:100px!important;max-height:calc(100dvh - 200px)!important;max-width:calc(100vw - 24px)!important}\nhtml:root body #scroll-to-top{bottom:16px!important;right:16px!important;z-index:2147482900!important}}\n<\/style><script id=\"oo-orbit-follow-controller\">\n(()=>{const root=document.querySelector('.oo-chat');if(!root||root.dataset.ooFollowBound)return;root.dataset.ooFollowBound='1';root.classList.add('oo-orbit-widget');const hero=document.querySelector('.oo-home .hero'),shell=root.querySelector('details');let frame=0;\nfunction place(){frame=0;const mobile=innerWidth<782,docked=!hero||mobile||hero.getBoundingClientRect().bottom<Math.min(innerHeight*.55,440);if(root.classList.contains('oo-orbit-docked')!==docked){root.classList.toggle('oo-orbit-docked',docked);const parent=docked?document.body:hero;if(parent ? root.parentElement!==parent : false)parent.append(root)}else if(docked ? root.parentElement!==document.body : false)document.body.append(root)}\nfunction schedule(){if(!frame)frame=requestAnimationFrame(place)}window.addEventListener('scroll',schedule,{passive:true});window.addEventListener('resize',schedule,{passive:true});if(hero ? Boolean(window.ResizeObserver) : false)new ResizeObserver(schedule).observe(hero);place();})();\n<\/script>\n<style id=\"oo-shared-footer-border\">html:root body:is([class]) main#content .nv-content-wrap.entry-content footer.home-footer.oo-site-footer{border-top:0!important}@media(min-width:960px){html:root body:is(.page-id-3,.page-id-265,.page-id-270,.page-id-303,.page-id-307,.page-id-308) main#content .nv-content-wrap.entry-content footer.home-footer.oo-site-footer{width:calc(100% - 30px)!important;margin-left:15px!important;margin-right:15px!important}}<\/style>\n\n\n<footer class=\"home-footer oo-site-footer\"><div class=\"wrap\"><div class=\"footer-grid\">\n<div class=\"footer-branding\"><a href=\"https:\/\/develop.office.one\/\" aria-label=\"office.one \u2013 Startseite\"><img decoding=\"async\" class=\"footer-logo\" src=\"https:\/\/develop.office.one\/wp-content\/uploads\/2026\/10\/office-one-logo-final.png\" width=\"2169\" height=\"725\" alt=\"office.one by planetary systems\" loading=\"lazy\"><\/a><p class=\"copyright\">\u00a9 2026 Planetary Systems IT GmbH<\/p><\/div>\n<div class=\"footer-group\"><h3>Materialien<\/h3><div class=\"footer-links\" aria-label=\"Materialien\"><a href=\"https:\/\/develop.office.one\/?page_id=341\">Downloads<\/a><a href=\"https:\/\/develop.office.one\/?page_id=816\">Karriere<\/a><\/div><\/div>\n<div class=\"footer-group\"><h3>Rechtliches<\/h3><nav class=\"footer-links\" aria-label=\"Rechtliches\"><a href=\"https:\/\/develop.office.one\/?page_id=265\">Datenschutz<\/a><a href=\"https:\/\/develop.office.one\/?page_id=3\">Impressum<\/a><\/nav><\/div>\n<\/div><\/div><\/footer><\/div>\n","protected":false},"excerpt":{"rendered":"<p>DE\/EN Impressum. Angaben gem\u00e4\u00df \u00a7 5 TMG: Planetary Systems IT GmbH Postanschrift:Naumannstr. 6410829 Berlin Kontakt Telefon: +49 30 5093014-0E-Mail: info@planetary-systems.de Vertreten durch Dennis TschechFabian Umbach Eingetragen am Amtsgericht CharlottenburgHRB 211351 B Umsatzsteuer-Identifikationsnummer DE327072959 Hinweise zur Website Information gem\u00e4\u00df \u00a7 36 VSBG Gem\u00e4\u00df \u00a7 36 VSBG (Verbraucherstreitbeilegungsgesetz \u2013 Gesetz \u00fcber die alternative Streitbeilegung in Verbrauchersachen) erkl\u00e4rt&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"class_list":["post-3","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/develop.office.one\/index.php?rest_route=\/wp\/v2\/pages\/3","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/develop.office.one\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/develop.office.one\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/develop.office.one\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/develop.office.one\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3"}],"version-history":[{"count":22,"href":"https:\/\/develop.office.one\/index.php?rest_route=\/wp\/v2\/pages\/3\/revisions"}],"predecessor-version":[{"id":964,"href":"https:\/\/develop.office.one\/index.php?rest_route=\/wp\/v2\/pages\/3\/revisions\/964"}],"wp:attachment":[{"href":"https:\/\/develop.office.one\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}