{"id":17562,"date":"2025-02-24T16:35:28","date_gmt":"2025-02-24T15:35:28","guid":{"rendered":"https:\/\/www.codewerk.de\/portfolio\/software-products-and-solutions\/softsibas-pn-validation-test\/"},"modified":"2026-08-29T13:44:51","modified_gmt":"2026-08-29T11:44:51","slug":"softsibas-pn-validation-test","status":"publish","type":"page","link":"https:\/\/www.codewerk.de\/en\/portfolio\/software-products-and-solutions\/softsibas-pn-validation-test\/","title":{"rendered":"SOFTSIBAS PN validation test"},"content":{"rendered":"<section class=\"cw-band cw-band--navy cw-hero\">\n<div class=\"cw-inner cw-hero__raster\">\n<div class=\"cw-hero__text\">\n<p class=\"cw-vorzeile cw-vorzeile--akzent\">SIBAS PN validation test<\/p>\n<h1 class=\"cw-hero__titel\">Achieve system conformity for Siemens SIBAS PN &ndash; and demonstrate it reliably<\/h1>\n<p class=\"cw-hero__lead\">With our SIBAS PN validation tests, we support system and vehicle<br \/>\n        manufacturers with the seamless integration of subsystems.<\/p>\n<div class=\"cw-aktionen\">\n        <a class=\"cw-knopf\" href=\"#kontakt\" data-cw-track=\"sibaspn-anker-kontakt\">Request a test<\/a><br \/>\n        <a class=\"cw-anker\" href=\"#pruefumfang\" data-cw-track=\"sibaspn-anker-pruefumfang\">How we test your subsystem<\/a>\n      <\/div>\n<ul class=\"cw-chips\">\n<li class=\"cw-chip\">SIBAS PN<\/li>\n<li class=\"cw-chip\">PROFINET<\/li>\n<li class=\"cw-chip\">PROFIsafe<\/li>\n<li class=\"cw-chip\">ISO 9001<\/li>\n<li class=\"cw-chip\">ISO 27001<\/li>\n<\/ul><\/div>\n<p>    <img decoding=\"async\" class=\"cw-hero__bild cw-hero__bild--karte\" src=\"\/wp-content\/uploads\/2025\/02\/softsibas-pn-validierungstest-big.png\" width=\"627\" height=\"1019\" alt=\"\" data-no-lazy=\"1\">\n  <\/div>\n<\/section>\n<section class=\"cw-band cw-band--weiss\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile\">The situation<\/p>\n<h2>Why interoperability decides whether commissioning succeeds<\/h2>\n<p class=\"cw-lead\">For the commissioning and smooth operation of a rail vehicle, all requirements<br \/>\n      for the interoperability of the subsystems with the higher-level control system must be met.<\/p>\n<p class=\"cw-callout\">A conclusive and reliable quality assurance system is needed to provide<br \/>\n      verifiable proof of conformity. Our SIBAS PN validation test can guarantee this at an early<br \/>\n      stage of the project. Early instead of expensive: what surfaces in the test costs another<br \/>\n      run &ndash; what surfaces only at commissioning costs rework, travel time and possibly the date.<\/p>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--muster\" id=\"pruefumfang\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile\">Test scope<\/p>\n<h2>How we test your subsystem<\/h2>\n<div class=\"cw-karten cw-karten--4\">\n<article class=\"cw-karte cw-karte--icon\">\n        <img decoding=\"async\" class=\"cw-karte__icon\" src=\"\/wp-content\/uploads\/2026\/08\/sibaspn-icon-comdec-tests.svg\" width=\"250\" height=\"205\" alt=\"\" loading=\"lazy\"><\/p>\n<h3 class=\"cw-karte__titel\">Support for the Comdec Profinet\/Profisafe tests<\/h3>\n<\/article>\n<article class=\"cw-karte cw-karte--icon\">\n        <img decoding=\"async\" class=\"cw-karte__icon\" src=\"\/wp-content\/uploads\/2026\/08\/sibaspn-icon-profinet-kommunikation.svg\" width=\"250\" height=\"205\" alt=\"\" loading=\"lazy\"><\/p>\n<h3 class=\"cw-karte__titel\">Profinet interface communication tests<\/h3>\n<\/article>\n<article class=\"cw-karte cw-karte--icon\">\n        <img decoding=\"async\" class=\"cw-karte__icon\" src=\"\/wp-content\/uploads\/2026\/08\/sibaspn-icon-dienste-konformitaet.svg\" width=\"250\" height=\"205\" alt=\"\" loading=\"lazy\"><\/p>\n<h3 class=\"cw-karte__titel\">Test of the implemented SIBAS PN services for system conformity<\/h3>\n<\/article>\n<article class=\"cw-karte cw-karte--icon\">\n        <img decoding=\"async\" class=\"cw-karte__icon\" src=\"\/wp-content\/uploads\/2026\/08\/sibaspn-icon-spm-projektierung.svg\" width=\"250\" height=\"205\" alt=\"\" loading=\"lazy\"><\/p>\n<h3 class=\"cw-karte__titel\">Checking the SPM sub-project planning<\/h3>\n<\/article><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--weiss\" id=\"ablauf\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile\">Procedure<\/p>\n<h2>Proof in three steps<\/h2>\n<p>    <img decoding=\"async\" class=\"cw-schaubild\" src=\"&#x2f;&#x77;&#112;-&#x63;&#x6f;&#110;te&#x6e;&#x74;&#47;u&#x70;&#x6c;&#111;&#97;d&#x73;&#x2f;&#50;0&#x32;&#x35;&#47;&#48;2&#x2f;&#x47;&#114;u&#x70;&#x70;&#101;&#45;2&#x31;&#x38;&#50;&#64;&#x32;&#x78;&#46;&#112;n&#x67;\" width=\"1974\" height=\"554\" alt=\"Three-stage procedure: provision of the test specifications and the DEVKIT with an initial workshop, then a 30 % SIBAS PN validation test run, then a 100 % SIBAS PN validation test run.\" loading=\"lazy\" data-no-lazy=\"1\"><\/p>\n<ol class=\"cw-schritte cw-schritte--3\">\n<li class=\"cw-schritt\">\n        <span class=\"cw-schritt__nr\" aria-hidden=\"true\"><\/span><\/p>\n<h3 class=\"cw-schritt__titel\">Test specifications and DEVKIT<\/h3>\n<p>Provision of the test specifications and the SIBAS PN DEVKIT &ndash; with an initial workshop.<\/p>\n<\/li>\n<li class=\"cw-schritt\">\n        <span class=\"cw-schritt__nr\" aria-hidden=\"true\"><\/span><\/p>\n<h3 class=\"cw-schritt__titel\">30 % test run<\/h3>\n<p>First run of the SIBAS PN validation test &ndash; early enough to correct deviations without putting the schedule at risk.<\/p>\n<\/li>\n<li class=\"cw-schritt\">\n        <span class=\"cw-schritt__nr\" aria-hidden=\"true\"><\/span><\/p>\n<h3 class=\"cw-schritt__titel\">100 % test run<\/h3>\n<p>Full SIBAS PN validation test as the concluding proof of conformity.<\/p>\n<\/li>\n<\/ol><\/div>\n<\/section>\n<section class=\"cw-band cw-band--navy\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile cw-vorzeile--akzent\">We will minimize your project risks<\/p>\n<h2>The Codewerk factor<\/h2>\n<p class=\"cw-lead\">Tailor-made integration and validation solutions. Would you like to use<br \/>\n      SOFTSIBAS PN on your subsystem or are you planning for the next generation of your<br \/>\n      subsystem? We make sure that<\/p>\n<ul class=\"cw-punkte\">\n<li>\n        <span class=\"cw-haken\" aria-hidden=\"true\"><\/span><\/p>\n<div>\n<p>the <strong>Profinet\/TCMS connection<\/strong> has been implemented correctly.<\/p>\n<\/p><\/div>\n<\/li>\n<li>\n        <span class=\"cw-haken\" aria-hidden=\"true\"><\/span><\/p>\n<div>\n<p>the <strong>SIBAS PN web services<\/strong> are implemented to comply with system requirements.<\/p>\n<\/p><\/div>\n<\/li>\n<li>\n        <span class=\"cw-haken\" aria-hidden=\"true\"><\/span><\/p>\n<div>\n<p>the <strong>subsystem functions robustly and reliably<\/strong>.<\/p>\n<\/p><\/div>\n<\/li>\n<\/ul><\/div>\n<\/section>\n<section class=\"cw-band cw-band--soft\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile\">Audience<\/p>\n<h2>Who the test is for<\/h2>\n<p class=\"cw-lead\">For system and vehicle manufacturers who integrate subsystems into a<br \/>\n      higher-level control system and need solid proof of conformity before commissioning<br \/>\n      &ndash; whether using SOFTSIBAS PN on an existing subsystem or planning the next generation.<\/p>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--weiss\">\n<div class=\"cw-inner\">\n<h2>A dependable partner<\/h2>\n<ul class=\"cw-trustbar\">\n<li>ISO 9001 certified<\/li>\n<li>ISO 27001 certified<\/li>\n<li>Active in the PROFINET community<\/li>\n<li>Member of the PROFINET user organisation<\/li>\n<li>Partner in the Siemens Xcelerator ecosystem<\/li>\n<\/ul><\/div>\n<\/section>\n<section class=\"cw-band cw-band--soft\">\n<div class=\"cw-inner\">\n<p class=\"cw-vorzeile\">More products and services<\/p>\n<h2>Related offerings<\/h2>\n<div class=\"cw-produkte\">\n<article class=\"cw-produkt\">\n        <img decoding=\"async\" src=\"&#47;&#119;&#x70;-&#99;&#x6f;&#x6e;t&#101;&#x6e;&#x74;\/&#117;&#x70;&#x6c;o&#97;&#x64;&#x73;\/&#50;&#x30;&#x32;5&#47;&#x30;2&#47;&#50;&#x35;0&#50;&#x30;&#x35;_&#67;&#x6f;&#x64;e&#119;&#x65;&#x72;k&#95;&#x50;&#x72;o&#100;&#x75;&#x6b;&#116;&#100;&#x61;r&#115;&#x74;&#x65;l&#108;&#x75;&#x6e;g&#95;&#x53;&#x6f;f&#116;&#x73;&#x69;b&#97;&#x73;&#x5f;T&#82;&#x44;P&#95;&#86;&#x61;l&#105;&#x64;&#x69;e&#114;&#x75;&#x6e;g&#115;&#x74;&#x65;s&#116;&#x40;&#x32;x&#46;&#x70;&#x6e;&#103;\" width=\"370\" height=\"666\" alt=\"\" loading=\"lazy\" data-no-lazy=\"1\"><\/p>\n<h3 class=\"cw-produkt__titel\">TRDP validation test<\/h3>\n<p>Proven conformity with the TRDP standard through various hardware and interface tests.<\/p>\n<p>        <a class=\"cw-produkt__link\" href=\"https:\/\/www.codewerk.de\/en\/portfolio\/software-products-and-solutions\/trdp-validation-test\/\" data-cw-track=\"sibaspn-produkt-trdp-validierungstest\">Learn more<\/a><br \/>\n      <\/article>\n<article class=\"cw-produkt\">\n        <img decoding=\"async\" src=\"&#x2f;&#119;p&#x2d;&#99;o&#x6e;&#116;e&#x6e;&#116;\/&#x75;&#112;l&#x6f;&#97;d&#x73;&#47;2&#x30;&#50;5&#x2f;&#48;2&#x2f;&#50;5&#x30;&#49;3&#x31;&#95;C&#x6f;&#100;e&#x77;&#101;r&#x6b;&#95;P&#x72;&#111;d&#x75;&#107;t&#x64;&#97;r&#x73;&#116;e&#x6c;&#108;u&#x6e;&#103;_&#x53;&#111;f&#x74;&#x73;i&#x62;&#x61;s&#x5f;&#x54;&#82;&#x44;&#x50;&#64;&#x32;&#x78;&#46;&#x70;&#x6e;&#103;\" width=\"319\" height=\"629\" alt=\"\" loading=\"lazy\" data-no-lazy=\"1\"><\/p>\n<h3 class=\"cw-produkt__titel\">SOFTSIBAS TRDP Stack<\/h3>\n<p>With our software-based solution SOFTSIBAS TRDP Stack, you don&rsquo;t need additional hardware.<\/p>\n<p>        <a class=\"cw-produkt__link\" href=\"https:\/\/www.codewerk.de\/en\/portfolio\/software-products-and-solutions\/softsibas-trdp-stack\/\" data-cw-track=\"sibaspn-produkt-trdp-stack\">View product<\/a><br \/>\n      <\/article>\n<article class=\"cw-produkt\">\n        <img decoding=\"async\" src=\"\/wp-content\/&#117;&#112;&#108;&#111;&#97;&#100;&#115;&#47;&#50;&#48;&#50;&#53;&#47;&#48;&#50;&#x2f;&#x32;&#x35;&#x30;&#x31;&#x33;&#x31;&#x5f;&#x43;&#x6f;&#x64;&#x65;&#x77;&#x65;&#x72;&#x6b;&#x5f;&#x50;&#x72;&#x6f;&#x64;&#x75;&#x6b;tdarstellung&#95;&#83;&#111;&#102;&#116;&#115;&#105;&#98;&#97;&#115;&#95;&#80;&#78;&#64;&#50;&#x78;&#x2e;&#x70;&#x6e;&#x67;\" width=\"318\" height=\"629\" alt=\"\" loading=\"lazy\" data-no-lazy=\"1\"><\/p>\n<h3 class=\"cw-produkt__titel\">SOFTSIBAS PN Stack<\/h3>\n<p>With our software-based solution SOFTSIBAS PN Stack, you don&rsquo;t need additional hardware.<\/p>\n<p>        <a class=\"cw-produkt__link\" href=\"https:\/\/www.codewerk.de\/en\/portfolio\/software-products-and-solutions\/softsibas-pn-stack\/\" data-cw-track=\"sibaspn-produkt-pn-stack\">View product<\/a><br \/>\n      <\/article>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"cw-band cw-band--navy cw-abschluss\" id=\"kontakt\">\n<div class=\"cw-inner cw-kontakt__raster\">\n<div>\n<p class=\"cw-vorzeile cw-vorzeile--akzent\">Contact<\/p>\n<h2>Ready for proof of conformity?<\/h2>\n<p class=\"cw-lead\">Outline the project briefly &ndash; subsystem, planned commissioning date.<br \/>\n        We will come back with the next steps.<\/p>\n<\/p><\/div>\n<div class=\"cw-formular\">\n      \t\t<form\n\t\t\tclass=\"cod-form cod-form--cod_smart_contact_en cod-form--inline\"\n\t\t\tdata-cod-form-id=\"cod_smart_contact_en\"\n\t\t\tdata-cod-form-mode=\"inline\"\n\t\t\tdata-cod-form-language=\"en\"\n\t\t\tdata-cod-initial-step=\"1\"\n\t\t\tdata-cod-topic-copy=\"{&quot;cyber&quot;:{&quot;step_title&quot;:&quot;Sign up now and get a free initial consultation&quot;,&quot;submit_label&quot;:&quot;Request free consultation&quot;,&quot;field_hints&quot;:{&quot;phone&quot;:&quot;For any questions about your enquiry&quot;},&quot;after_submit&quot;:{&quot;text&quot;:&quot;We will review your enquiry as soon as possible and call you back within one working day.&quot;},&quot;trust&quot;:[&quot;Over 21 security projects successfully delivered&quot;,&quot;Certified partner of Siemens AG&quot;]},&quot;product&quot;:{&quot;step_title&quot;:&quot;Sign up now and get a free initial consultation&quot;,&quot;submit_label&quot;:&quot;Request free consultation&quot;,&quot;field_hints&quot;:{&quot;phone&quot;:&quot;For any questions about your enquiry&quot;},&quot;after_submit&quot;:{&quot;text&quot;:&quot;We will review your enquiry as soon as possible and call you back within one working day.&quot;},&quot;trust&quot;:[&quot;ISO 9001 certified&quot;,&quot;ISO 27001 certified&quot;,&quot;Active in the PROFINET community&quot;]}}\"\t\t\tmethod=\"post\"\n\t\t\tnovalidate\n\t\t>\n\t\t\t\t\t\t<div class=\"cod-form__honeypot\" aria-hidden=\"true\" style=\"position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;\">\n\t\t\t\t<label>\n\t\t\t\t\tBitte freilassen\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tname=\"cod_forms_hp\"\n\t\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\/>\n\t\t\t\t<\/label>\n\t\t\t<\/div>\n\n\t\t\t<input type=\"hidden\" name=\"cod_forms_render_at\" value=\"1788078404770\" \/>\n\n\t\t\t\n\t\t\t<div class=\"cod-form__steps\">\n\t\t\t\t\t\t\t\t\t\t\t<section\n\t\t\tclass=\"cod-form__step\"\n\t\t\tdata-step-index=\"0\"\n\t\t\tdata-step-id=\"topic\"\n\t\t\tdata-step-last=\"0\"\n\t\t\thidden\t\t>\n\t\t\t\t\t\t\t<h3 class=\"cod-form__step-title\">What&#039;s your topic?<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cod-form__field cod-form__field--topic_tiles\" data-field-name=\"topic\">\n\t\t\t\n\t\t\t<div id=\"cod-form-field-topic-group\" class=\"cod-tiles\" role=\"radiogroup\" aria-label=\"Topic\" data-cod-tiles-name=\"topic\"><button type=\"button\" class=\"cod-tile cod-tile--selected\" data-value=\"product\" aria-pressed=\"true\"><span class=\"cod-tile__label\">Product inquiry<\/span><span class=\"cod-tile__icon\" aria-hidden=\"true\"><i class=\"iconcod- icon-cod-gear\" aria-hidden=\"true\"><\/i><\/span><\/button><button type=\"button\" class=\"cod-tile\" data-value=\"cyber\" aria-pressed=\"false\"><span class=\"cod-tile__label\">Cyber Security<\/span><span class=\"cod-tile__icon\" aria-hidden=\"true\"><i class=\"iconcod- icon-cod-approved-signal_blue\" aria-hidden=\"true\"><\/i><\/span><\/button><button type=\"button\" class=\"cod-tile\" data-value=\"ai\" aria-pressed=\"false\"><span class=\"cod-tile__label\">AI \/ Artificial Intelligence<\/span><span class=\"cod-tile__icon\" aria-hidden=\"true\"><i class=\"iconcod- icon-cod-code\" aria-hidden=\"true\"><\/i><\/span><\/button><button type=\"button\" class=\"cod-tile\" data-value=\"embedded\" aria-pressed=\"false\"><span class=\"cod-tile__label\">Embedded<\/span><span class=\"cod-tile__icon\" aria-hidden=\"true\"><i class=\"iconcod- icon-cod-gear\" aria-hidden=\"true\"><\/i><\/span><\/button><button type=\"button\" class=\"cod-tile\" data-value=\"general\" aria-pressed=\"false\"><span class=\"cod-tile__label\">General inquiry<\/span><span class=\"cod-tile__icon\" aria-hidden=\"true\"><i class=\"iconcod- icon-cod-Contact\" aria-hidden=\"true\"><\/i><\/span><\/button><input type=\"hidden\" name=\"topic\" value=\"product\" data-cod-tiles-required=\"1\" \/><\/div>\n\t\t\t\t\t\t<div class=\"cod-form__field-error\" data-field-error=\"topic\" hidden><\/div>\n\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<section\n\t\t\tclass=\"cod-form__step cod-form__step--active\"\n\t\t\tdata-step-index=\"1\"\n\t\t\tdata-step-id=\"contact\"\n\t\t\tdata-step-last=\"1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t\t<h3 class=\"cod-form__step-title\">Sign up now and get a free initial consultation<\/h3>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"cod-form__field cod-form__field--text cod-form__field--floating\" data-field-name=\"name\">\n\t\t\t\n\t\t\t<input type=\"text\" id=\"cod-form-field-name\" name=\"name\" class=\"cod-form__input\" required maxlength=\"120\" placeholder=\" \" \/><label class=\"cod-form__floating-label\" for=\"cod-form-field-name\"><span class=\"cod-form__floating-label-text\">Name<\/span><span class=\"cod-form__required\" aria-hidden=\"true\">*<\/span><\/label>\n\t\t\t\t\t\t<div class=\"cod-form__field-error\" data-field-error=\"name\" hidden><\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"cod-form__field cod-form__field--email cod-form__field--floating\" data-field-name=\"email\">\n\t\t\t\n\t\t\t<input type=\"email\" id=\"cod-form-field-email\" name=\"email\" class=\"cod-form__input\" required placeholder=\" \" \/><label class=\"cod-form__floating-label\" for=\"cod-form-field-email\"><span class=\"cod-form__floating-label-text\">Email<\/span><span class=\"cod-form__required\" aria-hidden=\"true\">*<\/span><\/label>\n\t\t\t\t\t\t<div class=\"cod-form__field-error\" data-field-error=\"email\" hidden><\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"cod-form__field cod-form__field--tel cod-form__field--floating\" data-field-name=\"phone\">\n\t\t\t\n\t\t\t<input type=\"tel\" id=\"cod-form-field-phone\" name=\"phone\" class=\"cod-form__input\" required maxlength=\"30\" placeholder=\" \" \/><label class=\"cod-form__floating-label\" for=\"cod-form-field-phone\"><span class=\"cod-form__floating-label-text\">Phone<\/span><span class=\"cod-form__required\" aria-hidden=\"true\">*<\/span><\/label>\n\t\t\t\t\t\t\t<p class=\"cod-form__hint\" data-cod-hint=\"phone\">For any questions about your enquiry<\/p>\n\t\t\t\t\t\t<div class=\"cod-form__field-error\" data-field-error=\"phone\" hidden><\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"cod-form__field cod-form__field--textarea cod-form__field--floating\" data-field-name=\"message\">\n\t\t\t\n\t\t\t<textarea id=\"cod-form-field-message\" name=\"message\" class=\"cod-form__textarea\" rows=\"5\" maxlength=\"4000\" placeholder=\" \"><\/textarea><label class=\"cod-form__floating-label\" for=\"cod-form-field-message\"><span class=\"cod-form__floating-label-text\">Your message (optional)<\/span><\/label>\n\t\t\t\t\t\t<div class=\"cod-form__field-error\" data-field-error=\"message\" hidden><\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"cod-form__field cod-form__field--consent\" data-field-name=\"consent\">\n\t\t\t\n\t\t\t\t\t\t\t\t<label class=\"cod-form__checkbox-wrap\" for=\"cod-form-field-consent\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tid=\"cod-form-field-consent\"\n\t\t\t\t\t\t\tname=\"consent\"\n\t\t\t\t\t\t\tvalue=\"1\"\n\t\t\t\t\t\t\tclass=\"cod-form__checkbox\"\n\t\t\t\t\t\t\trequired\t\t\t\t\t\t\/>\n\t\t\t\t\t\t<span class=\"cod-form__checkbox-label\">\n\t\t\t\t\t\t\tI have read the <a href=\"https:\/\/www.codewerk.de\/en\/privacy\/\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy<\/a> and agree.\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"cod-form__required\" aria-hidden=\"true\">*<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/label>\n\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"cod-form__field-error\" data-field-error=\"consent\" hidden><\/div>\n\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"cod-form__turnstile cod-form__turnstile--invisible\" aria-hidden=\"true\">\n\t\t\t\t\t<div class=\"cf-turnstile\" data-sitekey=\"0x4AAAAAADK8yB8f8d1INhV-\" data-size=\"invisible\"><\/div>\n\t\t\t\t\t<input type=\"hidden\" name=\"cf_turnstile\" value=\"\" \/>\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"cod-form__feedback\" role=\"status\" aria-live=\"polite\"><\/div>\n\n\t\t\t<div class=\"cod-form__actions\">\n\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"cod-form__submit\" data-cod-action=\"submit\">\n\t\t\t\t\tRequest free consultation\t\t\t\t<\/button>\n\t\t\t<\/div>\n\n\t\t\t\t\t\t<p class=\"cod-form__after-submit\" data-cod-after-submit>\n\t\t\t\tWe will review your enquiry as soon as possible and call you back within one working day.\t\t\t<\/p>\n\t\t\t\t\t\t<ul class=\"cod-form__trust\" data-cod-trust>\n\t\t\t\t\t\t\t\t\t<li class=\"cod-form__trust-item\">\n\t\t\t\t\t\t<span class=\"cod-form__trust-check\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" width=\"1em\" height=\"1em\" focusable=\"false\"><path fill=\"currentColor\" d=\"M173.9 439.4l-166.4-166.4c-10-10-10-26.2 0-36.2l36.2-36.2c10-10 26.2-10 36.2 0L192 312.7 412.1 92.6c10-10 26.2-10 36.2 0l36.2 36.2c10 10 10 26.2 0 36.2l-274.4 274.4c-10 10-26.2 10-36.2 0z\"\/><\/svg>\n\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cod-form__trust-text\">ISO 9001 certified<\/span>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<li class=\"cod-form__trust-item\">\n\t\t\t\t\t\t<span class=\"cod-form__trust-check\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" width=\"1em\" height=\"1em\" focusable=\"false\"><path fill=\"currentColor\" d=\"M173.9 439.4l-166.4-166.4c-10-10-10-26.2 0-36.2l36.2-36.2c10-10 26.2-10 36.2 0L192 312.7 412.1 92.6c10-10 26.2-10 36.2 0l36.2 36.2c10 10 10 26.2 0 36.2l-274.4 274.4c-10 10-26.2 10-36.2 0z\"\/><\/svg>\n\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cod-form__trust-text\">ISO 27001 certified<\/span>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t<li class=\"cod-form__trust-item\">\n\t\t\t\t\t\t<span class=\"cod-form__trust-check\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" width=\"1em\" height=\"1em\" focusable=\"false\"><path fill=\"currentColor\" d=\"M173.9 439.4l-166.4-166.4c-10-10-10-26.2 0-36.2l36.2-36.2c10-10 26.2-10 36.2 0L192 312.7 412.1 92.6c10-10 26.2-10 36.2 0l36.2 36.2c10 10 10 26.2 0 36.2l-274.4 274.4c-10 10-26.2 10-36.2 0z\"\/><\/svg>\n\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"cod-form__trust-text\">Active in the PROFINET community<\/span>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t<\/form>\n\t\t\n    <\/div>\n<\/p><\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>SIBAS PN validation test Achieve system conformity for Siemens SIBAS PN &ndash; and demonstrate it reliably With our SIBAS PN validation tests, we support system and vehicle manufacturers with the seamless integration of subsystems. Request a test How we test your subsystem SIBAS PN PROFINET PROFIsafe ISO 9001 ISO 27001 The situation Why interoperability decides [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":17549,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"page-freiform.php","meta":{"_acf_changed":false,"_seopress_titles_title":"SIBAS PN validation test %%sep%% %%sitetitle%%","_seopress_titles_desc":"Demonstrate conformity reliably with our SIBAS PN validation test. Including test specifications and DEVKIT workshop. Request online.","_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":"\/* Landingpage TRDP-Konformitaetstest\n   Spec: docs\/specs\/2026-08-20-trdp-konformitaetstest-design.md\n   Aufbau mobile-first. Die Breakpoints entsprechen genau den vier Grenzen der Website:\n   min-width 768px ist die Komplementaergrenze zu max-width 767px, min-width 1025px zu 1024px.\n   Widescreen ab 2500px. *\/\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,\n.cw-band--navy h3 { color: var(--cw-color-white); }\n\n.cw-band--soft h2,\n.cw-band--weiss h2,\n.cw-band--soft h3,\n.cw-band--weiss h3 { color: var(--cw-color-navy); }\n\n\/* Ziele der Hero-Anker. Ohne diesen Abstand verschwindet die Ueberschrift\n   beim Sprung unter dem Kopfbereich der Website. *\/\n#ablauf,\n#kontakt { scroll-margin-top: var(--cw-space-8); }\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\n\/* ---------- Ueberschriften und Vorzeile ---------- *\/\n\n\/* Gewicht mager, keine Versalien \u2014 an \/dpp-plattform\/ gemessen: h1 52px\/300, h2 35px\/300,\n   h3 21px\/700, alle ohne text-transform. Das Mockup aus dem Ticket setzt 800 und Versalien;\n   marke-und-design.md nennt DPP als maessgeblichen Stand, deshalb bleibt es hier mager. *\/\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}\n\n\/* Der kurze Strich unter jeder Abschnittsueberschrift, aus dem Mockup uebernommen \u2014 dort als\n   Verlauf Blau nach Gruen. Das Blau #62A4DA ist die alte Elementor-Trennerfarbe, deshalb hier\n   nur Gruen. Als ::after, damit kein zusaetzliches Markup je Abschnitt n\u00f6tig ist. *\/\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  \/* Skaliert selbst mit, statt in zwei Media Queries nachgezogen zu werden. *\/\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.cw-band--soft .cw-lead,\n.cw-band--weiss .cw-lead { color: var(--cw-color-copy); }\n\n\/* ---------- Hero ---------- *\/\n\n\/* Zweispaltig erst ab Desktop. Bei 768 bliebe fuer den Text neben einem 340px-Bild nur rund\n   340px uebrig \u2014 zu schmal fuer die Ueberschrift. Bis dahin einspaltig, Bild unter den Chips. *\/\n.cw-hero__raster {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-6);\n  align-items: center;\n}\n\n\/* Wurzelrelative Adresse, damit dieselbe Seite auf Staging und Live dasselbe Bild laedt.\n   Die Datei liegt in der Mediathek beider Umgebungen. Kein loading=\"lazy\" \u2014 das Bild steht\n   im ersten Bildschirm, und lazy verlangsamt dort messbar. *\/\n\/* Die Groesse steht auf `width`, nicht auf `max-width`. Grund: Theme und Vorschau bringen ein\n   `img { max-width: 100% }` mit hoeherer Spezifitaet mit, das eine `max-width` hier ueberstimmt\n   \u2014 auf Mobil war das Bild dadurch 350 statt 220 px breit. `max-width: 100%` bleibt zusaetzlich\n   stehen, damit es in einem schmaleren Container trotzdem schrumpft. *\/\n.cw-hero__bild {\n  width: 220px;\n  max-width: 100%;\n  height: auto;\n  justify-self: center;\n}\n\n.cw-hero__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-white);\n}\n\n.cw-hero__lead {\n  margin: var(--cw-space-5) 0 0;\n  max-width: 60ch;\n  font-size: clamp(18px, 1.4vw, 22px);\n  line-height: var(--cw-lh-loose);\n  color: var(--cw-color-white);\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\/* Beide Buttons schrumpfen auf Inhaltsbreite und stehen damit in einer Zeile. Die Regel bleibt\n   auch ohne Theme-Markup sinnvoll: sie verhindert, dass ein Button in der Zeile schrumpft. *\/\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\/* Am 20.08.2026 stand hier `.cw-aktion`, ein eigener Wrapper um den Formular-Button des Themes.\n   Der ist weg: im Hero liegt jetzt kein Shortcode mehr, sondern ein Sprunglink zum Formular am\n   Seitenende. Beide Kinder der Aktionszeile sind damit eigene Anker, und der blockbreite\n   Theme-Wrapper ist kein Thema mehr. *\/\n\n\/* Sekundaerer Button, Vorbild ist `.btn-ghost` aus dem Mockup \u2014 dort mit 30px Radius.\n   Hier eckig, wie am 20.08.2026 gewuenscht.\n\n   Innenabstand und Mindesthoehe sind absichtlich dieselben wie bei `.cw-knopf`. Auf Mobil\n   stapeln die beiden Buttons untereinander, und dann greift `align-items: stretch` nicht mehr\n   \u2014 nur gleiche Werte halten die Kanten auch dort gleich. 48px sind zugleich Trefferflaeche. *\/\n.cw-anker {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  \/* Ohne border-box zaehlt min-height nur den Inhalt, und Innenabstand plus Rahmen kommen\n     obendrauf \u2014 am 20.08.2026 war der Button dadurch 76 statt 54 px hoch. Die Umgebung setzt\n     border-box nicht garantiert, also steht es hier. Gilt fuer jede Regel mit fester\n     Kastenmasse in dieser Datei. *\/\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\/* Primaerer Button. Er ersetzt seit dem 20.08.2026 den Formular-Button im Hero: er oeffnet kein\n   zweites Formular als Popup, sondern springt zum eingebetteten Formular am Seitenende.\n   Gruen als Flaeche, Navy als Schrift \u2014 das erlaubte Verhaeltnis, denn #9EFC4F traegt selbst\n   keinen Text. Versalien und eckige Kanten wie beim Theme-Button, damit die Seite nicht zwei\n   verschiedene Primaerbuttons zeigt. *\/\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\/* ---------- Trust-Chips im Hero ---------- *\/\n\n\/* Aus dem Mockup: die Nachweise stehen ueber der Falzlinie, nicht erst im Trust-Band weiter\n   unten. Bewusst frei gebaut und nicht [cw_pills] \u2014 wie der Shortcode auf Navy aussieht, ist\n   nicht dokumentiert, und genau deshalb liegt er sonst nur auf hellen Baendern. *\/\n.cw-chips {\n  list-style: none;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: var(--cw-space-1);\n  margin: var(--cw-space-6) 0 0;\n  padding: 0;\n}\n\n\/* `white-space: nowrap` ist der Punkt: \u201eIEC 61375-2-8\" darf an seinen Bindestrichen nicht\n   umbrechen. Sonst wird dieses eine Chip zweizeilig und damit hoeher als ISO 9001 und die\n   uebrigen \u2014 genau die schiefe Umrandung, die am 20.08.2026 aufgefallen ist. *\/\n.cw-chip {\n  display: inline-flex;\n  align-items: center;\n  white-space: nowrap;\n  border: 1px solid rgba(255, 255, 255, .16);\n  border-radius: var(--cw-radius-pill);\n  padding: var(--cw-space-1) var(--cw-space-3);\n  font-size: 13px;\n  font-weight: var(--cw-font-weight-medium);\n  letter-spacing: .04em;\n  line-height: var(--cw-lh-normal);\n  color: var(--cw-color-grey-light);\n}\n\n\/* ---------- Callout ---------- *\/\n\n\/* Fasst den Problemaufriss in einem Satz zusammen. Gruen traegt hier keine Schrift, sondern\n   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\/* ---------- Ablaufschritte, frei gebaut ---------- *\/\n\n\/* Ersetzt [cw_ablaufschritte]. Entscheidung vom 20.08.2026: die Nummerierung aus dem Mockup\n   ist gewollt, das Theme-Element zeigt stattdessen Haekchen. Preis ist ein Nachbau, der bei\n   einer kuenftigen Stilanpassung des Elements nicht mitzieht. *\/\n.cw-schritte {\n  list-style: none;\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-5);\n  margin: var(--cw-space-6) 0 0;\n  padding: 0;\n  counter-reset: cw-schritt;\n}\n\n.cw-schritt {\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\n\/* Das Mockup setzt die Ziffer als gruene Schrift auf Weiss. Das verbietet das Regelwerk \u2014\n   #9EFC4F traegt auf Hell keinen Text. Also Gruen als Flaeche, Ziffer in Navy: dasselbe\n   Verhaeltnis wie beim Primaerbutton. *\/\n.cw-schritt__nr {\n  counter-increment: cw-schritt;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 44px;\n  height: 44px;\n  margin-bottom: var(--cw-space-3);\n  border-radius: var(--cw-radius-pill);\n  background: var(--cw-color-green);\n  color: var(--cw-color-navy);\n  font-size: var(--cw-fs-h3);\n  font-weight: var(--cw-font-weight-bold);\n  line-height: 1;\n}\n\n.cw-schritt__nr::before { content: counter(cw-schritt); }\n\n.cw-schritt__titel {\n  margin: 0 0 var(--cw-space-2);\n  font-size: var(--cw-fs-h3);\n  font-weight: var(--cw-font-weight-bold);\n  line-height: var(--cw-lh-normal);\n}\n\n.cw-schritt p {\n  margin: 0;\n  color: var(--cw-color-copy);\n  line-height: var(--cw-lh-loose);\n}\n\n\/* ---------- Karten ---------- *\/\n\n.cw-karten {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-5);\n  margin-top: var(--cw-space-6);\n}\n\n\/* Die Haarlinie ist nicht Zierde. Auf dem weissen Band steht eine weisse Karte sonst\n   unsichtbar auf weissem Grund. DPP gibt jeder Karte diesen Rand: auf Weiss 1px #E7E7E7,\n   auf Soft 1px #E4E9EE \u2014 beide liegen auf --cw-color-grey-light (#E6EAED). Am 20.08.2026\n   an \/dpp-plattform\/ nachgemessen; die Kartentabelle der Stilanalyse hatte ihn ausgelassen. *\/\n.cw-karte {\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\n\/* Karten auf Navy: Flaeche statt Schatten, wie auf der DPP-Seite \u2014 dort mit\n   rgba(255,255,255,.04) und rgba(255,255,255,.1) als Rand, genau so uebernommen. *\/\n.cw-band--navy .cw-karte {\n  background: rgba(255, 255, 255, .04);\n  border-color: rgba(255, 255, 255, .1);\n}\n\n.cw-karte__titel {\n  margin: 0 0 var(--cw-space-2);\n  font-size: var(--cw-fs-h3);\n  font-weight: var(--cw-font-weight-bold);\n  line-height: var(--cw-lh-normal);\n}\n\n.cw-karte p {\n  margin: 0;\n  color: var(--cw-color-copy);\n  line-height: var(--cw-lh-loose);\n}\n\n\/* ---------- Punkteliste (Warum Testen mit Codewerk) ---------- *\/\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\/* Haekchen statt gruenem Balken, wie im Mockup (`.why .c`). Am 20.08.2026 gewuenscht. *\/\n.cw-punkte li {\n  display: flex;\n  align-items: flex-start;\n  gap: var(--cw-space-3);\n}\n\n\/* Das Mockup zeichnet das Haekchen als Inline-SVG. Das geht hier nicht: WordPress filtert\n   svg-Elemente aus dem Seiteninhalt (auch aus diesem Kommentar, wenn man sie in spitze\n   Klammern setzt). Also aus CSS gezeichnet \u2014 zwei Kanten, um 45 Grad gedreht.\n   Die Flaeche ist das Gruen mit Alpha, wie auf DPP, wo gruene Flaechen stark transparent\n   liegen. Der Haken traegt keine Information: die Liste sagt dasselbe in Worten, deshalb im\n   Markup `aria-hidden`. *\/\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: rgba(158, 252, 79, .15);\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-green);\n  border-bottom: 2px solid var(--cw-color-green);\n  transform: rotate(45deg);\n}\n\n.cw-punkte p {\n  margin: 0;\n  line-height: var(--cw-lh-loose);\n}\n\n\/* ---------- Trustbar ---------- *\/\n\n\/* Aus dem Mockup (`.trustbar`) statt [cw_pills]: ganze Aussagen in Kaesten, keine Schlagworte.\n   Am 20.08.2026 so gewuenscht. Damit liegt auf dieser Seite nur noch ein Theme-Element,\n   das Akkordeon \u2014 wer spaeter vereinheitlicht, faengt hier an. *\/\n.cw-trustbar {\n  list-style: none;\n  display: flex;\n  flex-wrap: wrap;\n  \/* Ausdruecklich, nicht auf den Vorgabewert verlassen: eine Theme-Regel auf der Liste kann\n     ihn ueberschreiben, und dann werden die Kaesten unterschiedlich hoch. *\/\n  align-items: stretch;\n  gap: var(--cw-space-2);\n  margin: var(--cw-space-6) 0 0;\n  padding: 0;\n}\n\n\/* Am 20.08.2026 war \u201eISO 9001 zertifiziert\" hoeher als \u201eISO 27001 zertifiziert\". Deshalb hier\n   drei Dinge zusammen, die die Hoehe unabhaengig vom Theme festnageln: eigene Zeilenhoehe,\n   eine Mindesthoehe als gemeinsames Mass, und weg mit den Aussenabstaenden, die WordPress\n   Listeneintraegen im Inhalt sonst mitgibt. Der Text wird darin senkrecht zentriert. *\/\n.cw-trustbar 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\/* ---------- Kontaktband ---------- *\/\n\n\/* Notiz und Download aus dem Mockup (`.cta .note`). Im Mockup zeigte der Link dort auf `#` \u2014\n   die Datei liegt inzwischen in der Mediathek beider Umgebungen, also ist es ein echter Link. *\/\n.cw-notiz {\n  margin: var(--cw-space-6) 0 0;\n  border-left: 3px solid var(--cw-color-green);\n  border-radius: 0 var(--cw-radius-md) var(--cw-radius-md) 0;\n  background: rgba(255, 255, 255, .04);\n  padding: var(--cw-space-4) var(--cw-space-5);\n  color: var(--cw-color-grey-light);\n  line-height: var(--cw-lh-loose);\n}\n\n\/* Der Download ist ein Link im Fliesstext der Notiz, kein Button \u2014 so wie im Mockup\n   (`.cta .note a`). Am 20.08.2026 ausdruecklich so gewuenscht. Gruen als Schriftfarbe ist hier\n   erlaubt, weil die Notiz auf Navy liegt; auf hellem Grund waere es verboten. Unterstrichen,\n   damit er im Fliesstext ueberhaupt als Link erkennbar ist \u2014 Farbe allein traegt das nicht.\n   Die Dateigroesse steht im Satz statt im Linktext: im Mobilnetz will niemand blind 95 KB\n   ziehen, aber der Linktext soll benennen, was kommt, nicht wie schwer es ist. *\/\n.cw-notiz a {\n  color: var(--cw-color-green);\n  font-weight: var(--cw-font-weight-bold);\n  text-decoration: underline;\n  text-underline-offset: 3px;\n}\n\n.cw-notiz a:hover,\n.cw-notiz a:focus-visible { text-decoration: none; }\n\n.cw-kontakt__raster {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-7);\n  align-items: start;\n}\n\n\/* Das Formular kommt aus dem Plugin und ist auf dunklem Grund ungepruft. Die weisse Karte\n   darunter nimmt ihm den Untergrund weg \u2014 dasselbe Mittel wie im Mockup, wo das Formular\n   ebenfalls als weisse Karte auf Navy sitzt. *\/\n.cw-formular {\n  background: var(--cw-color-white);\n  border-radius: var(--cw-radius-md);\n  padding: var(--cw-space-6);\n}\n\n\/* Schutzgel\u00e4nder, damit kein Eingabefeld aus der Karte laeuft. Absichtlich auf den\n   Element-Selektoren, nicht auf den Plugin-Klassen: greift auch, wenn das Plugin sein Markup\n   umbenennt. box-sizing verhindert, dass eine Breite von 100% plus Innenabstand ueber den\n   Rand hinausschiesst. *\/\n.cw-formular input,\n.cw-formular select,\n.cw-formular textarea {\n  max-width: 100%;\n  box-sizing: border-box;\n}\n\n\/* Felder wie im Popup-Formular, uebertragen in Weiss und Grau. Am 20.08.2026 nach Ansicht\n   eines Screenshots des Popups so gewuenscht.\n\n   Die Gestaltung des Popups besteht aus drei Dingen: gefuelltes Feld, **nur** eine Oberkante von\n   3px, keine Seiten- und Unterkante, eckig. Auf Navy heisst das: Fuellung 6-Prozent-Weiss, Linie\n   hell. Hier ist der Untergrund eine weisse Karte, also kippt beides um \u2014 Fuellung ein Grau\n   ueber Weiss, Linie ein dunkleres Grau darueber.\n\n   | | Popup (Navy) | hier (weisse Karte) |\n   |---|---|---|\n   | Fuellung | rgba(255,255,255,.06) | --cw-color-soft #F2F2F2 |\n   | Oberkante | hell, 3px | --cw-color-inactive #9AAAB8, 3px |\n   | Seiten\/unten | keine | keine |\n\n   #9AAAB8 ist kein neuer Wert, sondern das Token der Vorzeilen \u2014 das mittlere Grau des Hauses.\n   Es traegt die Linie ohne dem Gruen Konkurrenz zu machen.\n\n   Warum die Kanten hier ausdruecklich stehen und nicht dem Elementor-Kit ueberlassen bleiben:\n   Das Kit gibt `input` und `textarea` site-weit `border-width: 3px 0 0 0` \u2014 die Form stammt also\n   von dort. Es trifft aber `select` nicht, und seine beiden Selektoren sind unterschiedlich\n   stark. Genau daran sieht man im Popup, dass dessen Uneinheitlichkeit ein Versehen ist:\n\n   - `.elementor-kit-7 input:not(...)` = 0-3-1 schlaegt die Plugin-Regel 0-2-0 \u2192 Oberkante blau\n   - `.elementor-kit-7 textarea` = 0-1-1 verliert gegen 0-2-0 \u2192 Oberkante grau\n\n   Deshalb ist im Popup die Linie ueber den Textfeldern blau, die ueber dem Nachrichtenfeld grau.\n   Gewollt war offensichtlich beides grau. Hier stehen alle drei Feldtypen gleich.\n\n   `background-color` und nicht `background`: das Select traegt seinen Pfeil als `background-image`,\n   die Kurzform wuerde ihn loeschen. Klassennamen aus `plugins\/cod-forms\/assets\/css\/frontend.css`\n   gelesen, nicht geraten.\n\n   Innenabstaende bleiben unangetastet \u2014 sie kommen aus Kit und Plugin und sind im Popup dieselben.\n   Wer sie hier anfasst, entfernt sich von der Vorlage.\n\n   Der Fokus faerbt nur die Oberkante, ueber das Fokus-Token des Plugins (#022B4D). Navy statt\n   des Popup-Gruens, weil auf Weiss und Grau ein dunkler Ton den Fokus deutlicher zeigt. Der\n   Fokus-Schein des Plugins bleibt unangetastet, weil hier kein box-shadow gesetzt wird. Die\n   Regel muss sein: `border-color` oben wuerde die Fokusfarbe sonst mit ueberschreiben. *\/\n.cw-formular .cod-form__input,\n.cw-formular .cod-form__textarea,\n.cw-formular .cod-form__select {\n  background-color: var(--cw-color-soft);\n  border-style: solid;\n  border-width: 3px 0 0 0;\n  border-color: var(--cw-color-inactive);\n  border-radius: 0;\n}\n\n.cw-formular .cod-form__input:focus,\n.cw-formular .cod-form__textarea:focus,\n.cw-formular .cod-form__select:focus {\n  border-top-color: var(--cod-color-focus);\n}\n\n\/* Am 20.08.2026 stand hier eine spitze Klammer als Motiv in der freien Navy-Flaeche\n   (gedrehtes Quadrat mit zwei gruenen Kanten, 200px, Deckkraft .12, links unten\n   angeschnitten, ab 1025px). Auf Wunsch erst einmal wieder entfernt. Kommt sie zurueck,\n   braucht das Band `position: relative` und `overflow: hidden`, und `.cw-abschluss .cw-inner`\n   eine eigene Ebene mit `z-index: 1` \u2014 sonst liegt das Motiv ueber dem Text oder erzeugt\n   seitliches Scrollen. *\/\n\n\/* ---------- Tablet: 768 bis 1024 ---------- *\/\n\n@media (min-width: 768px) {\n  .cw-karten--3 { grid-template-columns: repeat(2, 1fr); }\n  .cw-schritte { grid-template-columns: repeat(2, 1fr); }\n\n  \/* Die Punkteliste bleibt auch auf Desktop zweispaltig. Fuenf Eintraege mit Beschreibung\n     lesen sich in zwei breiten Spalten besser als in drei schmalen. Absicht, kein Versehen. *\/\n  .cw-punkte { grid-template-columns: repeat(2, 1fr); }\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-karten--3 { grid-template-columns: repeat(3, 1fr); }\n\n  \/* Vier Schritte in vier Spalten \u2014 die Reihenfolge ist die Aussage, sie soll in einer\n     Zeile lesbar sein. *\/\n  .cw-schritte { grid-template-columns: repeat(4, 1fr); }\n\n  \/* minmax(0, 1fr) statt 1fr: sonst kann die Textspalte durch eine lange Zeile\n     ueber ihre Spaltenbreite hinauswachsen. *\/\n  .cw-hero__raster {\n    grid-template-columns: minmax(0, 1fr) 340px;\n    gap: var(--cw-space-8);\n  }\n\n  .cw-hero__bild {\n    width: 340px;\n    justify-self: end;\n  }\n\n  \/* Text links, Formular rechts, halbe und halbe Breite \u2014 wie `.cta-grid` im Mockup. Vorher\n     war die Formularspalte auf 420px begrenzt; am 20.08.2026 gewuenscht: breiter nach links. *\/\n  .cw-kontakt__raster {\n    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n    gap: var(--cw-space-8);\n  }\n}\n\n\/* ---------- Widescreen: ab 2500 ---------- *\/\n\n@media (min-width: 2500px) {\n  \/* Der Container begrenzt die Breite bereits, und .cw-lead skaliert ueber clamp().\n     Hier waechst nur der Fliesstext in den Karten mit, damit er nicht winzig wirkt. *\/\n  .cw-karte p,\n  .cw-schritt p,\n  .cw-punkte p { font-size: var(--cw-fs-body-lg); }\n\n  \/* Das Bild darf auf 4K etwas mitwachsen, sonst wirkt es neben der 48px-Ueberschrift\n     verloren. Die Datei ist 370px breit \u2014 mehr als das waere Hochskalieren. *\/\n  .cw-hero__raster { grid-template-columns: minmax(0, 1fr) 370px; }\n  .cw-hero__bild { width: 370px; }\n}\n\n\/* ---------- Weitere Produkte ----------\n   Einzige Ergaenzung gegenueber dem CSS der TRDP-Seite. Grund: die SIBAS-PN-Seite hat am Ende\n   drei Produkt-Teaser, die es auf der TRDP-Seite nicht gibt \u2014 im Bestand als\n   Elementor-Widget \"Produkt-Teaser\". Aufgebaut wie .cw-karte, nur mit Bild oben:\n   gleiche Haarlinie, gleicher Radius, gleicher Innenabstand. Das Bild bekommt eine feste\n   Hoehe und object-fit: contain, damit die drei unterschiedlich hohen Produktdarstellungen\n   (666 \/ 629 \/ 629 px) auf einer Linie stehen und nichts verzerrt. *\/\n.cw-produkte {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: var(--cw-space-5);\n  margin-top: var(--cw-space-6);\n}\n\n.cw-produkt {\n  display: flex;\n  flex-direction: column;\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\n\/* width statt max-width, aus demselben Grund wie beim Hero-Bild: das Theme bringt ein\n   img { max-width: 100% } mit hoeherer Spezifitaet mit. *\/\n.cw-produkt img {\n  width: 100%;\n  height: 200px;\n  object-fit: contain;\n  margin-bottom: var(--cw-space-4);\n}\n\n.cw-produkt__titel {\n  margin: 0 0 var(--cw-space-2);\n  font-size: var(--cw-fs-h3);\n  font-weight: var(--cw-font-weight-bold);\n  line-height: var(--cw-lh-normal);\n}\n\n.cw-produkt p {\n  margin: 0 0 var(--cw-space-4);\n  color: var(--cw-color-copy);\n  line-height: var(--cw-lh-loose);\n}\n\n\/* margin-top: auto haelt die Links der drei Karten auf einer Linie, auch wenn die\n   Beschreibungen unterschiedlich lang sind. *\/\n.cw-produkt__link {\n  margin-top: auto;\n  align-self: flex-start;\n  color: var(--cw-color-navy);\n  font-weight: var(--cw-font-weight-bold);\n  text-decoration: underline;\n  text-underline-offset: 3px;\n}\n\n.cw-produkt__link:hover,\n.cw-produkt__link:focus-visible { text-decoration: none; }\n\n@media (min-width: 768px) {\n  .cw-produkte { grid-template-columns: repeat(3, 1fr); }\n}\n\n\/* ---------- Hero-Bild als Karte ----------\n   Abweichung von der TRDP-Seite, und zwar aus dem Material heraus: dort ist die\n   Produktdarstellung freigestellt (32,8 % transparent, 0 % Weiss), hier nicht \u2014\n   softsibas-pn-validierungstest-big.png ist 0 % transparent und 69 % reinweiss, alle vier\n   Ecken deckend weiss. Direkt auf Navy gesetzt ergibt das einen weissen Block.\n   Statt das Bild eigenmaechtig freizustellen bekommt es eine weisse Karte: der weisse\n   Grund wird damit zur Absicht statt zum Fehler. Faellt die freigestellte Fassung nach,\n   kann diese Regel weg und die Klasse aus dem Markup. *\/\n.cw-hero__bild--karte {\n  background: var(--cw-color-white);\n  border-radius: var(--cw-radius-md);\n  padding: var(--cw-space-4);\n  box-sizing: border-box;\n}\n\n\/* ---------- Karten mit Icon, Vierer-Raster ----------\n   Die vier Testbereiche kommen aus dem Elementor-Bestand, dort als Ueberschrift mit\n   Inline-SVG. WordPress filtert Inline-SVG aus dem Seiteninhalt, deshalb liegen die vier\n   Symbole jetzt als Dateien in der Mediathek (Live 21303, 21305, 21307, 21309) \u2014 und dabei\n   von der alten Palette auf die aktuellen Tokens umgefaerbt: #86fb23 -> #9EFC4F,\n   #032b4d -> #022B4D. Die Dateien sind 250x205 mit gruener Tropfenflaeche und\n   Navy-Linienzeichnung, hier auf 88px Hoehe gebracht.\n\n   Die Karten tragen absichtlich KEINEN Fliesstext: im Bestand haben die vier Bereiche\n   keine Beschreibung, und erfunden wird hier nichts. Deshalb schiebt margin-top: auto\n   den Titel nach unten, damit die vier Karten trotz unterschiedlich langer Titel\n   sauber aussehen. *\/\n.cw-karten--4 { grid-template-columns: 1fr; }\n\n.cw-karte--icon {\n  display: flex;\n  flex-direction: column;\n  gap: var(--cw-space-3);\n}\n\n.cw-karte__icon {\n  width: auto;\n  height: 88px;\n  align-self: flex-start;\n}\n\n.cw-karte--icon .cw-karte__titel { margin: 0; }\n\n\/* Drei Schritte statt der vier der TRDP-Seite \u2014 deren Regel greift ab 1025px auf\n   repeat(4, 1fr) und wuerde eine leere vierte Spalte lassen. *\/\n.cw-schritte--3 { grid-template-columns: 1fr; }\n\n@media (min-width: 768px) {\n  .cw-karten--4 { grid-template-columns: repeat(2, 1fr); }\n  .cw-schritte--3 { grid-template-columns: repeat(3, 1fr); }\n}\n\n@media (min-width: 1025px) {\n  .cw-karten--4 { grid-template-columns: repeat(4, 1fr); }\n  .cw-schritte--3 { grid-template-columns: repeat(3, 1fr); }\n}\n\n\/* ---------- Schaubild Ablauf ----------\n   Die Bestandsgrafik Gruppe-2182@2x.png (1974x554) zeigt den Ablauf als Flussbild mit\n   Pfeilen. Sie ist freigestellt \u2014 30,7 % transparent, alle vier Ecken durchsichtig, die\n   Kaesten sind #f7f7fb. Auf dem weissen Band sitzt sie deshalb ohne Rahmen richtig; ein\n   eigener Hintergrund wuerde nur einen Kasten um sie zeichnen.\n   Sie steht VOR den drei Schritten, nicht statt ihnen: das Bild zeigt den Fluss, die\n   Schritte tragen die Erklaerung je Stufe und den Text, den Suchmaschinen und\n   Screenreader lesen. Der Alternativtext gibt den Bildinhalt vollstaendig wieder.\n   width statt max-width, wie beim Hero-Bild \u2014 das Theme bringt ein img { max-width: 100% }\n   mit hoeherer Spezifitaet mit. 1974px Naturbreite, der Container deckelt bei 1200,\n   hochgerechnet wird also nie. *\/\n.cw-schaubild {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  height: auto;\n  margin: 0 0 var(--cw-space-7);\n}\n\n\/* Muster-Hintergrund fuer den Pruefumfang-Abschnitt.\n\n   Die Hausgrafik als Vektor: eine spitze Klammer aus zwei Schenkeln GLEICHER Staerke (572,4)\n   mit runden Enden, die im SELBEN Punkt zusammenlaufen. Wo sich die Schenkel ueberlappen,\n   wird die Flaeche heller; DIESE UEBERLAPPUNG IST DER TROPFEN. Kein Kreis, kein Gradient.\n\n   Der Tropfen ist am rechten Bildrand ANGESCHNITTEN \u2014 514 von 690,7 px sichtbar, also rund\n   ein Viertel (25,5 %) abgeschnitten. Das ist keine gewaehlte Zahl, sondern exakt die\n   Komposition der Vorlage Hintergrund_Hell@2x.png: gegen sie gemessen betraegt die mittlere\n   Farbabweichung 0,0048 von 255, die hoechste 7.\n\n   Geometrie aus dem PNG rekonstruiert, 99,96 % Klassenuebereinstimmung. Als SVG 1,2 KB statt\n   11 KB und ohne Neuberechnung zuschneidbar. Herleitung und Rohform mit voller\n   Schenkellaenge: Outputs\/2026-08-24 Codewerk Klammer Rohform.\n\n   Pfad wurzelrelativ, damit die Regel auf Staging und Live gleich greift.\n   Mediathek: Anhang 21301 (Live), 1.252 B. *\/\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\/* ---------- Tropfen randscharf ab Desktop ----------\n   Am 29.08.2026 gewuenscht: der Tropfen soll oben und unten genau an seiner Rundung\n   abgeschnitten werden statt frei im Band zu stehen \u2014 \u201enicht zu viel und nicht zu wenig\".\n\n   Der Tropfenruecken ist ein Halbkreis um den Scheitel (2450,5 \/ 700,9) mit r = 286,2; die\n   Leinwand (2560 x 1419) schneidet ihn rechts bei x = 2560 ab. Genau dort, wo der rechte\n   Anschnitt den Kreis kreuzt, liegt der gesuchte Schnitt:\n\n     dy = sqrt(286,2\u00b2 - 109,5\u00b2) = 264,4  ->  y 436,5 bis 965,3, Hoehe 528,8\n     Bildhoehe : Tropfenhoehe = 1419 \/ 528,8 = 2,6832  ->  background-size: auto 268.32%\n     Position  : 436,5 \/ 528,8 = 0,8255, P loest 0,8255 - (2,6832 - 1) * P = 0  ->  49%\n\n   Damit treffen sich Ober-, Unter- und rechter Schnitt in den beiden Ecken; die tangentiale\n   Fassung (248.08%) liess oben und unten einen flachen Streifen stehen und wurde am\n   29.08.2026 ersetzt. Volle Herleitung und Messreihe im CSS von 16632.\n\n   Nur ab 1025px: erst dort ist das Band flach (hier 581px hoch bei 1425 breit gemessen, der\n   Tropfen nimmt 37 % der Bandbreite ein). Darunter ist das Band hoch und schmal, und der\n   Tropfen \u2014 0,9 mal so breit wie hoch \u2014 wuerde es ausfuellen; dort schneidet `cover` ohnehin\n   senkrecht nicht an. *\/\n@media (min-width: 1025px) {\n  .cw-band--muster {\n    background-size: auto 268.32%;\n    background-position: right 49%;\n  }\n}","footnotes":"","_cw_change_note":""},"class_list":["post-17562","page","type-page","status-publish","hentry"],"acf":[],"publishpress_future_action":{"enabled":false,"date":"2026-09-06 10:26:44","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"translation_priority","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/pages\/17562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/comments?post=17562"}],"version-history":[{"count":7,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/pages\/17562\/revisions"}],"predecessor-version":[{"id":21342,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/pages\/17562\/revisions\/21342"}],"up":[{"embeddable":true,"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/pages\/17549"}],"wp:attachment":[{"href":"https:\/\/www.codewerk.de\/en\/wp-json\/wp\/v2\/media?parent=17562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}