{"id":20014,"date":"2025-12-04T14:42:22","date_gmt":"2025-12-04T13:42:22","guid":{"rendered":"https:\/\/all4cloudgroup.com\/?page_id=20014"},"modified":"2026-01-30T12:19:49","modified_gmt":"2026-01-30T11:19:49","slug":"test-remove-me","status":"publish","type":"page","link":"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/","title":{"rendered":"Test Contact form EN &#038; DE"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"20014\" class=\"elementor elementor-20014\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-36be9c8 a4c-text-video-left a4c-video-maximize e-flex e-con-boxed e-con e-parent\" data-id=\"36be9c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/all4cloudgroup.com\\\/app\\\/uploads\\\/2024\\\/07\\\/Detlef-von-links-weiss_1.mp4&quot;,&quot;background_video_start&quot;:10}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-background-video-container elementor-hidden-mobile\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div><div class=\"elementor-element elementor-element-a3f06d7 e-con-full e-flex e-con e-child\" data-id=\"a3f06d7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;,&quot;background_privacy_mode&quot;:&quot;yes&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5fa5539 e-con-full e-flex e-con e-child\" data-id=\"5fa5539\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c1a96c elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"9c1a96c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ihre <i>Anforderungen.<\/i><br>\nUnsere <i>Expertise.<\/i><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3432e3e elementor-widget elementor-widget-text-editor\" data-id=\"3432e3e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum Add-On Potenzialgespr\u00e4ch und profitieren Sie von schnellen Go-Live-Zeiten und ma\u00dfgeschneiderter Unterst\u00fctzung. Wir freuen uns darauf, Ihre Prozesse zu optimieren!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-db4f63c elementor-widget elementor-widget-html\" data-id=\"db4f63c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- HubSpot Form Embed for Elementor HTML Widget -->\r\n<!-- Form ID: 9504e17b-94b6-4926-b8a9-32d9169b33f6 -->\r\n\r\n<!-- HubSpot Embed Script -->\r\n<script src=\"https:\/\/js.hsforms.net\/forms\/embed\/developer\/6868748.js\" defer><\/script>\r\n\r\n<!-- Form Container -->\r\n<div class=\"hs-form-html\" data-region=\"na1\" data-form-id=\"9504e17b-94b6-4926-b8a9-32d9169b33f6\" data-portal-id=\"6868748\"><\/div>\r\n\r\n<!-- Custom Styles -->\r\n<style>\r\n\r\n[data-hsfc-id=Renderer] .hsfc-Row{\r\n    gap:10px !important;\r\n}\r\n\r\n.hub-multistep-btn {\r\n  background-color: #00b4d5;\r\n  border-radius: 25px;\r\n  font-weight: 600;\r\n  min-height: 40px;\r\n  cursor: pointer;\r\n  width: 100%;\r\n  font-size: 15px;\r\n  text-align: center;\r\n  transition: all .3s;\r\n  fill: #fff;\r\n}\r\n\r\n#step-progress {\r\n  margin: 30px 0 !important;\r\n  text-align: center !important;\r\n  display: flex !important;\r\n  justify-content: space-between !important;\r\n  align-items: center !important;\r\n  width: 100% !important;\r\n  visibility: visible !important;\r\n  opacity: 1 !important;\r\n  position: relative !important;\r\n  z-index: 10 !important;\r\n  pointer-events: auto !important;\r\n  min-height: 60px !important;\r\n}\r\n\r\n\/* Prevent any attempts to hide step progress *\/\r\n#step-progress[style*=\"display: none\"],\r\n#step-progress[style*=\"visibility: hidden\"] {\r\n  display: flex !important;\r\n  visibility: visible !important;\r\n  opacity: 1 !important;\r\n}\r\n\r\n.step-indicator {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  width: 40px;\r\n  height: 40px;\r\n  line-height: 1;\r\n  border-radius: 50%;\r\n  font-size: 16px;\r\n  font-weight: 700;\r\n  position: relative;\r\n  text-align: center;\r\n  border: 2px solid #babfc5;\r\n  color: #babfc5;\r\n  background-color: #fff;\r\n  transition: all 0.3s ease;\r\n  z-index: 2;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.step-indicator.active {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n  color: #fff !important;\r\n  box-shadow: 0 0 0 4px rgba(0, 180, 213, 0.15);\r\n}\r\n\r\n.step-indicator.completed {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n  color: transparent !important;\r\n  position: relative;\r\n}\r\n\r\n\/* SVG Checkmark for completed steps *\/\r\n.step-indicator.completed::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 50%;\r\n  transform: translate(-50%, -50%);\r\n  width: 20px;\r\n  height: 20px;\r\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C\/polyline%3E%3C\/svg%3E\");\r\n  background-size: contain;\r\n  background-repeat: no-repeat;\r\n  background-position: center;\r\n}\r\n\r\n.step-head-container {\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  gap: 12px;\r\n  position: relative;\r\n  z-index: 2;\r\n  background-color: transparent;\r\n}\r\n\r\n.steps-container {\r\n  display: flex;\r\n  position: relative;\r\n  flex: 1;\r\n  align-items: center;\r\n}\r\n\r\n.steps-container:first-child {\r\n  justify-content: flex-start;\r\n}\r\n\r\n.steps-container:nth-child(2) {\r\n  justify-content: center;\r\n}\r\n\r\n.steps-container:last-child {\r\n  justify-content: flex-end;\r\n}\r\n\r\n\/* Horizontal line between step 1 and 2 (left line) *\/\r\n.steps-container:nth-child(1)::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: 20px;\r\n  left: 50%;\r\n  width: 70%;\r\n  height: 2px;\r\n  background-color: #babfc5;\r\n  z-index: 0;\r\n  transition: background-color 0.3s ease;\r\n}\r\n\r\n\/* Horizontal line between step 2 and 3 (right line) *\/\r\n.steps-container:nth-child(2)::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: 20px;\r\n  left: 80%;\r\n  width: 70%;\r\n  height: 2px;\r\n  background-color: #babfc5;\r\n  z-index: 0;\r\n  transition: background-color 0.3s ease;\r\n}\r\n\r\n\/* Change line color when previous step is completed *\/\r\n.steps-container:nth-child(1) .step-head-container.completed ~ .steps-container:nth-child(1)::after,\r\n.steps-container:nth-child(1).has-completed::after {\r\n  background-color: #00b4d5;\r\n}\r\n\r\n.steps-container:nth-child(2) .step-head-container.completed ~ .steps-container:nth-child(2)::after,\r\n.steps-container:nth-child(2).has-completed::after {\r\n  background-color: #00b4d5;\r\n}\r\n\r\n.step-head-container.completed .step-indicator {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n}\r\n\r\n\/* Hide HubSpot progress bars completely *\/\r\n.hsfc-ProgressBar,\r\n.hsfc-ProgressBar__Text,\r\n.hsfc-ProgressBar__Progress,\r\n[role=\"progressbar\"][aria-valuetext*=\"page\"] {\r\n  display: none !important;\r\n  visibility: hidden !important;\r\n}\r\n\r\n\/* Hide hidden fields *\/\r\n.hs_test___letzte_konversion__asset_tag_,\r\ninput[name*=\"test___letzte_konversion__asset_tag_\"],\r\ninput[name*=\"hs_language\"],\r\n.hs_hs_language,\r\n.hsfc-Row[style*=\"display:none\"] {\r\n  display: none !important;\r\n}\r\n\r\nspan.hs-form-required {\r\n  padding-left: 5px;\r\n  color: #9b0077;\r\n}\r\n\r\n\/* HubSpot form inputs *\/\r\n.hsfc-TextInput,\r\n.hsfc-EmailField input,\r\n.hsfc-TextField input {\r\n  color: #000221 !important;\r\n  font-size: 18px !important;\r\n  height: 45px !important;\r\n  transition: border-bottom .2s ease-in-out, background-color .2s ease-in-out, color .2s ease-in-out !important;\r\n  width: 100% !important;\r\n  background-color: #fff !important;\r\n  border: 1px solid #ccccd3 !important;\r\n  border-radius: 6px !important;\r\n  padding: 10px !important;\r\n}\r\n\r\n.step-buttons {\r\n  margin-top: 30px;\r\n  text-align: center;\r\n  display: flex;\r\n  gap: 12px;\r\n}\r\n\r\n.step-buttons button {\r\n  background-color: #00b4d5;\r\n  border: 1px solid #00b4d5;\r\n  border-radius: 25px;\r\n  font-weight: 600;\r\n  min-height: 40px;\r\n  cursor: pointer;\r\n  width: 100%;\r\n  font-size: 15px;\r\n  text-align: center;\r\n  transition: all .3s;\r\n  fill: #fff;\r\n  color: #fff;\r\n  flex: 1;\r\n}\r\n\r\n.step-buttons button#nextBtn:hover {\r\n  background-color: #0092ad !important;\r\n  color: #fff !important;\r\n}\r\n\r\n.step-buttons button#backBtn {\r\n  background-color: #fff;\r\n  color: #00b4d5;\r\n  border: 1px solid #00b4d5;\r\n}\r\n\r\n.step-buttons button#backBtn:hover {\r\n  background-color: #00b4d5;\r\n  color: #fff;\r\n}\r\n\r\n.hs-form-field {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\n.input-error {\r\n  border-color: red !important;\r\n}\r\n\r\n.hs-error-msgs {\r\n  display: block !important;\r\n  color: red;\r\n  font-size: 14px;\r\n  margin-top: 4px;\r\n}\r\n\r\n\/* HubSpot checkboxes *\/\r\n.hsfc-CheckboxInput,\r\n.hs-input[type=checkbox] {\r\n  appearance: none !important;\r\n  -webkit-appearance: none !important;\r\n  background-color: #fff !important;\r\n  border: 1px solid #717e86 !important;\r\n  border-radius: 4px !important;\r\n  cursor: pointer !important;\r\n  height: 25px !important;\r\n  width: 25px !important;\r\n  min-width: 30px !important;\r\n  transition: background-color .2s ease, border .5s ease !important;\r\n  position: relative !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  flex-shrink: 0 !important;\r\n}\r\n\r\n.hsfc-CheckboxInput:checked,\r\n.hs-input[type=checkbox]:checked {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n}\r\n\r\n.hsfc-CheckboxInput:checked::after,\r\n.hs-input[type=checkbox]:checked::after {\r\n  background-color: #00b4d5 !important;\r\n  border-radius: 50% !important;\r\n  color: #fff !important;\r\n  content: \"\u2713\" !important;\r\n  display: flex !important;\r\n  border: 1px solid #fff !important;\r\n  font-size: 11px !important;\r\n  justify-content: center !important;\r\n  align-items: center !important;\r\n  left: 50% !important;\r\n  position: absolute !important;\r\n  top: 50% !important;\r\n  transform: translate(-50%, -50%) !important;\r\n  width: 16px !important;\r\n  height: 18px !important;\r\n  line-height: 1 !important;\r\n}\r\n\r\n\/* Remove default gap *\/\r\n[data-hsfc-id=Renderer] .hsfc-CheckboxFieldGroup__Options>*:not(:last-child) {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\n.hsfc-FieldLabel {\r\n  font-size: 14px !important;\r\n  font-weight: 500 !important;\r\n  line-height: 30px !important;\r\n  text-align: left !important;\r\n  color: #33354d !important;\r\n  margin-bottom: 8px !important;\r\n}\r\n\r\n\/* HubSpot navigation buttons *\/\r\n.hsfc-NavigationRow {\r\n  margin-top: 30px !important;\r\n}\r\n\r\n.hsfc-NavigationRow__Buttons {\r\n  display: flex !important;\r\n  gap: 12px !important;\r\n  width: 100% !important;\r\n}\r\n\r\n.hsfc-Button {\r\n  background-color: #00b4d5 !important;\r\n  border: 1px solid #00b4d5 !important;\r\n  border-radius: 25px !important;\r\n  font-weight: 600 !important;\r\n  min-height: 40px !important;\r\n  cursor: pointer !important;\r\n  width: 100% !important;\r\n  font-size: 15px !important;\r\n  text-align: center !important;\r\n  transition: all .3s !important;\r\n  color: #fff !important;\r\n  padding: 10px 20px !important;\r\n  flex: 1 !important;\r\n}\r\n\r\n.hsfc-Button:hover:not(:disabled) {\r\n  background-color: #0092ad !important;\r\n  color: #fff !important;\r\n}\r\n\r\n.hsfc-Button:disabled {\r\n  opacity: 0.6 !important;\r\n  cursor: not-allowed !important;\r\n}\r\n\r\n\/* Focus states *\/\r\n.hsfc-TextInput:focus,\r\n.hsfc-EmailField input:focus {\r\n  background-color: #eaf8fc !important;\r\n  border: 1px solid #00b4d5 !important;\r\n  box-shadow: none !important;\r\n  color: #000221 !important;\r\n  outline: none !important;\r\n}\r\n\r\n\/* Checkbox field groups *\/\r\n.hsfc-CheckboxFieldGroup__Options {\r\n  display: flex !important;\r\n  flex-direction: column !important;\r\n}\r\n\r\n.hsfc-CheckboxFieldGroup label,\r\n.hsfc-CheckboxField label {\r\n  display: flex !important;\r\n  align-items: center !important;\r\n  margin-block: 10px !important;\r\n}\r\n\r\n\/* Step content spacing *\/\r\n.hsfc-Step__Content {\r\n  padding: 20px 0 !important;\r\n}\r\n\r\n.hsfc-Row {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\nspan.step-label {\r\n  font-size: 13px;\r\n  font-weight: 600;\r\n  color: #33354d;\r\n  text-align: center;\r\n  line-height: 1.2;\r\n}\r\n<\/style>\r\n\r\n<!-- Optimized Multi-step Form JavaScript -->\r\n<script>\r\n(function() {\r\n  'use strict';\r\n  \r\n  const FORM_ID = '9504e17b-94b6-4926-b8a9-32d9169b33f6';\r\n  const STEP_LABELS = ['Produktauswahl', 'Anforderungen', 'Kontaktdaten'];\r\n  \r\n  let formInitialized = false;\r\n  let stepProgressElement = null;\r\n  let formObserver = null;\r\n  let stepObserver = null;\r\n  let updateTimeout = null;\r\n  \r\n  \/\/ Debounce function\r\n  function debounce(func, wait) {\r\n    let timeout;\r\n    return function executedFunction(...args) {\r\n      const later = () => {\r\n        clearTimeout(timeout);\r\n        func(...args);\r\n      };\r\n      clearTimeout(timeout);\r\n      timeout = setTimeout(later, wait);\r\n    };\r\n  }\r\n  \r\n  \/\/ Create step indicators HTML\r\n  function createStepIndicatorsHTML() {\r\n    return `\r\n      <div class=\"steps-container\">\r\n        <div class=\"step-head-container\">\r\n          <div class=\"step-indicator active\">1<\/div>\r\n          <span class=\"step-label\">${STEP_LABELS[0]}<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"steps-container\">\r\n        <div class=\"step-head-container\">\r\n          <div class=\"step-indicator\">2<\/div>\r\n          <span class=\"step-label\">${STEP_LABELS[1]}<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"steps-container\">\r\n        <div class=\"step-head-container\">\r\n          <div class=\"step-indicator\">3<\/div>\r\n          <span class=\"step-label\">${STEP_LABELS[2]}<\/span>\r\n        <\/div>\r\n      <\/div>\r\n    `;\r\n  }\r\n  \r\n  \/\/ Create and insert step progress element\r\n  function createStepProgress() {\r\n    \/\/ Remove existing if any\r\n    if (stepProgressElement && stepProgressElement.parentNode) {\r\n      stepProgressElement.parentNode.removeChild(stepProgressElement);\r\n    }\r\n    \r\n    stepProgressElement = document.createElement('div');\r\n    stepProgressElement.id = 'step-progress';\r\n    stepProgressElement.innerHTML = createStepIndicatorsHTML();\r\n    \r\n    \/\/ Force visibility with inline styles\r\n    stepProgressElement.style.cssText = `\r\n      display: flex !important;\r\n      visibility: visible !important;\r\n      opacity: 1 !important;\r\n      margin: 30px 0 !important;\r\n      text-align: center !important;\r\n      justify-content: space-between !important;\r\n      align-items: center !important;\r\n      width: 100% !important;\r\n      position: relative !important;\r\n      z-index: 10 !important;\r\n      pointer-events: auto !important;\r\n    `;\r\n    \r\n    return stepProgressElement;\r\n  }\r\n  \r\n  \/\/ Insert step progress into DOM\r\n  function insertStepProgress(form) {\r\n    if (!form) return;\r\n    \r\n    const progress = createStepProgress();\r\n    const formContainer = form.parentElement || form.closest('.hs-form-html') || form;\r\n    \r\n    \/\/ Insert before form\r\n    if (formContainer && formContainer.parentNode) {\r\n      formContainer.parentNode.insertBefore(progress, formContainer);\r\n    } else if (form.firstChild) {\r\n      form.insertBefore(progress, form.firstChild);\r\n    } else {\r\n      form.appendChild(progress);\r\n    }\r\n    \r\n    return progress;\r\n  }\r\n  \r\n  \/\/ Update step indicators based on visible step\r\n  function updateStepIndicators() {\r\n    if (!stepProgressElement) return;\r\n    \r\n    const form = document.querySelector(`form[data-form-id=\"${FORM_ID}\"]`);\r\n    if (!form) return;\r\n    \r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    if (steps.length < 3) return;\r\n    \r\n    const indicators = stepProgressElement.querySelectorAll('.step-indicator');\r\n    const containers = stepProgressElement.querySelectorAll('.step-head-container');\r\n    const stepsContainers = stepProgressElement.querySelectorAll('.steps-container');\r\n    if (indicators.length !== 3) return;\r\n    \r\n    let activeStepIndex = -1;\r\n    \r\n    \/\/ Find active step\r\n    steps.forEach((step, index) => {\r\n      const style = window.getComputedStyle(step);\r\n      const isVisible = style.display !== 'none' && \r\n                        style.visibility !== 'hidden' &&\r\n                        step.offsetHeight > 0 &&\r\n                        step.offsetWidth > 0;\r\n      \r\n      if (isVisible) {\r\n        activeStepIndex = index;\r\n      }\r\n    });\r\n    \r\n    \/\/ Update indicators and lines\r\n    if (activeStepIndex >= 0) {\r\n      indicators.forEach((indicator, i) => {\r\n        const container = containers[i];\r\n        const stepContainer = stepsContainers[i];\r\n        \r\n        indicator.classList.remove('active', 'completed');\r\n        if (container) {\r\n          container.classList.remove('completed');\r\n        }\r\n        if (stepContainer) {\r\n          stepContainer.classList.remove('has-completed');\r\n        }\r\n        \r\n        if (i === activeStepIndex) {\r\n          indicator.classList.add('active');\r\n          indicator.textContent = (i + 1).toString();\r\n        } else if (i < activeStepIndex) {\r\n          indicator.classList.add('completed');\r\n          indicator.textContent = '';\r\n          if (container) {\r\n            container.classList.add('completed');\r\n          }\r\n          \/\/ Mark the line as completed\r\n          if (stepContainer) {\r\n            stepContainer.classList.add('has-completed');\r\n          }\r\n        } else {\r\n          indicator.textContent = (i + 1).toString();\r\n        }\r\n      });\r\n    }\r\n  }\r\n  \r\n  \/\/ Throttled update function\r\n  const throttledUpdate = debounce(updateStepIndicators, 150);\r\n  \r\n  \/\/ Ensure step progress is visible and in place\r\n  function ensureStepProgress() {\r\n    const form = document.querySelector(`form[data-form-id=\"${FORM_ID}\"]`);\r\n    if (!form) return false;\r\n    \r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    if (steps.length < 3) return false;\r\n    \r\n    \/\/ Check if step progress exists and is in DOM\r\n    if (!stepProgressElement || !document.body.contains(stepProgressElement)) {\r\n      insertStepProgress(form);\r\n      updateStepIndicators();\r\n      return true;\r\n    }\r\n    \r\n    \/\/ Aggressively ensure it's visible - force inline styles\r\n    stepProgressElement.style.setProperty('display', 'flex', 'important');\r\n    stepProgressElement.style.setProperty('visibility', 'visible', 'important');\r\n    stepProgressElement.style.setProperty('opacity', '1', 'important');\r\n    stepProgressElement.style.setProperty('margin', '30px 0', 'important');\r\n    stepProgressElement.style.setProperty('text-align', 'center', 'important');\r\n    stepProgressElement.style.setProperty('justify-content', 'space-between', 'important');\r\n    stepProgressElement.style.setProperty('align-items', 'center', 'important');\r\n    stepProgressElement.style.setProperty('width', '100%', 'important');\r\n    stepProgressElement.style.setProperty('position', 'relative', 'important');\r\n    stepProgressElement.style.setProperty('z-index', '10', 'important');\r\n    stepProgressElement.style.setProperty('pointer-events', 'auto', 'important');\r\n    \r\n    return true;\r\n  }\r\n  \r\n  \/\/ Setup observers\r\n  function setupObservers(form) {\r\n    \/\/ Clean up existing observers\r\n    if (formObserver) {\r\n      formObserver.disconnect();\r\n    }\r\n    if (stepObserver) {\r\n      stepObserver.disconnect();\r\n    }\r\n    \r\n    \/\/ Aggressive observer to prevent step progress from being hidden\r\n    formObserver = new MutationObserver((mutations) => {\r\n      let shouldReinsert = false;\r\n      let shouldUpdate = false;\r\n      \r\n      mutations.forEach((mutation) => {\r\n        \/\/ Check if step progress was removed\r\n        if (mutation.type === 'childList') {\r\n          mutation.removedNodes.forEach((node) => {\r\n            if (node === stepProgressElement || \r\n                (node.nodeType === 1 && node.contains && node.contains(stepProgressElement))) {\r\n              shouldReinsert = true;\r\n            }\r\n          });\r\n          \r\n          \/\/ Check if new steps were added\r\n          mutation.addedNodes.forEach((node) => {\r\n            if (node.nodeType === 1 && node.classList && node.classList.contains('hsfc-Step')) {\r\n              shouldUpdate = true;\r\n            }\r\n          });\r\n        }\r\n        \r\n        \/\/ Check if step progress visibility was changed\r\n        if (mutation.type === 'attributes' && mutation.target === stepProgressElement) {\r\n          if (mutation.attributeName === 'style') {\r\n            const style = window.getComputedStyle(stepProgressElement);\r\n            if (style.display === 'none' || style.visibility === 'hidden') {\r\n              ensureStepProgress();\r\n            }\r\n          }\r\n        }\r\n        \r\n        \/\/ Check if step visibility changed\r\n        if (mutation.type === 'attributes' && \r\n            mutation.attributeName === 'style' &&\r\n            mutation.target.classList && \r\n            mutation.target.classList.contains('hsfc-Step')) {\r\n          shouldUpdate = true;\r\n        }\r\n      });\r\n      \r\n      \/\/ Immediately re-insert if removed\r\n      if (shouldReinsert) {\r\n        setTimeout(() => {\r\n          ensureStepProgress();\r\n          throttledUpdate();\r\n        }, 0);\r\n      } else if (shouldUpdate) {\r\n        ensureStepProgress();\r\n        throttledUpdate();\r\n      }\r\n    });\r\n    \r\n    \/\/ Observe form and its parent for structure changes\r\n    formObserver.observe(form, {\r\n      childList: true,\r\n      subtree: false,\r\n      attributes: false\r\n    });\r\n    \r\n    \/\/ Also observe the parent container\r\n    if (form.parentElement) {\r\n      formObserver.observe(form.parentElement, {\r\n        childList: true,\r\n        subtree: false,\r\n        attributes: false\r\n      });\r\n    }\r\n    \r\n    \/\/ Observe step progress element itself for style changes\r\n    if (stepProgressElement) {\r\n      formObserver.observe(stepProgressElement, {\r\n        attributes: true,\r\n        attributeFilter: ['style', 'class'],\r\n        childList: false,\r\n        subtree: false\r\n      });\r\n    }\r\n    \r\n    \/\/ Observe steps for visibility changes\r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    steps.forEach((step) => {\r\n      formObserver.observe(step, {\r\n        attributes: true,\r\n        attributeFilter: ['style', 'class'],\r\n        childList: false,\r\n        subtree: false\r\n      });\r\n    });\r\n    \r\n    \/\/ More frequent check to ensure step progress stays visible\r\n    const checkInterval = setInterval(() => {\r\n      if (!ensureStepProgress()) {\r\n        clearInterval(checkInterval);\r\n      }\r\n      throttledUpdate();\r\n    }, 500);\r\n    \r\n    \/\/ Stop checking after form is submitted or 5 minutes\r\n    setTimeout(() => clearInterval(checkInterval), 300000);\r\n  }\r\n  \r\n  \/\/ Aggressive protection: Watch for step progress removal\r\n  function setupAggressiveProtection(form) {\r\n    const protectionObserver = new MutationObserver(() => {\r\n      \/\/ Check if step progress exists\r\n      const existing = document.getElementById('step-progress');\r\n      if (!existing || !document.body.contains(existing)) {\r\n        \/\/ Immediately re-insert\r\n        ensureStepProgress();\r\n        updateStepIndicators();\r\n      } else {\r\n        \/\/ Ensure it's visible\r\n        ensureStepProgress();\r\n      }\r\n    });\r\n    \r\n    \/\/ Observe the entire document body for removals\r\n    protectionObserver.observe(document.body, {\r\n      childList: true,\r\n      subtree: true\r\n    });\r\n    \r\n    \/\/ Also observe the form container\r\n    if (form.parentElement) {\r\n      protectionObserver.observe(form.parentElement, {\r\n        childList: true,\r\n        subtree: true\r\n      });\r\n    }\r\n    \r\n    return protectionObserver;\r\n  }\r\n  \r\n  \/\/ Initialize form\r\n  function initHubSpotForm() {\r\n    if (formInitialized) return;\r\n    \r\n    const form = document.querySelector(`form[data-form-id=\"${FORM_ID}\"]`);\r\n    if (!form) return;\r\n    \r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    if (steps.length < 3) return;\r\n    \r\n    \/\/ Hide HubSpot's default progress bars\r\n    const progressBars = form.querySelectorAll('.hsfc-ProgressBar, [role=\"progressbar\"]');\r\n    progressBars.forEach(bar => {\r\n      bar.style.display = 'none';\r\n      bar.style.visibility = 'hidden';\r\n    });\r\n    \r\n    \/\/ Insert step progress\r\n    if (ensureStepProgress()) {\r\n      updateStepIndicators();\r\n      setupObservers(form);\r\n      setupAggressiveProtection(form);\r\n      formInitialized = true;\r\n    }\r\n  }\r\n  \r\n  \/\/ Initialize when DOM is ready\r\n  function startInitialization() {\r\n    if (document.readyState === 'loading') {\r\n      document.addEventListener('DOMContentLoaded', initHubSpotForm);\r\n    } else {\r\n      initHubSpotForm();\r\n    }\r\n    \r\n    \/\/ Retry with exponential backoff\r\n    let attempts = 0;\r\n    const maxAttempts = 20;\r\n    const retryInterval = setInterval(() => {\r\n      attempts++;\r\n      if (formInitialized || attempts >= maxAttempts) {\r\n        clearInterval(retryInterval);\r\n        return;\r\n      }\r\n      initHubSpotForm();\r\n    }, 200);\r\n    \r\n    \/\/ Fallback: watch for form to appear dynamically\r\n    const dynamicFormObserver = new MutationObserver(() => {\r\n      if (!formInitialized) {\r\n        initHubSpotForm();\r\n      }\r\n    });\r\n    \r\n    dynamicFormObserver.observe(document.body, {\r\n      childList: true,\r\n      subtree: true\r\n    });\r\n    \r\n    \/\/ Stop watching after 15 seconds\r\n    setTimeout(() => {\r\n      dynamicFormObserver.disconnect();\r\n    }, 15000);\r\n  }\r\n  \r\n  \/\/ Start initialization\r\n  startInitialization();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-db8f7f9 a4c-text-video-left a4c-video-maximize e-flex e-con-boxed e-con e-parent\" data-id=\"db8f7f9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/all4cloudgroup.com\\\/app\\\/uploads\\\/2024\\\/07\\\/Detlef-von-links-weiss_1.mp4&quot;,&quot;background_video_start&quot;:10}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-background-video-container elementor-hidden-mobile\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div><div class=\"elementor-element elementor-element-6100499 e-con-full e-flex e-con e-child\" data-id=\"6100499\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;,&quot;background_privacy_mode&quot;:&quot;yes&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-41472a9 e-con-full e-flex e-con e-child\" data-id=\"41472a9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-874853b elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"874853b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ihre <i>Anforderungen.<\/i><br>\nUnsere <i>Expertise.<\/i><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e2cfc4c elementor-widget elementor-widget-text-editor\" data-id=\"e2cfc4c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum Add-On Potenzialgespr\u00e4ch und profitieren Sie von schnellen Go-Live-Zeiten und ma\u00dfgeschneiderter Unterst\u00fctzung. Wir freuen uns darauf, Ihre Prozesse zu optimieren!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5939b54 elementor-widget elementor-widget-html\" data-id=\"5939b54\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- HubSpot Form Embed for Elementor HTML Widget -->\r\n<!-- Form ID: fad19ee8-6305-4d07-b4df-86ec9215440e -->\r\n\r\n<!-- HubSpot Embed Script -->\r\n<script src=\"https:\/\/js.hsforms.net\/forms\/embed\/developer\/6868748.js\" defer><\/script>\r\n\r\n<!-- Form Container -->\r\n<div class=\"hs-form-html\" data-region=\"na1\" data-form-id=\"fad19ee8-6305-4d07-b4df-86ec9215440e\" data-portal-id=\"6868748\"><\/div>\r\n\r\n<!-- Custom Styles -->\r\n<style>\r\n\r\n[data-hsfc-id=Renderer] .hsfc-Row{\r\n    gap:10px !important;\r\n}\r\n\r\n.hub-multistep-btn {\r\n  background-color: #00b4d5;\r\n  border-radius: 25px;\r\n  font-weight: 600;\r\n  min-height: 40px;\r\n  cursor: pointer;\r\n  width: 100%;\r\n  font-size: 15px;\r\n  text-align: center;\r\n  transition: all .3s;\r\n  fill: #fff;\r\n}\r\n\r\n#step-progress {\r\n  margin: 30px 0 !important;\r\n  text-align: center !important;\r\n  display: flex !important;\r\n  justify-content: space-between !important;\r\n  align-items: center !important;\r\n  width: 100% !important;\r\n  visibility: visible !important;\r\n  opacity: 1 !important;\r\n  position: relative !important;\r\n  z-index: 10 !important;\r\n  pointer-events: auto !important;\r\n  min-height: 60px !important;\r\n}\r\n\r\n\/* Prevent any attempts to hide step progress *\/\r\n#step-progress[style*=\"display: none\"],\r\n#step-progress[style*=\"visibility: hidden\"] {\r\n  display: flex !important;\r\n  visibility: visible !important;\r\n  opacity: 1 !important;\r\n}\r\n\r\n.step-indicator {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  width: 40px;\r\n  height: 40px;\r\n  line-height: 1;\r\n  border-radius: 50%;\r\n  font-size: 16px;\r\n  font-weight: 700;\r\n  position: relative;\r\n  text-align: center;\r\n  border: 2px solid #babfc5;\r\n  color: #babfc5;\r\n  background-color: #fff;\r\n  transition: all 0.3s ease;\r\n  z-index: 2;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.step-indicator.active {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n  color: #fff !important;\r\n  box-shadow: 0 0 0 4px rgba(0, 180, 213, 0.15);\r\n}\r\n\r\n.step-indicator.completed {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n  color: transparent !important;\r\n  position: relative;\r\n}\r\n\r\n\/* SVG Checkmark for completed steps *\/\r\n.step-indicator.completed::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 50%;\r\n  transform: translate(-50%, -50%);\r\n  width: 20px;\r\n  height: 20px;\r\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C\/polyline%3E%3C\/svg%3E\");\r\n  background-size: contain;\r\n  background-repeat: no-repeat;\r\n  background-position: center;\r\n}\r\n\r\n.step-head-container {\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  gap: 12px;\r\n  position: relative;\r\n  z-index: 2;\r\n  background-color: transparent;\r\n}\r\n\r\n.steps-container {\r\n  display: flex;\r\n  position: relative;\r\n  flex: 1;\r\n  align-items: center;\r\n}\r\n\r\n.steps-container:first-child {\r\n  justify-content: flex-start;\r\n}\r\n\r\n.steps-container:nth-child(2) {\r\n  justify-content: center;\r\n}\r\n\r\n.steps-container:last-child {\r\n  justify-content: flex-end;\r\n}\r\n\r\n\/* Horizontal line between step 1 and 2 (left line) *\/\r\n.steps-container:nth-child(1)::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: 20px;\r\n  left: 50%;\r\n  width: 70%;\r\n  height: 2px;\r\n  background-color: #babfc5;\r\n  z-index: 0;\r\n  transition: background-color 0.3s ease;\r\n}\r\n\r\n\/* Horizontal line between step 2 and 3 (right line) *\/\r\n.steps-container:nth-child(2)::after {\r\n  content: '';\r\n  position: absolute;\r\n  top: 20px;\r\n  left: 80%;\r\n  width: 70%;\r\n  height: 2px;\r\n  background-color: #babfc5;\r\n  z-index: 0;\r\n  transition: background-color 0.3s ease;\r\n}\r\n\r\n\/* Change line color when previous step is completed *\/\r\n.steps-container:nth-child(1) .step-head-container.completed ~ .steps-container:nth-child(1)::after,\r\n.steps-container:nth-child(1).has-completed::after {\r\n  background-color: #00b4d5;\r\n}\r\n\r\n.steps-container:nth-child(2) .step-head-container.completed ~ .steps-container:nth-child(2)::after,\r\n.steps-container:nth-child(2).has-completed::after {\r\n  background-color: #00b4d5;\r\n}\r\n\r\n.step-head-container.completed .step-indicator {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n}\r\n\r\n\/* Hide HubSpot progress bars completely *\/\r\n.hsfc-ProgressBar,\r\n.hsfc-ProgressBar__Text,\r\n.hsfc-ProgressBar__Progress,\r\n[role=\"progressbar\"][aria-valuetext*=\"page\"] {\r\n  display: none !important;\r\n  visibility: hidden !important;\r\n}\r\n\r\n\/* Hide hidden fields *\/\r\n.hs_test___letzte_konversion__asset_tag_,\r\ninput[name*=\"test___letzte_konversion__asset_tag_\"],\r\ninput[name*=\"hs_language\"],\r\n.hs_hs_language,\r\n.hsfc-Row[style*=\"display:none\"] {\r\n  display: none !important;\r\n}\r\n\r\nspan.hs-form-required {\r\n  padding-left: 5px;\r\n  color: #9b0077;\r\n}\r\n\r\n\/* HubSpot form inputs *\/\r\n.hsfc-TextInput,\r\n.hsfc-EmailField input,\r\n.hsfc-TextField input {\r\n  color: #000221 !important;\r\n  font-size: 18px !important;\r\n  height: 45px !important;\r\n  transition: border-bottom .2s ease-in-out, background-color .2s ease-in-out, color .2s ease-in-out !important;\r\n  width: 100% !important;\r\n  background-color: #fff !important;\r\n  border: 1px solid #ccccd3 !important;\r\n  border-radius: 6px !important;\r\n  padding: 10px !important;\r\n}\r\n\r\n.step-buttons {\r\n  margin-top: 30px;\r\n  text-align: center;\r\n  display: flex;\r\n  gap: 12px;\r\n}\r\n\r\n.step-buttons button {\r\n  background-color: #00b4d5;\r\n  border: 1px solid #00b4d5;\r\n  border-radius: 25px;\r\n  font-weight: 600;\r\n  min-height: 40px;\r\n  cursor: pointer;\r\n  width: 100%;\r\n  font-size: 15px;\r\n  text-align: center;\r\n  transition: all .3s;\r\n  fill: #fff;\r\n  color: #fff;\r\n  flex: 1;\r\n}\r\n\r\n.step-buttons button#nextBtn:hover {\r\n  background-color: #0092ad !important;\r\n  color: #fff !important;\r\n}\r\n\r\n.step-buttons button#backBtn {\r\n  background-color: #fff;\r\n  color: #00b4d5;\r\n  border: 1px solid #00b4d5;\r\n}\r\n\r\n.step-buttons button#backBtn:hover {\r\n  background-color: #00b4d5;\r\n  color: #fff;\r\n}\r\n\r\n.hs-form-field {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\n.input-error {\r\n  border-color: red !important;\r\n}\r\n\r\n.hs-error-msgs {\r\n  display: block !important;\r\n  color: red;\r\n  font-size: 14px;\r\n  margin-top: 4px;\r\n}\r\n\r\n\/* HubSpot checkboxes *\/\r\n.hsfc-CheckboxInput,\r\n.hs-input[type=checkbox] {\r\n  appearance: none !important;\r\n  -webkit-appearance: none !important;\r\n  background-color: #fff !important;\r\n  border: 1px solid #717e86 !important;\r\n  border-radius: 4px !important;\r\n  cursor: pointer !important;\r\n  height: 25px !important;\r\n  width: 25px !important;\r\n  min-width: 30px !important;\r\n  transition: background-color .2s ease, border .5s ease !important;\r\n  position: relative !important;\r\n  margin: 0 !important;\r\n  padding: 0 !important;\r\n  flex-shrink: 0 !important;\r\n}\r\n\r\n.hsfc-CheckboxInput:checked,\r\n.hs-input[type=checkbox]:checked {\r\n  background-color: #00b4d5 !important;\r\n  border-color: #00b4d5 !important;\r\n}\r\n\r\n.hsfc-CheckboxInput:checked::after,\r\n.hs-input[type=checkbox]:checked::after {\r\n  background-color: #00b4d5 !important;\r\n  border-radius: 50% !important;\r\n  color: #fff !important;\r\n  content: \"\u2713\" !important;\r\n  display: flex !important;\r\n  border: 1px solid #fff !important;\r\n  font-size: 11px !important;\r\n  justify-content: center !important;\r\n  align-items: center !important;\r\n  left: 50% !important;\r\n  position: absolute !important;\r\n  top: 50% !important;\r\n  transform: translate(-50%, -50%) !important;\r\n  width: 16px !important;\r\n  height: 18px !important;\r\n  line-height: 1 !important;\r\n}\r\n\r\n\/* Remove default gap *\/\r\n[data-hsfc-id=Renderer] .hsfc-CheckboxFieldGroup__Options>*:not(:last-child) {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\n.hsfc-FieldLabel {\r\n  font-size: 14px !important;\r\n  font-weight: 500 !important;\r\n  line-height: 30px !important;\r\n  text-align: left !important;\r\n  color: #33354d !important;\r\n  margin-bottom: 8px !important;\r\n}\r\n\r\n\/* HubSpot navigation buttons *\/\r\n.hsfc-NavigationRow {\r\n  margin-top: 30px !important;\r\n}\r\n\r\n.hsfc-NavigationRow__Buttons {\r\n  display: flex !important;\r\n  gap: 12px !important;\r\n  width: 100% !important;\r\n}\r\n\r\n.hsfc-Button {\r\n  background-color: #00b4d5 !important;\r\n  border: 1px solid #00b4d5 !important;\r\n  border-radius: 25px !important;\r\n  font-weight: 600 !important;\r\n  min-height: 40px !important;\r\n  cursor: pointer !important;\r\n  width: 100% !important;\r\n  font-size: 15px !important;\r\n  text-align: center !important;\r\n  transition: all .3s !important;\r\n  color: #fff !important;\r\n  padding: 10px 20px !important;\r\n  flex: 1 !important;\r\n}\r\n\r\n.hsfc-Button:hover:not(:disabled) {\r\n  background-color: #0092ad !important;\r\n  color: #fff !important;\r\n}\r\n\r\n.hsfc-Button:disabled {\r\n  opacity: 0.6 !important;\r\n  cursor: not-allowed !important;\r\n}\r\n\r\n\/* Focus states *\/\r\n.hsfc-TextInput:focus,\r\n.hsfc-EmailField input:focus {\r\n  background-color: #eaf8fc !important;\r\n  border: 1px solid #00b4d5 !important;\r\n  box-shadow: none !important;\r\n  color: #000221 !important;\r\n  outline: none !important;\r\n}\r\n\r\n\/* Checkbox field groups *\/\r\n.hsfc-CheckboxFieldGroup__Options {\r\n  display: flex !important;\r\n  flex-direction: column !important;\r\n}\r\n\r\n.hsfc-CheckboxFieldGroup label,\r\n.hsfc-CheckboxField label {\r\n  display: flex !important;\r\n  align-items: center !important;\r\n  margin-block: 10px !important;\r\n}\r\n\r\n\/* Step content spacing *\/\r\n.hsfc-Step__Content {\r\n  padding: 20px 0 !important;\r\n}\r\n\r\n.hsfc-Row {\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\nspan.step-label {\r\n  font-size: 13px;\r\n  font-weight: 600;\r\n  color: #33354d;\r\n  text-align: center;\r\n  line-height: 1.2;\r\n}\r\n<\/style>\r\n\r\n<!-- Optimized Multi-step Form JavaScript -->\r\n<script>\r\n(function() {\r\n  'use strict';\r\n  \r\n  const FORM_ID = 'fad19ee8-6305-4d07-b4df-86ec9215440e';\r\n  const STEP_LABELS = ['Produktauswahl', 'Anforderungen', 'Kontaktdaten'];\r\n  \r\n  let formInitialized = false;\r\n  let stepProgressElement = null;\r\n  let formObserver = null;\r\n  let stepObserver = null;\r\n  let updateTimeout = null;\r\n  \r\n  \/\/ Debounce function\r\n  function debounce(func, wait) {\r\n    let timeout;\r\n    return function executedFunction(...args) {\r\n      const later = () => {\r\n        clearTimeout(timeout);\r\n        func(...args);\r\n      };\r\n      clearTimeout(timeout);\r\n      timeout = setTimeout(later, wait);\r\n    };\r\n  }\r\n  \r\n  \/\/ Create step indicators HTML\r\n  function createStepIndicatorsHTML() {\r\n    return `\r\n      <div class=\"steps-container\">\r\n        <div class=\"step-head-container\">\r\n          <div class=\"step-indicator active\">1<\/div>\r\n          <span class=\"step-label\">${STEP_LABELS[0]}<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"steps-container\">\r\n        <div class=\"step-head-container\">\r\n          <div class=\"step-indicator\">2<\/div>\r\n          <span class=\"step-label\">${STEP_LABELS[1]}<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"steps-container\">\r\n        <div class=\"step-head-container\">\r\n          <div class=\"step-indicator\">3<\/div>\r\n          <span class=\"step-label\">${STEP_LABELS[2]}<\/span>\r\n        <\/div>\r\n      <\/div>\r\n    `;\r\n  }\r\n  \r\n  \/\/ Create and insert step progress element\r\n  function createStepProgress() {\r\n    \/\/ Remove existing if any\r\n    if (stepProgressElement && stepProgressElement.parentNode) {\r\n      stepProgressElement.parentNode.removeChild(stepProgressElement);\r\n    }\r\n    \r\n    stepProgressElement = document.createElement('div');\r\n    stepProgressElement.id = 'step-progress';\r\n    stepProgressElement.innerHTML = createStepIndicatorsHTML();\r\n    \r\n    \/\/ Force visibility with inline styles\r\n    stepProgressElement.style.cssText = `\r\n      display: flex !important;\r\n      visibility: visible !important;\r\n      opacity: 1 !important;\r\n      margin: 30px 0 !important;\r\n      text-align: center !important;\r\n      justify-content: space-between !important;\r\n      align-items: center !important;\r\n      width: 100% !important;\r\n      position: relative !important;\r\n      z-index: 10 !important;\r\n      pointer-events: auto !important;\r\n    `;\r\n    \r\n    return stepProgressElement;\r\n  }\r\n  \r\n  \/\/ Insert step progress into DOM\r\n  function insertStepProgress(form) {\r\n    if (!form) return;\r\n    \r\n    const progress = createStepProgress();\r\n    const formContainer = form.parentElement || form.closest('.hs-form-html') || form;\r\n    \r\n    \/\/ Insert before form\r\n    if (formContainer && formContainer.parentNode) {\r\n      formContainer.parentNode.insertBefore(progress, formContainer);\r\n    } else if (form.firstChild) {\r\n      form.insertBefore(progress, form.firstChild);\r\n    } else {\r\n      form.appendChild(progress);\r\n    }\r\n    \r\n    return progress;\r\n  }\r\n  \r\n  \/\/ Update step indicators based on visible step\r\n  function updateStepIndicators() {\r\n    if (!stepProgressElement) return;\r\n    \r\n    const form = document.querySelector(`form[data-form-id=\"${FORM_ID}\"]`);\r\n    if (!form) return;\r\n    \r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    if (steps.length < 3) return;\r\n    \r\n    const indicators = stepProgressElement.querySelectorAll('.step-indicator');\r\n    const containers = stepProgressElement.querySelectorAll('.step-head-container');\r\n    const stepsContainers = stepProgressElement.querySelectorAll('.steps-container');\r\n    if (indicators.length !== 3) return;\r\n    \r\n    let activeStepIndex = -1;\r\n    \r\n    \/\/ Find active step\r\n    steps.forEach((step, index) => {\r\n      const style = window.getComputedStyle(step);\r\n      const isVisible = style.display !== 'none' && \r\n                        style.visibility !== 'hidden' &&\r\n                        step.offsetHeight > 0 &&\r\n                        step.offsetWidth > 0;\r\n      \r\n      if (isVisible) {\r\n        activeStepIndex = index;\r\n      }\r\n    });\r\n    \r\n    \/\/ Update indicators and lines\r\n    if (activeStepIndex >= 0) {\r\n      indicators.forEach((indicator, i) => {\r\n        const container = containers[i];\r\n        const stepContainer = stepsContainers[i];\r\n        \r\n        indicator.classList.remove('active', 'completed');\r\n        if (container) {\r\n          container.classList.remove('completed');\r\n        }\r\n        if (stepContainer) {\r\n          stepContainer.classList.remove('has-completed');\r\n        }\r\n        \r\n        if (i === activeStepIndex) {\r\n          indicator.classList.add('active');\r\n          indicator.textContent = (i + 1).toString();\r\n        } else if (i < activeStepIndex) {\r\n          indicator.classList.add('completed');\r\n          indicator.textContent = '';\r\n          if (container) {\r\n            container.classList.add('completed');\r\n          }\r\n          \/\/ Mark the line as completed\r\n          if (stepContainer) {\r\n            stepContainer.classList.add('has-completed');\r\n          }\r\n        } else {\r\n          indicator.textContent = (i + 1).toString();\r\n        }\r\n      });\r\n    }\r\n  }\r\n  \r\n  \/\/ Throttled update function\r\n  const throttledUpdate = debounce(updateStepIndicators, 150);\r\n  \r\n  \/\/ Ensure step progress is visible and in place\r\n  function ensureStepProgress() {\r\n    const form = document.querySelector(`form[data-form-id=\"${FORM_ID}\"]`);\r\n    if (!form) return false;\r\n    \r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    if (steps.length < 3) return false;\r\n    \r\n    \/\/ Check if step progress exists and is in DOM\r\n    if (!stepProgressElement || !document.body.contains(stepProgressElement)) {\r\n      insertStepProgress(form);\r\n      updateStepIndicators();\r\n      return true;\r\n    }\r\n    \r\n    \/\/ Aggressively ensure it's visible - force inline styles\r\n    stepProgressElement.style.setProperty('display', 'flex', 'important');\r\n    stepProgressElement.style.setProperty('visibility', 'visible', 'important');\r\n    stepProgressElement.style.setProperty('opacity', '1', 'important');\r\n    stepProgressElement.style.setProperty('margin', '30px 0', 'important');\r\n    stepProgressElement.style.setProperty('text-align', 'center', 'important');\r\n    stepProgressElement.style.setProperty('justify-content', 'space-between', 'important');\r\n    stepProgressElement.style.setProperty('align-items', 'center', 'important');\r\n    stepProgressElement.style.setProperty('width', '100%', 'important');\r\n    stepProgressElement.style.setProperty('position', 'relative', 'important');\r\n    stepProgressElement.style.setProperty('z-index', '10', 'important');\r\n    stepProgressElement.style.setProperty('pointer-events', 'auto', 'important');\r\n    \r\n    return true;\r\n  }\r\n  \r\n  \/\/ Setup observers\r\n  function setupObservers(form) {\r\n    \/\/ Clean up existing observers\r\n    if (formObserver) {\r\n      formObserver.disconnect();\r\n    }\r\n    if (stepObserver) {\r\n      stepObserver.disconnect();\r\n    }\r\n    \r\n    \/\/ Aggressive observer to prevent step progress from being hidden\r\n    formObserver = new MutationObserver((mutations) => {\r\n      let shouldReinsert = false;\r\n      let shouldUpdate = false;\r\n      \r\n      mutations.forEach((mutation) => {\r\n        \/\/ Check if step progress was removed\r\n        if (mutation.type === 'childList') {\r\n          mutation.removedNodes.forEach((node) => {\r\n            if (node === stepProgressElement || \r\n                (node.nodeType === 1 && node.contains && node.contains(stepProgressElement))) {\r\n              shouldReinsert = true;\r\n            }\r\n          });\r\n          \r\n          \/\/ Check if new steps were added\r\n          mutation.addedNodes.forEach((node) => {\r\n            if (node.nodeType === 1 && node.classList && node.classList.contains('hsfc-Step')) {\r\n              shouldUpdate = true;\r\n            }\r\n          });\r\n        }\r\n        \r\n        \/\/ Check if step progress visibility was changed\r\n        if (mutation.type === 'attributes' && mutation.target === stepProgressElement) {\r\n          if (mutation.attributeName === 'style') {\r\n            const style = window.getComputedStyle(stepProgressElement);\r\n            if (style.display === 'none' || style.visibility === 'hidden') {\r\n              ensureStepProgress();\r\n            }\r\n          }\r\n        }\r\n        \r\n        \/\/ Check if step visibility changed\r\n        if (mutation.type === 'attributes' && \r\n            mutation.attributeName === 'style' &&\r\n            mutation.target.classList && \r\n            mutation.target.classList.contains('hsfc-Step')) {\r\n          shouldUpdate = true;\r\n        }\r\n      });\r\n      \r\n      \/\/ Immediately re-insert if removed\r\n      if (shouldReinsert) {\r\n        setTimeout(() => {\r\n          ensureStepProgress();\r\n          throttledUpdate();\r\n        }, 0);\r\n      } else if (shouldUpdate) {\r\n        ensureStepProgress();\r\n        throttledUpdate();\r\n      }\r\n    });\r\n    \r\n    \/\/ Observe form and its parent for structure changes\r\n    formObserver.observe(form, {\r\n      childList: true,\r\n      subtree: false,\r\n      attributes: false\r\n    });\r\n    \r\n    \/\/ Also observe the parent container\r\n    if (form.parentElement) {\r\n      formObserver.observe(form.parentElement, {\r\n        childList: true,\r\n        subtree: false,\r\n        attributes: false\r\n      });\r\n    }\r\n    \r\n    \/\/ Observe step progress element itself for style changes\r\n    if (stepProgressElement) {\r\n      formObserver.observe(stepProgressElement, {\r\n        attributes: true,\r\n        attributeFilter: ['style', 'class'],\r\n        childList: false,\r\n        subtree: false\r\n      });\r\n    }\r\n    \r\n    \/\/ Observe steps for visibility changes\r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    steps.forEach((step) => {\r\n      formObserver.observe(step, {\r\n        attributes: true,\r\n        attributeFilter: ['style', 'class'],\r\n        childList: false,\r\n        subtree: false\r\n      });\r\n    });\r\n    \r\n    \/\/ More frequent check to ensure step progress stays visible\r\n    const checkInterval = setInterval(() => {\r\n      if (!ensureStepProgress()) {\r\n        clearInterval(checkInterval);\r\n      }\r\n      throttledUpdate();\r\n    }, 500);\r\n    \r\n    \/\/ Stop checking after form is submitted or 5 minutes\r\n    setTimeout(() => clearInterval(checkInterval), 300000);\r\n  }\r\n  \r\n  \/\/ Aggressive protection: Watch for step progress removal\r\n  function setupAggressiveProtection(form) {\r\n    const protectionObserver = new MutationObserver(() => {\r\n      \/\/ Check if step progress exists\r\n      const existing = document.getElementById('step-progress');\r\n      if (!existing || !document.body.contains(existing)) {\r\n        \/\/ Immediately re-insert\r\n        ensureStepProgress();\r\n        updateStepIndicators();\r\n      } else {\r\n        \/\/ Ensure it's visible\r\n        ensureStepProgress();\r\n      }\r\n    });\r\n    \r\n    \/\/ Observe the entire document body for removals\r\n    protectionObserver.observe(document.body, {\r\n      childList: true,\r\n      subtree: true\r\n    });\r\n    \r\n    \/\/ Also observe the form container\r\n    if (form.parentElement) {\r\n      protectionObserver.observe(form.parentElement, {\r\n        childList: true,\r\n        subtree: true\r\n      });\r\n    }\r\n    \r\n    return protectionObserver;\r\n  }\r\n  \r\n  \/\/ Initialize form\r\n  function initHubSpotForm() {\r\n    if (formInitialized) return;\r\n    \r\n    const form = document.querySelector(`form[data-form-id=\"${FORM_ID}\"]`);\r\n    if (!form) return;\r\n    \r\n    const steps = form.querySelectorAll('.hsfc-Step');\r\n    if (steps.length < 3) return;\r\n    \r\n    \/\/ Hide HubSpot's default progress bars\r\n    const progressBars = form.querySelectorAll('.hsfc-ProgressBar, [role=\"progressbar\"]');\r\n    progressBars.forEach(bar => {\r\n      bar.style.display = 'none';\r\n      bar.style.visibility = 'hidden';\r\n    });\r\n    \r\n    \/\/ Insert step progress\r\n    if (ensureStepProgress()) {\r\n      updateStepIndicators();\r\n      setupObservers(form);\r\n      setupAggressiveProtection(form);\r\n      formInitialized = true;\r\n    }\r\n  }\r\n  \r\n  \/\/ Initialize when DOM is ready\r\n  function startInitialization() {\r\n    if (document.readyState === 'loading') {\r\n      document.addEventListener('DOMContentLoaded', initHubSpotForm);\r\n    } else {\r\n      initHubSpotForm();\r\n    }\r\n    \r\n    \/\/ Retry with exponential backoff\r\n    let attempts = 0;\r\n    const maxAttempts = 20;\r\n    const retryInterval = setInterval(() => {\r\n      attempts++;\r\n      if (formInitialized || attempts >= maxAttempts) {\r\n        clearInterval(retryInterval);\r\n        return;\r\n      }\r\n      initHubSpotForm();\r\n    }, 200);\r\n    \r\n    \/\/ Fallback: watch for form to appear dynamically\r\n    const dynamicFormObserver = new MutationObserver(() => {\r\n      if (!formInitialized) {\r\n        initHubSpotForm();\r\n      }\r\n    });\r\n    \r\n    dynamicFormObserver.observe(document.body, {\r\n      childList: true,\r\n      subtree: true\r\n    });\r\n    \r\n    \/\/ Stop watching after 15 seconds\r\n    setTimeout(() => {\r\n      dynamicFormObserver.disconnect();\r\n    }, 15000);\r\n  }\r\n  \r\n  \/\/ Start initialization\r\n  startInitialization();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ihre Anforderungen. Unsere Expertise. Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum Add-On Potenzialgespr\u00e4ch und profitieren Sie von schnellen Go-Live-Zeiten und ma\u00dfgeschneiderter Unterst\u00fctzung. Wir freuen uns darauf, Ihre Prozesse zu optimieren! Ihre Anforderungen. Unsere Expertise. Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum &hellip; Continued<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":91,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"class_list":["post-20014","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Test Contact form EN &amp; DE - all4cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test Contact form EN &amp; DE - all4cloud\" \/>\n<meta property=\"og:description\" content=\"Ihre Anforderungen. Unsere Expertise. Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum Add-On Potenzialgespr\u00e4ch und profitieren Sie von schnellen Go-Live-Zeiten und ma\u00dfgeschneiderter Unterst\u00fctzung. Wir freuen uns darauf, Ihre Prozesse zu optimieren! Ihre Anforderungen. Unsere Expertise. Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum &hellip; Continued\" \/>\n<meta property=\"og:url\" content=\"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/\" \/>\n<meta property=\"og:site_name\" content=\"all4cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/all4cloud\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-30T11:19:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/all4cloudgroup.com\/app\/uploads\/2024\/06\/DSC01589-1-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/test-remove-me\\\/\",\"url\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/test-remove-me\\\/\",\"name\":\"Test Contact form EN & DE - all4cloud\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/#website\"},\"datePublished\":\"2025-12-04T13:42:22+00:00\",\"dateModified\":\"2026-01-30T11:19:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/test-remove-me\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/test-remove-me\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/test-remove-me\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test Contact form EN &#038; DE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/\",\"name\":\"all4cloud\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/#organization\",\"name\":\"all4cloud Group\",\"alternateName\":\"all4cloud GmbH & Co. KG\",\"url\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/all4cloudgroup.com\\\/app\\\/uploads\\\/2024\\\/07\\\/all4cloud_group_logo.jpeg\",\"contentUrl\":\"https:\\\/\\\/all4cloudgroup.com\\\/app\\\/uploads\\\/2024\\\/07\\\/all4cloud_group_logo.jpeg\",\"width\":200,\"height\":200,\"caption\":\"all4cloud Group\"},\"image\":{\"@id\":\"https:\\\/\\\/all4cloudgroup.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/all4cloud\\\/\",\"https:\\\/\\\/www.instagram.com\\\/all4cloud_group\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/all4cloud-group\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC4XiCHZ4O4Sv5ZqKyNEZirQ\"],\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Altrottstr. 31\",\"postalCode\":\"69190\",\"addressLocality\":\"Walldorf\",\"addressCountry\":\"DE\"},\"description\":\"all4cloud is an SAP Gold Partner specializing in the implementation, support, and optimization of SAP Cloud ERP (SAP S\\\/4HANA Cloud, Public Edition) and SAP Business ByDesign for small and medium-sized enterprises. Since 2015, all4cloud has helped more than 200 mid-sized companies move to the cloud.\",\"email\":\"info@all4cloudgroup.com\",\"telephone\":\"+49 6204 91492-00\",\"legalName\":\"all4cloud GmbH & Co. KG\",\"foundingDate\":\"2015-01-01\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Test Contact form EN & DE - all4cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/","og_locale":"en_US","og_type":"article","og_title":"Test Contact form EN & DE - all4cloud","og_description":"Ihre Anforderungen. Unsere Expertise. Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum Add-On Potenzialgespr\u00e4ch und profitieren Sie von schnellen Go-Live-Zeiten und ma\u00dfgeschneiderter Unterst\u00fctzung. Wir freuen uns darauf, Ihre Prozesse zu optimieren! Ihre Anforderungen. Unsere Expertise. Ihre Anforderungen sind einzigartig \u2013 unsere Expertise auch. Sichern Sie sich einen Termin zum &hellip; Continued","og_url":"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/","og_site_name":"all4cloud","article_publisher":"https:\/\/www.facebook.com\/all4cloud\/","article_modified_time":"2026-01-30T11:19:49+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/all4cloudgroup.com\/app\/uploads\/2024\/06\/DSC01589-1-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/","url":"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/","name":"Test Contact form EN & DE - all4cloud","isPartOf":{"@id":"https:\/\/all4cloudgroup.com\/en\/#website"},"datePublished":"2025-12-04T13:42:22+00:00","dateModified":"2026-01-30T11:19:49+00:00","breadcrumb":{"@id":"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/all4cloudgroup.com\/en\/test-remove-me\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/all4cloudgroup.com\/en\/test-remove-me\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/all4cloudgroup.com\/en\/"},{"@type":"ListItem","position":2,"name":"Test Contact form EN &#038; DE"}]},{"@type":"WebSite","@id":"https:\/\/all4cloudgroup.com\/en\/#website","url":"https:\/\/all4cloudgroup.com\/en\/","name":"all4cloud","description":"","publisher":{"@id":"https:\/\/all4cloudgroup.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/all4cloudgroup.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/all4cloudgroup.com\/en\/#organization","name":"all4cloud Group","alternateName":"all4cloud GmbH & Co. KG","url":"https:\/\/all4cloudgroup.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/all4cloudgroup.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/all4cloudgroup.com\/app\/uploads\/2024\/07\/all4cloud_group_logo.jpeg","contentUrl":"https:\/\/all4cloudgroup.com\/app\/uploads\/2024\/07\/all4cloud_group_logo.jpeg","width":200,"height":200,"caption":"all4cloud Group"},"image":{"@id":"https:\/\/all4cloudgroup.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/all4cloud\/","https:\/\/www.instagram.com\/all4cloud_group\/","https:\/\/www.linkedin.com\/company\/all4cloud-group\/","https:\/\/www.youtube.com\/channel\/UC4XiCHZ4O4Sv5ZqKyNEZirQ"],"address":{"@type":"PostalAddress","streetAddress":"Altrottstr. 31","postalCode":"69190","addressLocality":"Walldorf","addressCountry":"DE"},"description":"all4cloud is an SAP Gold Partner specializing in the implementation, support, and optimization of SAP Cloud ERP (SAP S\/4HANA Cloud, Public Edition) and SAP Business ByDesign for small and medium-sized enterprises. Since 2015, all4cloud has helped more than 200 mid-sized companies move to the cloud.","email":"info@all4cloudgroup.com","telephone":"+49 6204 91492-00","legalName":"all4cloud GmbH & Co. KG","foundingDate":"2015-01-01"}]}},"_links":{"self":[{"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/pages\/20014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/comments?post=20014"}],"version-history":[{"count":297,"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/pages\/20014\/revisions"}],"predecessor-version":[{"id":21578,"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/pages\/20014\/revisions\/21578"}],"wp:attachment":[{"href":"https:\/\/all4cloudgroup.com\/en\/wp-json\/wp\/v2\/media?parent=20014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}