{"id":22071,"date":"2026-11-14T10:58:49","date_gmt":"2026-11-14T09:58:49","guid":{"rendered":"https:\/\/www.codewerk.de\/referenz\/softsibaspn-integration-bode-tuersteuerung\/"},"modified":"2026-11-14T11:19:54","modified_gmt":"2026-11-14T10:19:54","slug":"softsibaspn-integration-bode-tuersteuerung","status":"publish","type":"ref_post_type","link":"https:\/\/www.codewerk.de\/en\/referenz\/softsibaspn-integration-bode-tuersteuerung\/","title":{"rendered":"SoftSibasPN-Integration auf einer BODE-T\u00fcrsteuerung"},"content":{"rendered":"<section class=\"cw-band cw-band--weiss cw-titelblock\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile\">Referenz &middot; Railway<\/p>\n<h1 class=\"cw-titel\">SoftSibasPN-Integration auf einer BODE-T\u00fcrsteuerung<\/h1>\n<p class=\"cw-lead\">SibasPN auf der eigenen Hardwareplattform: softwarebasiert, stabil und test- und zertifizierungsreif.<\/p>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-header\">\n  <img decoding=\"async\" class=\"cw-header__desktop\" src=\"\/wp-content\/uploads\/2026\/11\/bode_hero_4k2_desktop_3840x840.png\" width=\"3840\" height=\"840\" alt=\"BODE-Logo und SoftSibasPN-Stack, verbunden \u00fcber eine Schnittstelle: SibasPN-Integration auf der BODE-T\u00fcrsteuerung.\" data-no-lazy=\"1\"><br \/>\n  <img decoding=\"async\" class=\"cw-header__mobil\" src=\"\/wp-content\/uploads\/2026\/11\/bode_hero_4k_mobil_2400x1600.png\" width=\"2400\" height=\"1600\" alt=\"BODE-Logo und SoftSibasPN-Stack, verbunden \u00fcber eine Schnittstelle: SibasPN-Integration auf der BODE-T\u00fcrsteuerung.\" data-no-lazy=\"1\"><br \/>\n<\/section>\n<section class=\"cw-band cw-band--weiss\">\n<div class=\"cw-inner\">\n<h2>Die Anforderung<\/h2>\n<p class=\"cw-lead\">BODE &ndash; Die T\u00fcr GmbH entwickelt und liefert T\u00fcrsysteme f\u00fcr Schienenfahrzeuge, also Komponenten, die im Betrieb vor allem eines m\u00fcssen: zuverl\u00e4ssig funktionieren, sauber integrierbar sein und alle Nachweise f\u00fcr den Einsatz im Bahnkontext unterst\u00fctzen.<\/p>\n<p class=\"cw-callout\">Der Projektfokus war die Integration in ein SibasPN-Umfeld. Ziel war eine softwarebasierte, stabile und performante Integration auf einer BODE-Hardwareplattform, inklusive gemeinsamer Softwareentwicklung und Begleitung der anspruchsvollen Zertifizierungstests f\u00fcr SibasPN-Komponenten.<\/p>\n<p class=\"cw-fliess\">Gleichzeitig sollten moderne Entwicklungsstandards (Embedded Linux\/Yocto, CI\/CD, Testautomatisierung) sowie CRA-Compliance und Cyber-Security-Anforderungen f\u00fcr Bahnkomponentenhersteller praxisnah mitgedacht werden.<\/p>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--muster\">\n<div class=\"cw-inner\">\n<h2>Das Projekt auf einen Blick<\/h2>\n<div class=\"cw-blick\">\n<div class=\"cw-blick__spalte\">\n<p class=\"cw-blick__titel\">Anforderungen<\/p>\n<ul class=\"cw-punkte\">\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>SoftSibasPN-Stack-Integration auf BODE-Hardware<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>Gemeinsame Softwareentwicklung<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>Zertifizierungstests<\/p>\n<\/div>\n<\/li>\n<\/ul><\/div>\n<div class=\"cw-blick__spalte\">\n<p class=\"cw-blick__titel\">L\u00f6sung<\/p>\n<ul class=\"cw-punkte\">\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>Integration und Systemanalyse<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>CI\/CD und reproduzierbare Builds<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>Testdesign und Durchf\u00fchrung<\/p>\n<\/div>\n<\/li>\n<\/ul><\/div>\n<div class=\"cw-blick__spalte\">\n<p class=\"cw-blick__titel\">Codewerk-Faktor<\/p>\n<ul class=\"cw-punkte\">\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>Bahn- und TCMS-Know-how<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>Embedded Linux und Yocto<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p>Cyber Security und CRA-Compliance<\/p>\n<\/div>\n<\/li>\n<\/ul><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--weiss\">\n<div class=\"cw-inner\">\n<h2>Die L\u00f6sung<\/h2>\n<div class=\"cw-seite\">\n<div class=\"cw-seite__text\">\n<p class=\"cw-lead\">Gemeinsam mit BODE haben wir unser Produkt <a href=\"\/portfolio\/software-produkte-und-loesungen\/softsibas-pn-stack\/\">SoftSibasPN<\/a> auf der Zielhardware integriert und die Softwarebasis in enger Abstimmung weiterentwickelt.<\/p>\n<p class=\"cw-fliess\">Dabei entstand ein durchg\u00e4ngig betreuter Integrationspfad: von der Systemanalyse \u00fcber die Implementierung und Build-\/Release-Kette bis hin zu reproduzierbaren Testszenarien.<\/p>\n<\/p><\/div>\n<figure class=\"cw-seite__bild\">\n      <a href=\"https:\/\/www.bode-global.com\/produkte\/mtb-4\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/11\/MTB_4_min-1024x576.jpeg\" srcset=\"\/wp-content\/uploads\/2026\/11\/MTB_4_min-1024x576.jpeg 1024w, \/wp-content\/uploads\/2026\/11\/MTB_4_min.jpeg 1920w\" sizes=\"auto, (min-width: 1025px) 480px, 100vw\" width=\"1024\" height=\"576\" alt=\"T\u00fcrsteuerung MTB 4 von BODE mit angeschlossenen Kabelb\u00e4umen.\" loading=\"lazy\"><br \/>\n      <\/a><figcaption><a href=\"https:\/\/www.bode-global.com\/produkte\/mtb-4\" target=\"_blank\" rel=\"noopener\">T\u00fcrsteuerung MTB 4 bei BODE ansehen<\/a><span>Bild: BODE<\/span><\/figcaption><\/figure>\n<\/p><\/div>\n<p class=\"cw-callout\">Parallel dazu haben wir Integrations-, System- und Zertifizierungstests vorbereitet und begleitet, mit klaren Testnachweisen, strukturierter Fehleranalyse und kurzen Reaktionszeiten. So konnte BODE nicht nur die technische Integration absichern, sondern auch die Projektrisiken in sp\u00e4ten Phasen reduzieren und einen stabilen und wartbaren SibasPN-Softwarestand auf der eigenen Plattform etablieren.<\/p>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--soft\">\n<div class=\"cw-inner\">\n<h2>Der Codewerk-Faktor<\/h2>\n<p class=\"cw-lead\">Was den Unterschied gemacht hat, war die Kombination aus Bahn- und System-Know-how plus pragmatischer Software-Engineering-Power:<\/p>\n<ul class=\"cw-punkte\">\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p><strong>Spezialisiertes SibasPN- und TCMS-Verst\u00e4ndnis<\/strong> und Erfahrung in komplexen Integrationsprojekten<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p><strong>Embedded-Linux- und Yocto-Expertise<\/strong>, um Hardware und Software sauber zusammenzubringen<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p><strong>CI\/CD-Pipeline-Know-how<\/strong> f\u00fcr schnellere Iterationen, reproduzierbare Builds und robuste Releases<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p><strong>Praxiserprobte Testautomatisierung und Testinfrastruktur<\/strong>, um Qualit\u00e4t messbar zu machen, nicht nur &bdquo;gef\u00fchlt&ldquo;<\/p>\n<\/div>\n<\/li>\n<li><span class=\"cw-haken\" aria-hidden=\"true\"><\/span>\n<div>\n<p><strong>Cyber-Security-Unterst\u00fctzung f\u00fcr Komponentenhersteller<\/strong>, damit Security fr\u00fchzeitig in Architektur und Prozesse einflie\u00dft<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<p class=\"cw-callout\">Kurz: Codewerk war nicht &bdquo;nur Softwarekomponenten-Lieferant&ldquo;, sondern Mitentwickler, Sparringspartner und flexibler Umsetzer, um zusammen mit dem BODE-Team das T\u00fcrsystem f\u00fcr ein gro\u00dfes S-Bahn-Projekt in Deutschland test- und zertifizierungsreif zu machen.<\/p>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--navy\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile cw-vorzeile--akzent\">N\u00e4chster Schritt<\/p>\n<h2>Sie wollen SibasPN auf Ihrer eigenen Hardware?<\/h2>\n<p class=\"cw-lead\">Schildern Sie uns kurz Ihr Vorhaben: welche Komponente, welche Plattform, welcher Zeitrahmen. Wir melden uns mit einem Vorschlag, wie SoftSibasPN bei Ihnen eingebunden werden kann.<\/p>\n<div class=\"cw-aktionen\">\n      <span class=\"cod-form-button-wrapper\"><button data-cod-variante-promise=\"{&quot;title&quot;:&quot;Unverbindliches Erstgespr\u00e4ch&quot;,&quot;text&quot;:&quot;Wir sehen uns Ihre Plattform an und sagen Ihnen, wie SoftSibasPN dort integriert wird und was es kostet. Drei kurze Angaben gen\u00fcgen.&quot;}\" type=\"button\" class=\"cod-form-button cod-form-button--on-dark\" data-cod-form-popup=\"cod_smart_contact_steps\" data-cod-form-prefill='{&quot;topic&quot;:&quot;product&quot;}'><span class=\"cod-form-button__text\">Gespr\u00e4ch vereinbaren<\/span><span class=\"cod-form-button__icon\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 320 512\" width=\"0.75em\" height=\"0.75em\" focusable=\"false\"><path fill=\"currentColor\" d=\"M285.5 273L91.4 467c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9L188.7 256 34.9 101.5c-9.4-9.4-9.4-24.6 0-33.9L57.5 45c9.4-9.4 24.6-9.4 33.9 0l194.1 194c9.4 9.4 9.4 24.6 0 33.9z\"\/><\/svg><\/span><\/button><\/span><br \/>\n      <a class=\"cw-anker\" href=\"\/portfolio\/software-produkte-und-loesungen\/softsibas-pn-stack\/\">Mehr zu SoftSibasPN<\/a>\n    <\/div>\n<\/p><\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Referenz &middot; Railway SoftSibasPN-Integration auf einer BODE-T\u00fcrsteuerung SibasPN auf der eigenen Hardwareplattform: softwarebasiert, stabil und test- und zertifizierungsreif. Die Anforderung BODE &ndash; Die T\u00fcr GmbH entwickelt und liefert T\u00fcrsysteme f\u00fcr Schienenfahrzeuge, also Komponenten, die im Betrieb vor allem eines m\u00fcssen: zuverl\u00e4ssig funktionieren, sauber integrierbar sein und alle Nachweise f\u00fcr den Einsatz im Bahnkontext unterst\u00fctzen. Der [&hellip;]<\/p>\n","protected":false},"featured_media":0,"menu_order":0,"template":"page-freiform.php","format":"standard","meta":{"_acf_changed":false,"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"_cw_page_css":"\/* Referenzseite BODE SoftSibasPN, Freiform. Uebernommen von der Referenz Wassergewinnung Essen (21590), ergaenzt um .cw-blick.\n\n   Urspruenglicher Kopf der Essen-Seite:\n\n   Layoutvorbild ist die Referenzseite Michael Koch GmbH\n   (\/referenz\/umsetzung-des-digitalen-produktpasses-bei-der-michael-koch-gmbh\/),\n   am 16.09.2026 im Browser vermessen: heller Titelblock aus kleiner Vorzeile, grosser\n   magerer Ueberschrift und gruenem Strich; darunter ein durchlaufendes Headerbild;\n   danach helle Inhaltsbaender. Kein Navy-Hero.\n\n   Bausteine stammen aus dem Freiform-System der Seite SOFTSIBAS PN Stack (16632) und sind\n   auf die hier verwendeten Klassen gekuerzt (Hausregel \u201ekeine Regel ohne Klasse\").\n\n   Aufbau mobile-first, Breakpoints wie die Website: 768 und 1025. *\/\n\n\/* ---------- Baender ---------- *\/\n\n.cw-band {\n  padding-top: var(--cw-space-8);\n  padding-bottom: var(--cw-space-8);\n}\n\n.cw-band--navy {\n  background: var(--cw-color-navy);\n  color: var(--cw-color-white);\n}\n\n.cw-band--soft { background: var(--cw-color-soft); }\n.cw-band--weiss { background: var(--cw-color-white); }\n\n.cw-band--navy h2 { color: var(--cw-color-white); }\n\n.cw-band--soft h2,\n.cw-band--weiss h2,\n.cw-band--muster h2 { color: var(--cw-color-navy); }\n\n\/* ---------- Inhaltsbreite ---------- *\/\n\n.cw-inner {\n  width: 100%;\n  max-width: var(--cw-container-max);\n  margin: 0 auto;\n  padding-left: var(--cw-container-pad);\n  padding-right: var(--cw-container-pad);\n  box-sizing: border-box;\n}\n\n\/* ---------- Titelblock ----------\n\n   Wie bei Michael Koch: kleine Vorzeile, grosse magere Ueberschrift, gruener Strich,\n   darunter der Claim. Der Titel traegt den Kunden und die Anlage, damit er auch in\n   Suchergebnissen fuer sich steht; der Claim steht als Lead darunter. *\/\n\n.cw-titelblock { padding-bottom: var(--cw-space-7); }\n\n.cw-titel {\n  margin: 0;\n  font-size: var(--cw-fs-h1);\n  font-weight: var(--cw-font-weight-light);\n  line-height: var(--cw-lh-tight);\n  color: var(--cw-color-navy);\n  overflow-wrap: break-word;\n  max-width: 24ch;\n}\n\n\/* Derselbe kurze Strich wie unter den Abschnittsueberschriften. Als ::after, damit kein\n   zusaetzliches Markup noetig ist. *\/\n.cw-titel::after {\n  content: \"\";\n  display: block;\n  width: 64px;\n  height: 4px;\n  border-radius: var(--cw-radius-pill);\n  background: var(--cw-color-green);\n  margin: var(--cw-space-3) 0 0;\n}\n\n\/* ---------- Headerbild ----------\n\n   Durchlaufend ueber die volle Breite, ohne .cw-inner, wie das Vollbreiten-Widget der\n   Michael-Koch-Seite.\n\n   Zwei getrennte Dateien statt einer: Desktop ist 32:7, Mobil 3:2 mit eigener Komposition,\n   damit Gebaeude, Schutzkuppel und Sockelring auf schmalen Bildschirmen vollstaendig\n   sichtbar bleiben. Die Grenze liegt bei 768px und ist ueberschneidungsfrei gesetzt:\n   Mobil bis einschliesslich 767px, Desktop ab 768px. Die Michael-Koch-Seite zeigt bei\n   exakt 767px beide Widgets und laeuft dort waagerecht ueber; dieser Fehler wird hier\n   nicht uebernommen.\n\n   `width` statt `max-width`: Theme und Vorschau bringen ein img { max-width: 100% } mit\n   hoeherer Spezifitaet mit. Kein loading=\"lazy\" \u2014 das Bild steht im ersten Bildschirm. *\/\n\n.cw-header { display: block; }\n\n.cw-header__desktop,\n.cw-header__mobil {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n\n.cw-header__desktop { display: none; }\n\n@media (min-width: 768px) {\n  .cw-header__mobil { display: none; }\n  .cw-header__desktop { display: block; }\n}\n\n\/* ---------- Ueberschriften und Vorzeile ---------- *\/\n\n.cw-band h2 {\n  font-size: var(--cw-fs-h2);\n  font-weight: var(--cw-font-weight-light);\n  line-height: var(--cw-lh-tight);\n  margin: 0;\n  overflow-wrap: break-word;\n}\n\n.cw-band h2::after {\n  content: \"\";\n  display: block;\n  width: 64px;\n  height: 4px;\n  border-radius: var(--cw-radius-pill);\n  background: var(--cw-color-green);\n  margin: var(--cw-space-2) 0 var(--cw-space-5);\n}\n\n.cw-vorzeile {\n  margin: 0 0 var(--cw-space-2);\n  font-size: 13px;\n  font-weight: var(--cw-font-weight-medium);\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  color: var(--cw-color-inactive);\n}\n\n\/* Das Signature-Gruen traegt Text nur auf Navy. Auf hellen Flaechen bleibt es Flaeche. *\/\n.cw-vorzeile--akzent { color: var(--cw-color-green); }\n\n.cw-lead {\n  margin: var(--cw-space-4) 0 0;\n  font-size: clamp(18px, 1.1vw, 22px);\n  line-height: var(--cw-lh-loose);\n}\n\n.cw-band--navy .cw-lead { color: var(--cw-color-white); }\n\n.cw-band--soft .cw-lead,\n.cw-band--weiss .cw-lead,\n.cw-band--muster .cw-lead { color: var(--cw-color-copy); }\n\n.cw-titelblock .cw-lead { max-width: 60ch; }\n\n.cw-fliess {\n  margin: var(--cw-space-5) 0 0;\n  max-width: 68ch;\n  line-height: var(--cw-lh-loose);\n  color: var(--cw-color-copy);\n}\n\n\/* ---------- Callout ---------- *\/\n\n\/* Fasst die Kernaussage des Abschnitts in einem Satz zusammen. Gruen traegt hier keine\n   Schrift, sondern ist die Kante links \u2014 auf Hell darf es nur Flaeche sein. *\/\n.cw-callout {\n  margin-top: var(--cw-space-5);\n  border-left: 4px solid var(--cw-color-green);\n  border-radius: 0 var(--cw-radius-md) var(--cw-radius-md) 0;\n  background: var(--cw-color-soft);\n  padding: var(--cw-space-4) var(--cw-space-5);\n  font-size: var(--cw-fs-body-lg);\n  font-weight: var(--cw-font-weight-medium);\n  color: var(--cw-color-navy);\n}\n\n\/* Auf dem Soft-Band braucht der Callout eine andere Fuellung, sonst verschwindet er. *\/\n.cw-band--soft .cw-callout { background: var(--cw-color-white); }\n\n\/* ---------- Nummerierte Schritte ----------\n\n   Nachbau der nummerierten Loesungsliste der Michael-Koch-Seite: Zahl, fette Zwischen-\n   ueberschrift, Text. Bewusst nicht [cw_ablaufschritte] \u2014 dessen Darstellung ist nicht\n   dokumentiert, und die Seite soll ein einziges Formenvokabular haben.\n   Eigene Zaehlung ueber counter, weil list-style: none die Zahlen sonst entfernt. *\/\n\n.cw-stufen {\n  list-style: none;\n  counter-reset: cw-stufe;\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-6);\n  margin: var(--cw-space-6) 0 0;\n  padding: 0;\n}\n\n.cw-stufe {\n  counter-increment: cw-stufe;\n  position: relative;\n  padding-left: 52px;\n  border-top: 1px solid var(--cw-color-grey-light);\n  padding-top: var(--cw-space-4);\n}\n\n.cw-stufe::before {\n  content: counter(cw-stufe);\n  position: absolute;\n  left: 0;\n  top: var(--cw-space-4);\n  width: 36px;\n  height: 36px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  border-radius: var(--cw-radius-pill);\n  background: var(--cw-color-green);\n  color: var(--cw-color-navy);\n  font-weight: var(--cw-font-weight-bold);\n  line-height: 1;\n}\n\n.cw-stufe__titel {\n  margin: 0 0 var(--cw-space-1);\n  font-size: var(--cw-fs-h3);\n  font-weight: var(--cw-font-weight-bold);\n  line-height: var(--cw-lh-normal);\n  color: var(--cw-color-navy);\n}\n\n.cw-stufe p:last-child {\n  margin: 0;\n  line-height: var(--cw-lh-loose);\n  color: var(--cw-color-copy);\n}\n\n\/* ---------- Punkteliste ---------- *\/\n\n.cw-punkte {\n  list-style: none;\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-6);\n  margin: var(--cw-space-6) 0 0;\n  padding: 0;\n}\n\n.cw-punkte li {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--cw-space-3);\n}\n\n\/* Das Haekchen aus CSS gezeichnet, nicht als Inline-SVG: WordPress filtert svg-Elemente\n   aus dem Seiteninhalt. Zwei Kanten, um 45 Grad gedreht. Der Haken traegt keine\n   Information \u2014 die Liste sagt dasselbe in Worten, deshalb im Markup aria-hidden.\n   Auf hellem Grund ist Gruen die Flaeche und Navy die Zeichnung: #9EFC4F traegt auf\n   Weiss rund 1,4:1 und wuerde als Linie nichts zeichnen. Alle Baender dieser Seite mit\n   Haken sind hell. *\/\n.cw-haken {\n  flex: 0 0 auto;\n  position: relative;\n  width: 24px;\n  height: 24px;\n  margin-top: 2px;\n  border-radius: var(--cw-radius-pill);\n  background: var(--cw-color-green);\n}\n\n.cw-haken::before {\n  content: \"\";\n  position: absolute;\n  top: 7px;\n  left: 8px;\n  width: 6px;\n  height: 10px;\n  border-right: 2px solid var(--cw-color-navy);\n  border-bottom: 2px solid var(--cw-color-navy);\n  transform: rotate(45deg);\n}\n\n.cw-punkte p {\n  margin: 0;\n  line-height: var(--cw-lh-loose);\n  color: var(--cw-color-copy);\n}\n\n\/* ---------- Vorteilsleiste ----------\n\n   Die kurzen Nutzenaussagen als Kaesten, wie die fuenf Zeilen unter dem Codewerk-Vorteil\n   auf der Michael-Koch-Seite. Eigene Zeilenhoehe und Mindesthoehe, damit zwei- und\n   einzeilige Eintraege gleich hoch bleiben. *\/\n.cw-vorteile {\n  list-style: none;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  gap: var(--cw-space-2);\n  margin: var(--cw-space-7) 0 0;\n  padding: 0;\n}\n\n.cw-vorteile li {\n  display: flex;\n  align-items: center;\n  box-sizing: border-box;\n  min-height: 48px;\n  margin: 0;\n  background: var(--cw-color-white);\n  border: 1px solid var(--cw-color-grey-light);\n  border-radius: var(--cw-radius-md);\n  padding: var(--cw-space-2) var(--cw-space-4);\n  font-weight: var(--cw-font-weight-bold);\n  line-height: var(--cw-lh-normal);\n  color: var(--cw-color-navy);\n}\n\n\/* ---------- Kundenstimme ----------\n\n   Bewusst NICHT [cw_zitat]: der Shortcode setzt den Zitattext in Versalien auf eine\n   gruene Flaeche. Das traegt einen kurzen Einzeiler, nicht die vier Zeilen dieses\n   Zitats \u2014 am 15.09.2026 auf Staging angesehen und verworfen, der Text war so kaum\n   lesbar. Der Wortlaut ist wortgleich von Detlef Stein freigegeben und darf nicht\n   gekuerzt werden, also musste die Darstellung weichen, nicht der Text. *\/\n\n.cw-zitat__raster {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-5);\n  align-items: start;\n  margin-top: var(--cw-space-6);\n}\n\n\/* Das WGE-Logo ist von Detlef Stein am 10.05.2024 und erneut am 29.01.2025 fuer die\n   Website freigegeben. Die Datei ist 900x392 und aus dem SVG der WGE-Website gerastert.\n   Gedeckelt auf 200px, damit das fremde Logo neben dem Zitat steht und es nicht\n   dominiert. width statt max-width, siehe Headerbild. *\/\n.cw-kundenlogo {\n  display: block;\n  width: 100%;\n  max-width: 200px;\n  height: auto;\n  margin: 0;\n}\n\n.cw-zitat {\n  margin: 0;\n  border-left: 4px solid var(--cw-color-green);\n  padding: 0 0 0 var(--cw-space-5);\n  max-width: 62ch;\n  font-size: clamp(18px, 1.2vw, 21px);\n  font-weight: var(--cw-font-weight-light);\n  line-height: var(--cw-lh-loose);\n  color: var(--cw-color-navy);\n}\n\n\/* Auf der Hoehe des Zitattextes, nicht der gruenen Kante: 4px Kante plus deren\n   Innenabstand. *\/\n.cw-zitat__quelle {\n  margin: var(--cw-space-4) 0 0 calc(var(--cw-space-5) + 4px);\n  font-size: var(--cw-fs-body);\n  line-height: var(--cw-lh-normal);\n  color: var(--cw-color-copy);\n}\n\n\/* ---------- Aktionen ---------- *\/\n\n.cw-aktionen {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  gap: var(--cw-space-5);\n  margin-top: var(--cw-space-7);\n}\n\n.cw-aktionen > * {\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n\/* Primaerer Button: Gruen als Flaeche, Navy als Schrift \u2014 das erlaubte Verhaeltnis,\n   denn #9EFC4F traegt selbst keinen Text. Eckig wie die uebrigen Haupt-Buttons. *\/\n.cw-knopf {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  min-height: 48px;\n  padding: var(--cw-space-2) var(--cw-space-6);\n  border: 2px solid var(--cw-color-green);\n  border-radius: 0;\n  background: var(--cw-color-green);\n  color: var(--cw-color-navy);\n  font-weight: var(--cw-font-weight-bold);\n  letter-spacing: .06em;\n  text-transform: uppercase;\n  text-decoration: none;\n  transition: background var(--cw-transition-default), border-color var(--cw-transition-default);\n}\n\n.cw-knopf:hover,\n.cw-knopf:focus-visible {\n  background: var(--cw-color-green-deep);\n  border-color: var(--cw-color-green-deep);\n}\n\n\/* Sekundaerer Button. Gleiche Innenabstaende und Mindesthoehe wie .cw-knopf, damit die\n   Kanten auch dann gleich bleiben, wenn beide auf Mobil untereinander stapeln und\n   align-items: stretch nicht mehr greift. 48px sind zugleich Trefferflaeche. *\/\n.cw-anker {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  min-height: 48px;\n  padding: var(--cw-space-2) var(--cw-space-5);\n  border: 2px solid rgba(255, 255, 255, .35);\n  border-radius: 0;\n  background: transparent;\n  color: var(--cw-color-white);\n  font-weight: var(--cw-font-weight-bold);\n  text-decoration: none;\n  transition: border-color var(--cw-transition-default), color var(--cw-transition-default);\n}\n\n.cw-anker:hover,\n.cw-anker:focus-visible {\n  border-color: var(--cw-color-green);\n  color: var(--cw-color-green);\n}\n\n\/* ---------- Musterband ---------- *\/\n\n\/* Die Hausgrafik als Vektor: eine spitze Klammer aus zwei Schenkeln gleicher Staerke mit\n   runden Enden, die im selben Punkt zusammenlaufen. Wo sich die Schenkel ueberlappen,\n   wird die Flaeche heller; diese Ueberlappung ist der Tropfen.\n   Pfad wurzelrelativ, damit die Regel auf Staging und Live gleich greift. *\/\n.cw-band--muster {\n  background-color: #f0f2f8;\n  background-image: url(\"\/wp-content\/uploads\/2026\/08\/codewerk-klammer-hell-viertel.svg\");\n  background-position: center right;\n  background-repeat: no-repeat;\n  background-size: cover;\n}\n\n\/* ---------- Tablet: ab 768 ---------- *\/\n\n@media (min-width: 768px) {\n  \/* Eintraege mit Beschreibung lesen sich in zwei breiten Spalten besser als in einer\n     schmalen. Trifft beide Punktelisten zugleich, die nutzen dieselbe Klasse. *\/\n  .cw-punkte { grid-template-columns: repeat(2, 1fr); }\n\n  .cw-stufen { grid-template-columns: repeat(2, 1fr); }\n\n  \/* Logo neben das Zitat. Erst ab hier: darunter stuende das Logo in einer eigenen\n     schmalen Spalte und das Zitat haette zu wenig Breite. *\/\n  .cw-zitat__raster {\n    grid-template-columns: 200px minmax(0, 1fr);\n    gap: var(--cw-space-7);\n  }\n}\n\n\/* ---------- Desktop: ab 1025 ---------- *\/\n\n@media (min-width: 1025px) {\n  .cw-band {\n    padding-top: calc(var(--cw-space-8) * 1.5);\n    padding-bottom: calc(var(--cw-space-8) * 1.5);\n  }\n\n  .cw-titelblock { padding-bottom: var(--cw-space-8); }\n\n  \/* Der Tropfen wird oben und unten an seiner Rundung abgeschnitten. Erst ab Desktop,\n     denn nur dort ist das Band flach genug; auf einem hohen schmalen Band wuerde der\n     Tropfen breiter als das Band selbst. Werte aus der Geometrie der Vorlage. *\/\n  .cw-band--muster {\n    background-size: auto 268.32%;\n    background-position: right 49%;\n  }\n}\n\n\n\/* ---------- Auf einen Blick (nur BODE) ----------\n   Drei Spalten aus dem Bildvorschlag im freigegebenen Referenztext (Anforderungen, Loesung,\n   Codewerk-Faktor). Mobil untereinander, ab 768 nebeneinander. *\/\n.cw-blick {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-6);\n  margin-top: var(--cw-space-6);\n}\n.cw-blick__spalte {\n  background: var(--cw-color-white);\n  border: 1px solid var(--cw-color-grey-light);\n  border-radius: var(--cw-radius-md);\n  padding: var(--cw-space-5);\n}\n.cw-blick__titel {\n  margin: 0;\n  font-weight: var(--cw-font-weight-bold);\n  color: var(--cw-color-navy);\n  text-transform: uppercase;\n  letter-spacing: .04em;\n}\n.cw-blick .cw-punkte { grid-template-columns: 1fr; gap: var(--cw-space-3); margin-top: var(--cw-space-4); }\n@media (min-width: 768px) {\n  .cw-band .cw-blick .cw-punkte { grid-template-columns: 1fr; }\n  .cw-blick { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n}\n\n\n\/* ---------- Bild seitlich (nur BODE) ----------\n   Foto der MTB 4 von der BODE-Produktseite neben dem Anforderungstext, verlinkt auf\n   bode-global.com. Mobil unter dem Text, ab 1025 rechts daneben. *\/\n.cw-seite {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-6);\n  align-items: start;\n}\n.cw-seite__bild { margin: 0; }\n.cw-seite__bild img {\n  display: block;\n  width: 100%;\n  height: auto;\n  border-radius: var(--cw-radius-md);\n  border: 1px solid var(--cw-color-grey-light);\n}\n.cw-seite__bild figcaption {\n  display: flex;\n  justify-content: space-between;\n  gap: var(--cw-space-3);\n  margin-top: var(--cw-space-2);\n  font-size: 14px;\n  color: var(--cw-color-copy);\n}\n.cw-seite__bild figcaption a {\n  color: var(--cw-color-navy);\n  font-weight: var(--cw-font-weight-bold);\n  text-decoration: underline;\n}\n@media (min-width: 1025px) {\n  .cw-seite { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--cw-space-8); }\n  .cw-seite__bild { margin-top: 6px; }\n}","footnotes":"","_cw_change_note":""},"refrenz-kategorie":[],"class_list":["post-22071","ref_post_type","type-ref_post_type","status-publish","format-standard","hentry"],"acf":[],"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/ref_post_type\/22071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/ref_post_type"}],"about":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/types\/ref_post_type"}],"version-history":[{"count":4,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/ref_post_type\/22071\/revisions"}],"predecessor-version":[{"id":22092,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/ref_post_type\/22071\/revisions\/22092"}],"wp:attachment":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/media?parent=22071"}],"wp:term":[{"taxonomy":"refrenz-kategorie","embeddable":true,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/refrenz-kategorie?post=22071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}