{"id":14575,"date":"2026-11-03T13:43:47","date_gmt":"2026-11-03T12:43:47","guid":{"rendered":"https:\/\/skyeredtechnology.de\/homepage-test\/projekte-cloud-migration-pharma\/"},"modified":"2026-11-03T14:49:09","modified_gmt":"2026-11-03T13:49:09","slug":"projekte-cloud-migration-pharma","status":"publish","type":"page","link":"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte-cloud-migration-pharma\/","title":{"rendered":"Medizinbranche | Sky-E Red Technology"},"content":{"rendered":"<meta name=\"robots\" content=\"noindex, nofollow\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@600;700&#038;family=Barlow:wght@400;500;600&#038;display=swap\">\n<style>\nbutton,[type=button],[type=submit],[type=reset]{color:inherit;background:none;border:0;\npadding:0;border-radius:0;font:inherit;line-height:inherit;text-transform:none;letter-spacing:inherit;\nbox-shadow:none;white-space:normal}\nbutton:hover,button:focus,[type=button]:hover,[type=button]:focus,[type=submit]:hover,[type=submit]:focus{\nbackground-color:transparent;color:inherit;text-decoration:none}\n\/* ==========================================================================\n   Sky-E Red Education \u2014 design system (\"Tonal\")\n   Style reference: more-nutrition.webflow.io, in our brand colours.\n   One hue in tones: a light red-tinted ground, a mid tint for cards and the\n   hero, wine for text and dark buttons, red as the accent. Condensed grotesk\n   headings (Barlow Condensed), Barlow for text. Pill buttons with a small\n   arrow circle, round badges, rounded cards, centred sections, lots of air.\n   One motion: buttons change colour on hover. Nothing animates on scroll.\n   Mobile-first. Components with snippets: COMPONENTS.md.\n   Order: tokens, base, layout, buttons, header\/nav, footer, heroes,\n   components, utilities.\n   ========================================================================== *\/\n\n\/* ---------- Tokens ---------- *\/\n:root {\n  --ground: #ffffff;     \/* page ground: white (Ilyas 2026-11-03: more white; tint only as accent) *\/\n  --tint: #ebd3d6;       \/* mid tint: hero, cards on ground *\/\n  --tint-soft: #f1e2e4;  \/* alternate section ground *\/\n  --tint-deep: #ddb6bc;  \/* hover on tint, hairlines (decorative only) *\/\n  --white: #ffffff;      \/* cards on tint, photo borders *\/\n  --wine: #000000;       \/* brand black (2026-11-02): text, headings, dark buttons, dark band *\/\n  --red: #950900;        \/* brand red #950900: markers, active states, focus, button hover *\/\n  --rose: #008c95;       \/* brand turquoise: second tone of a display headline (large text only) *\/\n  --teal: #008c95;       \/* brand turquoise #008C95; white on it ~4.1:1 (large\/bold only), black on it 5.2:1 *\/\n  --muted: #5a3a40;      \/* secondary text *\/\n  --on-wine: #ffffff;\n  --on-wine-soft: #d6d6d6;\n  \/* Contrast (WCAG): wine on ground 14.4, on tint 11.5, on white 16.3; muted on ground 7.5,\n     on tint 6.0; red on ground 6.5, on tint 5.2; rose on ground 4.2, on tint 3.4 (display\n     sizes only); white on wine 16.3, on red 7.4; #f2c9cf on wine 10.9. *\/\n\n  --font: \"Barlow\", \"Helvetica Neue\", Arial, sans-serif;\n  --font-display: \"Barlow Condensed\", \"Arial Narrow\", \"Helvetica Neue\", Arial, sans-serif;\n  --fs-sm: 0.875rem;\n  --fs-base: 1.0625rem;\n  --fs-md: 1.25rem;\n  --fs-lg: clamp(1.1875rem, 1.1rem + 0.4vw, 1.4375rem);\n  --fs-h3: clamp(1.5rem, 1.35rem + 0.6vw, 1.875rem);\n  --fs-h2: clamp(2.25rem, 1.4rem + 3.4vw, 4.25rem);\n  --fs-h1: clamp(2.75rem, 1.6rem + 4.8vw, 5.5rem);\n  --fs-display: clamp(3.25rem, 1.4rem + 7.6vw, 7rem);\n\n  --gutter: 16px;\n  --container: 72rem;\n  --gap: clamp(1rem, 2.4vw, 1.75rem);\n  --section-y: clamp(4rem, 2.5rem + 6vw, 8rem);\n  --r-card: 12px;\n  --r-pill: 999px;\n  --header-h: 72px;\n  --measure: 66ch;\n  --arrow-wine: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23490009' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 11 5M6.5 5H11v4.5'\/%3E%3C\/svg%3E\");\n  --arrow-white: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 11 5M6.5 5H11v4.5'\/%3E%3C\/svg%3E\");\n}\n@media (min-width: 768px) { :root { --gutter: 32px; --header-h: 84px; } }\n\n\/* ---------- Base ---------- *\/\n*, *::before, *::after { box-sizing: border-box; }\nhtml { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }\n@media (min-width: 1024px) { html { font-size: 105.88%; } } \/* 18px body on desktop *\/\nbody {\n  margin: 0; font-family: var(--font); font-size: var(--fs-base); line-height: 1.6;\n  color: var(--wine); background: var(--ground);\n  -webkit-font-smoothing: antialiased; overflow-x: clip;\n}\nimg, svg, video, iframe { max-width: 100%; }\nimg { height: auto; display: block; }\nh1, h2, h3, h4 {\n  margin: 0 0 0.5em; font-family: var(--font-display); font-weight: 700; color: var(--wine);\n  line-height: 0.98; letter-spacing: -0.015em; overflow-wrap: break-word; text-wrap: balance;\n  hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 12 6 6;\n}\nh1 { font-size: var(--fs-h1); letter-spacing: -0.025em; line-height: 0.92; }\nh2 { font-size: var(--fs-h2); letter-spacing: -0.02em; line-height: 0.95; }\nh3 { font-size: var(--fs-h3); font-weight: 600; line-height: 1.05; }\nh4 { font-size: var(--fs-md); font-weight: 600; }\np { margin: 0 0 1em; max-width: var(--measure); }\np:last-child { margin-bottom: 0; }\na { color: var(--wine); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }\na:hover { color: var(--red); }\nstrong { font-weight: 600; }\nul, ol { margin: 0 0 1em; padding-left: 1.25em; }\nli { max-width: var(--measure); }\n:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }\n.section--dark :focus-visible, .footer-cta :focus-visible { outline-color: var(--white); } \/* red on wine is too faint *\/\n::selection { background: var(--wine); color: #fff; }\n\n.tone { color: var(--rose); display: block; } \/* second tone of a display headline: max 1\u20132 per site page *\/\n.skip-link {\n  position: absolute; left: 12px; top: -60px; z-index: 200; border-radius: var(--r-pill);\n  background: var(--wine); color: #fff; padding: 10px 18px; font-weight: 600; text-decoration: none;\n}\n.skip-link:focus { top: 12px; color: #fff; }\n.sr-only {\n  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;\n  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;\n}\n\n\/* ---------- Layout ---------- *\/\n.container { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }\n.container--narrow > * { max-width: 48rem; margin-inline: auto; }\n.section { padding-block: var(--section-y); position: relative; }\n.section--tight { padding-block: calc(var(--section-y) * 0.6); }\n.section--alt { background: var(--tint-soft); }\n.section--dark { background: var(--wine); color: var(--on-wine-soft); }\n.section--dark :is(h1, h2, h3, h4, strong) { color: var(--on-wine); }\n.section--dark a:not(.btn) { color: var(--on-wine); }\n\n\/* Section heading: centred above the content. *\/\n.section__head { text-align: center; max-width: 54rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); }\n.section__head > :last-child { margin-bottom: 0; }\n.section__head p { margin-inline: auto; max-width: 46rem; }\n.section__head h2 + p { margin-top: 1.25rem; }\n.section--dark .section__head p { color: var(--on-wine-soft); }\n.section__head--row .text-link { display: inline-block; margin-top: 1.25rem; }\n.section__head img { margin: 0 auto; width: 100%; max-width: 22rem; background: var(--white); border-radius: var(--r-card); padding: 1rem 1.5rem; }\n.section__head + .stack, .section__head + .checklist:not(.checklist--cards) { max-width: 46rem; margin-inline: auto; }\n.section__head ~ .btn-row { justify-content: center; }\n\n.h-small { font-size: var(--fs-h3); }\n.lead { font-size: var(--fs-lg); line-height: 1.45; }\n.muted { color: var(--muted); }\n.section--dark .lead { color: var(--on-wine); }\n\n.grid { display: grid; gap: var(--gap); }\n@media (min-width: 640px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) {\n  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n  .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }\n}\n\n\/* Two columns: text + media (6\/6), wide text (7\/5), reversed, top-aligned. *\/\n.split { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }\n@media (min-width: 900px) {\n  .split { grid-template-columns: repeat(12, minmax(0, 1fr)); }\n  .split > :first-child { grid-column: 1 \/ 7; }\n  .split > :last-child { grid-column: 7 \/ -1; }\n  .split--wide-text > :first-child { grid-column: 1 \/ 8; }\n  .split--wide-text > :last-child { grid-column: 8 \/ -1; }\n  .split--reverse > :first-child { order: 2; grid-column: 7 \/ -1; }\n  .split--reverse > :last-child { order: 1; grid-column: 1 \/ 7; }\n  .split--top { align-items: start; }\n}\n.split h2:not(.h-small), .grid h2:not(.h-small) { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.25rem); }\n\n\/* Photos: rounded, white border. *\/\n.split__media img, .media-frame img, .photo-frame img, .page-hero__media img {\n  width: 100%; border: 6px solid var(--white); border-radius: var(--r-card); background: var(--white);\n}\n.photo-frame { margin: 0; }\n.photo-frame img { border-width: 8px; border-radius: 14px; aspect-ratio: 4 \/ 3; object-fit: cover; }\n.photo-frame--tilt { transform: rotate(-2.5deg); }\n\n\/* ---------- Buttons: pill with a small arrow circle ---------- *\/\n.btn {\n  --btn-bg: var(--wine); --btn-fg: var(--white); --btn-dot: var(--white); --btn-arrow: var(--arrow-wine);\n  display: inline-flex; align-items: center; justify-content: center; gap: 0.7rem;\n  min-height: 52px; padding: 0.375rem 1.5rem 0.375rem 0.375rem; border: 0; border-radius: var(--r-pill);\n  background: var(--btn-bg); color: var(--btn-fg);\n  font: 600 1.125rem\/1.1 var(--font-display); letter-spacing: 0.01em; text-decoration: none; text-align: center;\n  cursor: pointer; transition: background-color 0.15s ease-out, color 0.15s ease-out;\n}\n.btn::before {\n  content: \"\"; flex: none; width: 2.5rem; height: 2.5rem; border-radius: 50%;\n  background: var(--btn-dot) var(--btn-arrow) center \/ 1rem no-repeat;\n}\n.btn:hover, .btn:active { --btn-bg: var(--red); color: var(--btn-fg); }\n.btn--lg { min-height: 60px; font-size: 1.3125rem; padding-right: 1.75rem; }\n.btn--lg::before { width: 3rem; height: 3rem; background-size: 1.125rem; }\n.btn--sm { min-height: 46px; font-size: 1.0625rem; padding-right: 1.15rem; }\n.btn--sm::before { width: 2.125rem; height: 2.125rem; background-size: 0.875rem; }\n.btn--outline { --btn-bg: var(--tint); --btn-fg: var(--wine); --btn-dot: var(--wine); --btn-arrow: var(--arrow-white); }\n.btn--outline:hover, .btn--outline:active { --btn-bg: var(--tint-deep); color: var(--wine); }\n.section--alt .btn--outline, .hero .btn--outline, .page-hero .btn--outline { --btn-bg: var(--white); }\n.btn--light { --btn-bg: var(--white); --btn-fg: var(--wine); --btn-dot: var(--wine); --btn-arrow: var(--arrow-white); }\n.btn--light:hover, .btn--light:active { --btn-bg: var(--tint); color: var(--wine); }\n.btn-row { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 2rem; }\n.text-link { font-weight: 600; }\n\n\/* ---------- Header & navigation ---------- *\/\n.ser-site-header { position: sticky; top: 0; z-index: 100; background: var(--ground); border-bottom: 1px solid #efe3e5; }\n.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: var(--header-h); }\n.brand { display: inline-flex; align-items: center; text-decoration: none; flex: none; }\n.brand img { height: calc(var(--header-h) - 22px); width: auto; }\n\n.nav { display: none; }\n.nav__list { display: flex; align-items: center; gap: 0.375rem; list-style: none; margin: 0; padding: 0; }\n.nav__link, .nav__toggle {\n  display: inline-flex; align-items: center; gap: 0.3rem; min-height: 40px; padding: 0.4rem 0.95rem;\n  background: var(--tint); border: 0; border-radius: var(--r-pill); cursor: pointer;\n  font: 600 1.0625rem\/1.1 var(--font-display); color: var(--wine); text-decoration: none; white-space: nowrap;\n}\n.nav__link:hover, .nav__toggle:hover, .nav__item.is-open > .nav__toggle { background: var(--tint-deep); color: var(--wine); }\n.nav__link[aria-current=\"page\"], .nav__item[data-current] > .nav__toggle { background: var(--wine); color: var(--white); }\n.nav__toggle::after {\n  content: \"\"; width: 0.4rem; height: 0.4rem; margin: -0.2rem 0 0 0.15rem;\n  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);\n}\n.nav__item.is-open > .nav__toggle::after { transform: rotate(-135deg); margin-top: 0.2rem; }\n.nav__item { position: relative; }\n.nav__menu {\n  position: absolute; top: calc(100% + 8px); left: 0; min-width: 300px; max-width: 380px;\n  list-style: none; margin: 0; padding: 0.5rem; background: var(--white); border-radius: var(--r-card); display: none;\n}\n.nav__menu::before { content: \"\"; position: absolute; inset: -12px 0 auto; height: 12px; } \/* hover bridge *\/\n.nav__item.is-open > .nav__menu { display: block; }\n.nav__menu a {\n  display: block; padding: 0.6rem 0.85rem; border-radius: 8px; text-decoration: none;\n  color: var(--wine); font-size: 0.9375rem; font-weight: 500; line-height: 1.35;\n}\n.nav__menu a:hover, .nav__menu a:focus-visible { background: var(--tint-soft); color: var(--wine); }\n.nav__menu a[aria-current=\"page\"] { background: var(--tint); }\n.header-cta { display: none; }\n\n.burger {\n  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;\n  border-radius: 50%; border: 0; background: var(--tint); cursor: pointer; color: var(--wine);\n}\n.burger span, .burger span::before, .burger span::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; }\n.burger span::before, .burger span::after { content: \"\"; position: absolute; left: 0; }\n.burger span::before { top: -6px; }\n.burger span::after { top: 6px; }\n.burger[aria-expanded=\"true\"] span { background: transparent; }\n.burger[aria-expanded=\"true\"] span::before { transform: translateY(6px) rotate(45deg); }\n.burger[aria-expanded=\"true\"] span::after { transform: translateY(-6px) rotate(-45deg); }\n\n.mobile-nav {\n  position: fixed; inset: var(--header-h) 0 0 0; z-index: 99; background: var(--ground);\n  overflow-y: auto; overscroll-behavior: contain; padding: 0.5rem var(--gutter) 2.5rem;\n}\n.mobile-nav[hidden] { display: none; }\n.mobile-nav__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }\n.mobile-nav__list > li { max-width: none; background: var(--tint); border-radius: var(--r-card); }\n.mobile-nav__link, .mobile-nav__toggle {\n  display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px;\n  min-height: 56px; padding: 0.75rem 1.1rem; background: none; border: 0; cursor: pointer; text-align: left;\n  font: 600 1.375rem\/1.15 var(--font-display); color: var(--wine); text-decoration: none;\n}\n.mobile-nav__link[aria-current=\"page\"] { text-decoration: underline; text-decoration-thickness: 2px; }\n.mobile-nav__toggle::after { content: \"+\"; font-size: 1.5rem; font-weight: 500; }\n.mobile-nav__toggle[aria-expanded=\"true\"]::after { content: \"\\2212\"; }\n.mobile-nav__sub { list-style: none; margin: 0; padding: 0 0.5rem 0.75rem; }\n.mobile-nav__sub[hidden] { display: none; }\n.mobile-nav__sub a { display: block; padding: 0.6rem 0.75rem; border-radius: 8px; color: var(--wine); text-decoration: none; font-weight: 500; line-height: 1.4; }\n.mobile-nav__sub a[aria-current=\"page\"] { background: var(--white); }\n.mobile-nav .btn { width: 100%; margin-top: 1.5rem; }\nbody.nav-open { overflow: hidden; }\n\n@media (min-width: 1180px) {\n  .site-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; }\n  .nav { display: block; }\n  .header-cta { display: inline-flex; justify-self: end; }\n  .burger, .mobile-nav { display: none !important; }\n}\n\n\/* ---------- Footer ---------- *\/\n.ser-site-footer { background: var(--tint); color: var(--wine); font-size: 0.9375rem; }\n.ser-site-footer a:not(.btn) { color: var(--wine); text-decoration: none; }\n.ser-site-footer a:not(.btn):hover { color: var(--red); text-decoration: underline; }\n.footer-cta { background: var(--wine); color: var(--on-wine-soft); padding-block: clamp(3.5rem, 7vw, 6rem); text-align: center; }\n.footer-cta__inner { display: flex; flex-direction: column; align-items: center; gap: 2rem; }\n.footer-cta h2 { color: var(--white); margin-bottom: 0.4em; }\n.footer-cta p { margin: 0 auto 0.35em; font-size: var(--fs-md); line-height: 1.4; max-width: 40rem; }\n.footer-cta strong { color: var(--white); }\n.footer-grid { display: grid; gap: 2.5rem var(--gap); padding-block: clamp(3rem, 5vw, 4.5rem) 3rem; grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 640px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .footer-grid > :nth-child(1) { grid-column: span 3; } .footer-grid > :nth-child(2) { grid-column: span 4; } .footer-grid > :nth-child(3) { grid-column: span 3; } .footer-grid > :nth-child(4) { grid-column: span 2; } }\n.footer-brand img { width: 64px; height: auto; margin-bottom: 1.25rem; }\n.footer-title { font: 700 1.25rem\/1.1 var(--font-display); text-transform: uppercase; letter-spacing: 0.01em; margin: 0 0 0.85rem; }\n.footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }\n.footer-contact li { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 0.75rem; }\n.footer-label { color: var(--wine); font-size: var(--fs-sm); }\n.footer-list--sub { padding-left: 0.9rem; gap: 0.4rem; margin-top: 0.5rem; }\n.footer-bottom {\n  border-top: 1px solid var(--tint-deep); padding-block: 1.25rem;\n  display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: center; justify-content: space-between;\n}\n.social { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }\n.ser-site-footer .social a {\n  display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border-radius: var(--r-pill);\n  background: var(--ground); font-weight: 500;\n}\n.ser-site-footer .social a:hover { text-decoration: none; background: var(--white); }\n\n\/* ---------- Fact box (class name kept: kursblatt) ----------\n   The course facts as rounded tiles: small label, value in the display face.\n   The one key figure (.kursblatt__big) spans the full width on top. Seals in a\n   white strip at the foot. Only facts that are on the same page. *\/\n.kursblatt { width: 100%; }\n.kursblatt__rows { display: flex; flex-wrap: wrap; gap: 0.625rem; margin: 0; }\n.kursblatt__row {\n  flex: 1 1 15rem; display: flex; flex-direction: column; justify-content: center; gap: 0.3rem;\n  padding: 1rem 1.25rem; background: var(--white); border-radius: var(--r-card); text-align: center;\n}\n.kursblatt__row:has(.kursblatt__big) { flex-basis: 100%; order: -1; padding-block: 1.25rem; }\n@media (max-width: 639px) { .kursblatt__row { flex-basis: 9.5rem; padding: 0.85rem 0.75rem; } .kursblatt__row:first-child { flex-basis: 100%; } .kursblatt dd { font-size: 1.1875rem; } }\n.kursblatt dt { font-size: var(--fs-sm); font-weight: 500; color: var(--muted); line-height: 1.3; }\n.kursblatt dd { margin: 0; font: 600 1.3125rem\/1.15 var(--font-display); color: var(--wine); overflow-wrap: anywhere; }\n.kursblatt dd.kursblatt__big { font-size: clamp(2.5rem, 1.8rem + 2.6vw, 3.75rem); font-weight: 700; line-height: 0.95; letter-spacing: -0.02em; }\n.kursblatt__seals {\n  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2rem;\n  margin-top: 0.625rem; padding: 1rem 1.25rem; background: var(--white); border-radius: var(--r-card);\n}\n.kursblatt__seals img { height: 56px; width: auto; }\n.kursblatt__seals img.is-wide { height: 44px; }\n\n\/* ---------- Hero (homepage) ---------- *\/\n.hero { background: var(--tint); padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3.5rem, 7vw, 6rem); }\n.hero__top { text-align: center; }\n.hero__top h1 { font-size: var(--fs-display); margin: 0 auto; max-width: 12em; }\n.hero__top .btn-row { justify-content: center; margin-top: clamp(1.75rem, 3vw, 2.5rem); }\n.hero__row { display: grid; gap: 2.5rem; align-items: center; margin-top: clamp(3rem, 6vw, 5rem); }\n.hero__media { position: relative; }\n.hero__lead { font: 700 clamp(1.75rem, 1.2rem + 2vw, 2.75rem)\/1 var(--font-display); letter-spacing: -0.01em; margin-bottom: 1rem; max-width: 18em; text-wrap: balance; }\n.hero__note { margin-top: 1.25rem; font-weight: 500; }\n.hero > .container > .kursblatt { max-width: 56rem; margin: clamp(3rem, 6vw, 4.5rem) auto 0; }\n@media (min-width: 960px) {\n  .hero__row { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(3rem, 5vw, 5rem); }\n  .hero__media .photo-frame { margin-left: 7.5rem; }  \/* badges overlap the frame by about 1.5rem *\/\n}\n\n\/* Round badges (class names: stats \/ stat). Only figures that are on the page. *\/\n.stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }\n.stat {\n  --d: 12rem;\n  width: var(--d); height: var(--d); border-radius: 50%; background: var(--tint); flex: none;\n  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem;\n  padding: 1.25rem; text-align: center;\n}\n.section--alt .stat, .page-hero .stat { background: var(--white); }\n.stat__value { display: block; font: 700 clamp(2.25rem, 1.8rem + 1.4vw, 3rem)\/0.95 var(--font-display); letter-spacing: -0.02em; color: var(--wine); }\n.stat__label { display: block; font-size: 0.875rem; line-height: 1.3; color: var(--wine); hyphens: auto; }\n@media (min-width: 640px) { .stat { --d: 13.5rem; } }\n.page-hero .stats { margin-top: 2.5rem; }\n\n\/* Hero badges: three small circles on the photo's left edge (stacked on desktop, a row below on phones). *\/\n.stats--hero { position: relative; z-index: 1; flex-wrap: nowrap; gap: 0.5rem; margin-top: -2.5rem; }\n.stats--hero .stat { --d: min(8.5rem, 28vw); background: var(--ground); padding: 0.5rem; gap: 0.15rem; }\n.stats--hero .stat__value { font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem); }\n.stats--hero .stat__label { font-size: clamp(0.6875rem, 0.6rem + 0.35vw, 0.875rem); font-weight: 500; }\n@media (min-width: 960px) {\n  .stats--hero { position: absolute; left: 0; top: 50%; transform: translateY(-50%); flex-direction: column; margin: 0; gap: 0.75rem; }\n  .stats--hero .stat { --d: 9rem; }\n  .stats--hero .stat:nth-child(2) { margin-left: 1.5rem; }\n}\n\n\/* ---------- Page hero (course and sub pages): centred, facts below ---------- *\/\n.page-hero { background: var(--tint); padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5.5rem); text-align: center; }\n.page-hero h1 { margin-inline: auto; max-width: 16em; margin-bottom: 1.5rem; }\n.page-hero p { margin-inline: auto; max-width: 44rem; }\n.page-hero .btn-row { justify-content: center; }\n.page-hero__grid { display: flex; flex-direction: column; align-items: center; }\n.page-hero__grid > .kursblatt { max-width: 56rem; margin-top: clamp(2.5rem, 5vw, 3.5rem); }\n.page-hero--simple { padding-block: clamp(2.5rem, 5vw, 4.5rem); }\n.page-hero--simple h1 { margin-bottom: 0; }\n.page-hero--simple .lead { margin-top: 1.25rem; }\n.breadcrumb { font-size: var(--fs-sm); margin: 0 auto 1.5rem; color: var(--muted); }\n.breadcrumb a { color: var(--muted); }\n\n\/* Facts: small pills (job facts, short claims) *\/\n.facts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }\n.facts li { padding: 0.45rem 1rem; border-radius: var(--r-pill); background: var(--tint); font-weight: 500; max-width: none; }\n.section--alt .facts li { background: var(--white); }\n\n\/* ---------- Lists ---------- *\/\n.checklist { list-style: none; margin: 0 0 1.25em; padding: 0; display: grid; gap: 0.6rem; text-align: left; }\n.checklist li { position: relative; padding-left: 1.4rem; line-height: 1.5; }\n.checklist li::before { content: \"\"; position: absolute; left: 0; top: 0.5em; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--red); }\n.section--dark .checklist li::before { background: var(--on-wine); }\n\n\/* Two columns of rounded rows *\/\n.checklist--cols { gap: 0.5rem var(--gap); }\n@media (min-width: 640px) { .checklist--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n\n\/* Feature tiles: rounded mid-tint cards, centred uppercase titles *\/\n.checklist--cards { gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }\n.checklist--cards li {\n  display: flex; align-items: center; justify-content: center; min-height: 7.5rem; padding: 1.25rem 1rem;\n  background: var(--tint); border-radius: var(--r-card); text-align: center; max-width: none;\n  font: 700 1.4375rem\/1.02 var(--font-display); text-transform: uppercase; letter-spacing: 0; font-variant-ligatures: none;\n  hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; \/* whole words only; long compounds carry &shy; *\/\n}\n.checklist--cards li::before { display: none; }\n.checklist--cards strong { font-weight: 700; }\n.section--alt .checklist--cards li, .card--feature .checklist--cards li { background: var(--white); }\n@media (max-width: 639px) { .checklist--cards:not(.checklist--single) { grid-template-columns: repeat(2, minmax(0, 1fr)); } .checklist--cards li { font-size: 1.125rem; min-height: 6rem; padding: 1rem 0.5rem; } }\n\/* One column: rounded rows, normal text *\/\n.checklist--single { grid-template-columns: minmax(0, 1fr) !important; }\n.checklist--single li {\n  display: block; min-height: 0; padding: 0.9rem 1.25rem 0.9rem 2.6rem; text-align: left;\n  font: 500 1.0625rem\/1.5 var(--font); text-transform: none;\n}\n.checklist--single li::before { display: block; left: 1.25rem; top: calc(0.9rem + 0.5em); }\n.checklist--single strong { font-weight: 600; }\n\n\/* ---------- Cards ---------- *\/\n.card { display: flex; flex-direction: column; gap: 0.75rem; margin: 0; }\na.card { text-decoration: none; color: inherit; background: var(--tint); border-radius: var(--r-card); padding: 0.5rem 0.5rem 1.5rem; }\n.section--alt a.card { background: var(--white); }\na.card:hover h3 { color: var(--red); }\n.card__media { aspect-ratio: 16 \/ 9; overflow: hidden; border-radius: 8px; background: var(--white); }\n.card__media img { width: 100%; height: 100%; object-fit: cover; }\n.card__body { display: flex; flex-direction: column; gap: 0.5rem; flex: 1; padding-inline: 1rem; }\n.card h3 { margin: 0; font-size: clamp(1.375rem, 1.2rem + 0.5vw, 1.625rem); text-transform: uppercase; font-weight: 700; hyphens: manual; -webkit-hyphens: manual; }\n.card__meta { font-size: var(--fs-sm); font-weight: 500; color: var(--muted); }\n.card__logo { height: 44px; width: auto; max-width: 70%; object-fit: contain; align-self: center; margin-bottom: 0.25rem; }\n.card__foot { margin-top: auto; padding-top: 0.5rem; font-weight: 600; text-decoration: underline; }\n\/* Feature card: mid-tint card with an uppercase title, like the reference's \"MORE TASTE\" cards.\n   Text stays left-aligned because most of these cards carry several lines; a card with a source\n   logo on top (short claim + number) is centred like the reference. *\/\n.card--feature {\n  background: var(--tint); border-radius: var(--r-card); padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.25rem, 2.6vw, 2rem);\n}\n.card--feature:has(.card__logo) { text-align: center; align-items: center; }\n.card--feature:has(.card__logo) > * { margin-inline: auto; }\n.card--feature .checklist { margin: 0.25rem 0 0; align-self: stretch; }\n.card--feature h2.h-small { font-size: var(--fs-h3); text-transform: uppercase; margin-bottom: 0.25rem; }\n.section--alt .card--feature { background: var(--white); }\n.section--dark .card--feature { background: rgba(255, 255, 255, 0.08); }\n\n\/* Certificates *\/\n.cert-card { display: grid; gap: 1.25rem var(--gap); align-items: center; background: var(--tint); border-radius: var(--r-card); padding: 1.25rem; margin: 0; }\n.section--alt .cert-card { background: var(--white); }\n@media (min-width: 900px) { .cert-card--wide { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem; padding: 2rem; } }\n.cert-card__media { display: grid; place-items: center; background: var(--white); border-radius: 8px; padding: 0.75rem; min-height: 0; }\n.cert-card__media img { max-height: 150px; width: auto; max-width: 100%; object-fit: contain; }\n.cert-card--compact { grid-template-columns: 8rem minmax(0, 1fr); gap: 1.25rem; padding: 0.75rem; }\n.cert-card--compact .cert-card__media img { max-height: 52px; }\n@media (max-width: 399px) { .cert-card--compact { grid-template-columns: 6.5rem minmax(0, 1fr); } }\n.cert-card h3 { margin-bottom: 0.4rem; text-transform: uppercase; font-weight: 700; }\n.cert-card__label { font-size: var(--fs-sm); color: var(--muted); margin: 0 0 0.2rem; }\n.cert-card__code { font: 600 1.25rem\/1.15 var(--font-display); overflow-wrap: anywhere; }\n\n\/* Seal row *\/\n.seal-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }\n.seal { display: flex; align-items: center; justify-content: center; height: 96px; padding: 0.75rem 1.25rem; background: var(--white); border-radius: var(--r-card); }\n.seal img { max-height: 72px; width: auto; max-width: 200px; object-fit: contain; }\n\n\/* Testimonials: white cards *\/\n.quotes { display: grid; gap: var(--gap); }\n@media (min-width: 720px) { .quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.quote-card { margin: 0; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--white); border-radius: var(--r-card); display: flex; flex-direction: column; gap: 1.25rem; }\n.quote-card blockquote { margin: 0; font-size: var(--fs-md); font-weight: 500; line-height: 1.45; }\n.quote-card figcaption { display: flex; flex-wrap: wrap; gap: 0.15rem 0.75rem; align-items: baseline; margin-top: auto; }\n.quote-card__name { font: 700 1.25rem\/1.1 var(--font-display); text-transform: uppercase; }\n.quote-card__source { font-size: var(--fs-sm); color: var(--muted); }\n.stars { display: none; } \/* the text \"5\/5 auf Trustpilot\" carries the rating *\/\n\n\/* Steps: cards with a round number on the top edge *\/\n.steps { list-style: none; margin: 0; padding: 1.75rem 0 0; display: grid; gap: 2.75rem var(--gap); }\n@media (min-width: 640px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1100px) { .steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }\n.step { position: relative; max-width: none; background: var(--tint); border-radius: var(--r-card); padding: 2.75rem 1.5rem 1.75rem; text-align: center; }\n.section--alt .step { background: var(--white); }\n.step__num {\n  position: absolute; top: -1.75rem; left: 50%; transform: translateX(-50%);\n  display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%;\n  background: var(--red); color: var(--white); font: 700 1.75rem\/1 var(--font-display);\n  box-shadow: 0 0 0 6px var(--ground);\n}\n.section--alt .step__num { box-shadow: 0 0 0 6px var(--tint-soft); }\n.step h3 { font-size: 1.5rem; text-transform: uppercase; margin: 0 0 0.6rem; }\n.step p { margin: 0; text-align: left; }\n\n\/* Vertical timeline (phases) *\/\n.timeline { list-style: none; margin: 0; padding: 0 0 0 2rem; position: relative; display: grid; gap: 1.75rem; }\n.timeline::before { content: \"\"; position: absolute; left: 0.45rem; top: 0.5rem; bottom: 0.5rem; width: 2px; background: var(--tint-deep); }\n.timeline > li { position: relative; }\n.timeline > li::before { content: \"\"; position: absolute; left: -2rem; top: 0.3rem; width: 1rem; height: 1rem; border-radius: 50%; background: var(--wine); box-shadow: 0 0 0 4px var(--ground); }\n.timeline h3 { font-size: var(--fs-md); margin-bottom: 0.3rem; }\n\n\/* Progress *\/\n.progress { display: grid; gap: 0.4rem; }\n.progress__head { display: flex; justify-content: space-between; gap: 12px; font-weight: 600; }\n.progress__bar { height: 10px; background: var(--tint); border-radius: var(--r-pill); overflow: hidden; }\n.section--alt .progress__bar { background: var(--white); }\n.progress__bar > span { display: block; height: 100%; background: var(--wine); border-radius: var(--r-pill); }\n\n\/* Modules (curriculum) *\/\n.modules { display: grid; gap: var(--gap); }\n@media (min-width: 768px) { .modules { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1100px) { .modules--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.module-card { display: flex; flex-direction: column; background: var(--tint); border-radius: var(--r-card); padding: clamp(1.5rem, 2.8vw, 2.25rem); }\n.section--alt .module-card { background: var(--white); }\n.module-card__label {\n  align-self: center; margin: 0 0 0.75rem; padding: 0.3rem 0.9rem; border-radius: var(--r-pill);\n  background: var(--wine); color: var(--white); font-size: var(--fs-sm); font-weight: 600; line-height: 1.2;\n}\n.module-card h3 { margin-bottom: 1.25rem; font-size: 1.5rem; text-align: center; text-transform: uppercase; font-weight: 700; hyphens: manual; -webkit-hyphens: manual; }\n.module-card .checklist { margin: 0; gap: 0.45rem; }\n.module-card .btn-row { margin-top: auto; padding-top: 1.5rem; justify-content: center; }\n\n\/* Logo row: white tiles *\/\n\/* Flex, so an incomplete last row sits centred. --per = tiles per row. *\/\n.logo-wall { --per: 2; --g: 0.75rem; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--g); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 640px) { .logo-wall { --per: 3; } }\n.logo-wall li {\n  flex: 0 0 calc((100% - (var(--per) - 1) * var(--g)) \/ var(--per)); max-width: none;\n  display: flex; align-items: center; justify-content: center; height: 104px; padding: 1rem 1.25rem;\n  background: var(--white); border-radius: var(--r-card);\n}\n.logo-wall img { max-height: 60px; max-width: min(100%, 9rem); width: auto; object-fit: contain; filter: grayscale(1); }\n.logo-wall--8 { --per: 3; --g: 0.5rem; }\n@media (min-width: 640px) { .logo-wall--8 { --per: 4; } }\n@media (min-width: 1024px) { .logo-wall--8 { --per: 8; } }\n.logo-wall--8 li { height: 80px; padding: 0.75rem; }\n.logo-wall--8 img { max-height: 40px; max-width: min(100%, 6.5rem); }\n\n\/* Accordion: rounded rows *\/\n.accordion { display: grid; gap: 0.625rem; }\n.accordion details { background: var(--tint-soft); border-radius: var(--r-card); }\n.section--alt .accordion details { background: var(--white); }\n.accordion summary {\n  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem;\n  padding: 1.1rem 1.25rem; font-weight: 600; font-size: 1.0625rem; line-height: 1.4; border-radius: var(--r-card);\n}\n.accordion summary::-webkit-details-marker { display: none; }\n.accordion summary::after {\n  content: \"+\"; flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%;\n  background: var(--wine); color: var(--white); font-size: 1.25rem; line-height: 1; font-weight: 500;\n}\n.accordion details[open] summary::after { content: \"\\2212\"; }\n.accordion summary:hover { color: var(--red); }\n.accordion__body { padding: 0 1.25rem 1.4rem; }\n.accordion__body > :last-child { margin-bottom: 0; }\n.accordion__body .facts li { background: var(--white); }\n\n\/* In-page CTA: centred tint panel *\/\n.cta-band {\n  background: var(--tint); border-radius: var(--r-card); padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem);\n  display: flex; flex-direction: column; align-items: center; gap: 1.75rem; text-align: center;\n}\n.section--alt .cta-band { background: var(--white); }\n.cta-band h2 { margin: 0 auto; max-width: 18em; }\n.cta-band p { margin: 0.75rem auto 0; }\n.cta-band > div { max-width: 48rem; }\n\n\/* Start dates on wine: centred, dates very large *\/\n.section--dark .container:has(> .date-list), .section--dark .split:has(.date-list) { text-align: center; }\n.date-list { list-style: none; margin: 0 auto 2.5rem; padding: 0; display: grid; gap: 1.75rem; }\n.date-list li { display: flex; flex-direction: column; align-items: center; gap: 0.15rem; max-width: none; }\n.date-list__course { font: 600 clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem)\/1.2 var(--font-display); }\n.date-list__date { font: 700 var(--fs-display)\/0.9 var(--font-display); letter-spacing: -0.02em; white-space: nowrap; }\n.section--dark .date-list__course { color: var(--on-wine-soft); }\n.section--dark .date-list__date { color: var(--on-wine); }\n\n\/* Contact: white rounded rows *\/\n.contact-cards { display: grid; gap: 0.625rem; }\n.contact-card { display: block; padding: 1rem 1.25rem; background: var(--white); border-radius: var(--r-card); text-decoration: none; color: var(--wine); }\na.contact-card:hover .contact-card__value { color: var(--red); }\n.contact-card__icon { display: none; }\n.contact-card__label { display: block; font-size: var(--fs-sm); color: var(--muted); }\n.contact-card__value { display: block; font: 600 1.5rem\/1.15 var(--font-display); overflow-wrap: anywhere; }\n\n\/* Embeds: rounded, white border *\/\n.embed { position: relative; width: 100%; overflow: hidden; background: var(--white); border: 6px solid var(--white); border-radius: var(--r-card); }\n.embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; }\n.embed--video { aspect-ratio: 16 \/ 9; }\n.embed--map { aspect-ratio: 4 \/ 3; min-height: 260px; }\n.embed--form { aspect-ratio: auto; min-height: 720px; }\n.embed--form iframe { position: static; height: 720px; }\n\n\/* Legal \/ long text *\/\n.prose { max-width: 46rem; margin-inline: auto; }\n.prose h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.375rem); margin-top: 2em; }\n.prose h3 { font-size: var(--fs-md); margin-top: 1.75em; }\n.prose h2:first-child, .prose h3:first-child { margin-top: 0; }\n.prose ul, .prose ol { padding-left: 1.4em; }\n.prose li { margin-bottom: 0.4em; }\n.prose a { overflow-wrap: anywhere; }\n.prose table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: var(--fs-sm); display: block; overflow-x: auto; }\n.prose th, .prose td { border-bottom: 1px solid var(--tint-deep); padding: 0.6rem 0.75rem 0.6rem 0; text-align: left; vertical-align: top; }\n\n\/* Note *\/\n.callout { background: var(--tint); padding: 1.25rem 1.5rem; border-radius: var(--r-card); }\n.section--alt .callout, .cta-band .callout { background: var(--white); }\n.cta-band .callout { margin-top: 1.25rem; }\n\n\/* ---------- Utilities ---------- *\/\n.mt-0 { margin-top: 0 !important; }\n.mb-0 { margin-bottom: 0 !important; }\n.mt-lg { margin-top: clamp(2rem, 4vw, 3.5rem); }\n.stack > * + * { margin-top: 1em; }\n.nowrap { white-space: nowrap; } \/* keeps a hyphenated name together (\"Sky-E\") *\/\n.hide-mobile { display: none; }\n@media (min-width: 768px) { .hide-mobile { display: revert; } .hide-desktop { display: none; } }\n\n@media (prefers-reduced-motion: reduce) {\n  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }\n}\n\n\/* ---------- Page-specific small parts ---------- *\/\n.split__media img.split__badge { max-width: 320px; margin-inline: auto; }\n.danke__img { max-width: 420px; }\n.danke__status { font-weight: 600; position: relative; padding-left: 1.4rem; margin-bottom: 1rem; }\n.danke__status::before { content: \"\"; position: absolute; left: 0; top: 0.5em; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--red); }\n\n\/* ---------- Brand colors (Ilyas, 2026-11-02): red #950900, turquoise #008C95, black ----------\n   Black carries text, buttons and dark bands; turquoise is the visible second brand color.\n   Only large\/bold white text sits on turquoise; small text on it is black. *\/\n.btn, .btn--outline, .btn--light { --btn-dot: var(--teal); --btn-arrow: var(--arrow-white); }\n.stat, .section--alt .stat, .page-hero .stat, .stats--hero .stat { background: var(--teal); }\n.stats--hero .stat__label { font-weight: 600; }\n.stat__value { color: var(--white); }\n.stat__label { color: #000; font-weight: 600; }\n.step__num { background: var(--teal); }\n.timeline > li::before { background: var(--teal); }\n.checklist li::before { background: var(--teal); }\n.footer-cta { background: var(--teal); color: #000; }\n.footer-cta p, .footer-cta strong { color: #000; }\n.footer-cta h2 { color: var(--white); }\n.footer-cta .btn { --btn-bg: #000; --btn-fg: #fff; }\n.footer-cta :focus-visible { outline-color: #000; }\n.ser-site-footer { background: #000; color: #d6d6d6; }\n.ser-site-footer a:not(.btn), .ser-site-footer .footer-label, .ser-site-footer .footer-title { color: #fff; }\n.ser-site-footer a:not(.btn):hover { color: #6fd6dd; }\n.ser-site-footer .social a:hover { background: #222; }\n\n\/* ---------- Feedback Ilyas 2026-11-03 ----------\n   Social links readable on the black footer, partner\/employer logos in their own colours,\n   CTA band in one text colour and centred, white logo in the footer, smaller CTA headlines. *\/\n\/* White footer (Ilyas: \"lieber wei\u00dfer footer\"), black text, normal colour logo *\/\n.ser-site-footer { background: #fff; color: #000; }\n.ser-site-footer a:not(.btn), .ser-site-footer .footer-label, .ser-site-footer .footer-title { color: #000; }\n.ser-site-footer a:not(.btn):hover { color: var(--teal); }\n.footer-bottom { border-top-color: #e3e3e3; }\n.ser-site-footer .social a { background: transparent; color: #000; border: 1px solid #000; }\n.ser-site-footer .social a:hover { background: #000; color: #fff; text-decoration: none; }\n\/* No black blocks in the page body: the former dark sections are white with black text *\/\n.section--dark { background: #fff; color: #000; }\n.section--dark :is(h1, h2, h3, h4, strong, .lead), .section--dark a:not(.btn),\n.section--dark .section__head p, .section--dark .date-list__course, .section--dark .date-list__date { color: #000; }\n.section--dark .checklist li::before { background: var(--teal); }\n.section--dark .card--feature { background: var(--tint); }\n.section--dark :focus-visible { outline-color: var(--red); }\n.section--dark .btn--light { --btn-bg: #000; --btn-fg: #fff; color: #fff; }\n.section--dark .btn--light:hover { --btn-bg: var(--red); color: #fff; }\n.logo-wall img { filter: none; }\n.footer-cta__inner, .footer-cta__inner > div { text-align: center; margin-inline: auto; }\n.footer-cta h2, .footer-cta p, .footer-cta strong { color: #fff; }\n\/* white on turquoise is 4.1:1, so the text is set large (>= 24px) and semibold *\/\n.footer-cta p { font-size: 1.375rem; font-weight: 600; }\n.footer-brand img { width: 110px; }\n.cta-band h2 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.75rem); max-width: 22em; }\n.cert-single { max-width: 28rem; margin-inline: auto; }\n\n\/* Hero with one stat: a white pill row (number + caption) instead of a big circle *\/\n.page-hero .stats--1 .stat {\n  width: auto; height: auto; border-radius: var(--r-pill); background: var(--white);\n  flex-direction: row; gap: 1rem; padding: 0.85rem 1.75rem; text-align: left;\n}\n.page-hero .stats--1 .stat__value { color: var(--teal); font-size: clamp(2rem, 1.6rem + 1.2vw, 2.75rem); }\n.page-hero .stats--1 .stat__label { color: #000; font-size: 1rem; font-weight: 600; max-width: 17rem; }\n\n\/* Timeline next to a long text column: stays in view while scrolling (desktop) and fills\n   turquoise as the reader moves through the section (ser.js sets --p and .is-done). *\/\n@media (min-width: 900px) {\n  .split--top > div:has(> .timeline) { position: sticky; top: calc(var(--header-h) + 2rem); align-self: start; }\n}\n.timeline::after {\n  content: \"\"; position: absolute; left: 0.45rem; top: 0.5rem; width: 2px;\n  height: calc((100% - 1rem) * var(--p, 1)); background: var(--teal);\n}\n.timeline > li { z-index: 1; }\n.timeline[data-scroll] > li::before { background: var(--tint-deep); transition: background-color 0.2s ease; }\n.timeline[data-scroll] > li.is-done::before { background: var(--teal); }\n\n\/* ==========================================================================\n   Business Education additions (skyered-business-education.de remake).\n   Same design system; only the parts this site needs beyond the education remake.\n   ========================================================================== *\/\n\n\/* Footer for this site: brands, claim, link row, social pills (white, black text, colour logos) *\/\n.site-footer__top { padding-block: clamp(3rem, 5vw, 4.5rem) 0; text-align: center; }\n.footer-brands .footer-title { margin-bottom: 1.25rem; }\n.brand-row { list-style: none; margin: 0 auto 1.25rem; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 2rem; }\n.brand-row li { max-width: none; }\n.brand-row img { height: 72px; width: auto; }\n.footer-claim { margin: 0 auto 2rem; font-weight: 500; max-width: 40rem; }\n.footer-links { list-style: none; margin: 0 auto 2.25rem; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.75rem; font-weight: 500; }\n.footer-links li { max-width: none; }\n.ser-site-footer .footer-bottom { justify-content: center; text-align: center; flex-direction: column; gap: 1rem; padding-block: 1.5rem 2rem; }\n.ser-site-footer .social { justify-content: center; }\n\n\/* Small label above a heading (text from the live page, shown uppercase) *\/\n.eyebrow { margin: 0 auto 1rem; font: 700 1rem\/1.2 var(--font-display); letter-spacing: 0.08em; text-transform: uppercase; color: var(--red); }\n.section__head .eyebrow, .page-hero .eyebrow { max-width: none; }\n\n\/* Hero with photo on the right (homepage) *\/\n.hero--photo { padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5.5rem); }\n.hero--photo h1 { font-size: clamp(2.5rem, 1.5rem + 3.6vw, 4.5rem); max-width: none; margin-bottom: 1.5rem; }\n.hero--photo h1 .tone { margin-top: 0.1em; }\n.hero--photo .hero__lead { margin-bottom: 1.25rem; }\n.hero--photo .checklist { margin-bottom: 1.5rem; }\n.hero--photo .split__media .photo-frame { margin: 0; }\n.hero--photo .photo-frame img { aspect-ratio: 3 \/ 2; }\n.seal-note { display: flex; align-items: center; gap: 1.25rem; margin-top: 1.75rem; padding: 0.75rem 1.25rem 0.75rem 0.75rem; background: var(--white); border-radius: var(--r-card); max-width: 34rem; }\n.seal-note img { width: 5.5rem; height: 5.5rem; flex: none; object-fit: contain; }\n.seal-note p { margin: 0; font-weight: 600; line-height: 1.35; }\n.seal-note__label { display: block; margin-top: 0.2rem; font-size: var(--fs-sm); font-weight: 500; color: var(--muted); }\n\n\/* Case cards (customer results): logo tile, two figures, quote, one-line result *\/\n.cases { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); }\n.case-card {\n  --per: 1; flex: 0 0 calc((100% - (var(--per) - 1) * var(--gap)) \/ var(--per)); display: flex; flex-direction: column; gap: 1rem;\n  margin: 0; padding: clamp(1.25rem, 2.4vw, 1.75rem); background: var(--tint); border-radius: var(--r-card);\n}\n.section--alt .case-card { background: var(--white); }\n@media (min-width: 720px) { .case-card { --per: 2; } }\n@media (min-width: 1100px) { .case-card { --per: 3; } }\n.case-card__logo { display: grid; place-items: center; height: 5rem; padding: 0.75rem 1rem; background: var(--white); border-radius: 8px; }\n.section--alt .case-card__logo { background: var(--tint-soft); }\n.case-card__logo img { max-height: 3.25rem; max-width: 80%; width: auto; object-fit: contain; }\n.case-card h3 { margin: 0; font-size: 1.625rem; text-transform: uppercase; font-weight: 700; text-align: center; hyphens: manual; -webkit-hyphens: manual; }\n.case-card__branch { margin: -0.5rem auto 0; font-size: var(--fs-sm); font-weight: 500; color: var(--muted); text-align: center; }\n.case-card__figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin: 0; padding: 0; list-style: none; }\n.case-card__figures li { max-width: none; display: flex; flex-direction: column; gap: 0.2rem; padding: 0.75rem 0.5rem; background: var(--white); border-radius: 8px; text-align: center; }\n.section--alt .case-card__figures li { background: var(--tint-soft); }\n.case-card__figures strong { font: 700 1.75rem\/1 var(--font-display); color: var(--wine); overflow-wrap: anywhere; }\n.case-card__figures span { font-size: var(--fs-sm); line-height: 1.3; font-weight: 500; }\n.case-card blockquote { margin: 0; font-size: 1.0625rem; line-height: 1.45; }\n.case-card cite { display: block; margin-top: 0.5rem; font-style: normal; font-weight: 600; font-size: var(--fs-sm); color: var(--muted); }\n.case-card__result { margin: auto 0 0; padding: 0.55rem 1rem; border-radius: var(--r-pill); background: var(--teal); color: #fff; font: 600 1.125rem\/1.25 var(--font-display); text-align: center; max-width: none; }\n.case-card__result strong { color: #fff; }\n\n\/* Photo with caption (target groups) *\/\n.photo-cards { display: grid; gap: var(--gap); grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }\n@media (min-width: 900px) { .photo-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }\n.photo-cards li { max-width: none; margin: 0; display: flex; flex-direction: column; gap: 0.75rem; }\n.photo-cards img { width: 100%; aspect-ratio: 2 \/ 1; object-fit: cover; border: 6px solid var(--white); border-radius: var(--r-card); background: var(--white); }\n.photo-cards p { margin: 0; font: 700 1.25rem\/1.15 var(--font-display); }\n\n\/* Percentage figures (number + sentence) *\/\n.figures { display: grid; gap: var(--gap); margin: 0; padding: 0; list-style: none; }\n@media (min-width: 900px) { .figures { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.figures li { max-width: none; display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem 1.5rem; background: var(--white); border-radius: var(--r-card); }\n.section--alt .figures li { background: var(--white); }\n.figures__value { flex: none; font: 700 clamp(3rem, 2.4rem + 2vw, 4.25rem)\/0.9 var(--font-display); letter-spacing: -0.02em; color: var(--teal); white-space: nowrap; }\n.figures p { margin: 0; font-weight: 500; line-height: 1.4; }\n\n\/* Numbered cards, three per row (module pages: Kursinhalte) *\/\n@media (min-width: 1100px) { .steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.steps--3 .step p { text-align: center; }\n.steps--3 .step__num { font-size: 1.5rem; }\n.steps__title { margin: 0 0 0.5rem; font: 700 1.5rem\/1.1 var(--font-display); text-transform: uppercase; text-align: center; }\n\n\/* Step link in the process cards *\/\n.step .text-link { display: inline-block; margin-top: 0.75rem; }\n\n\/* Funding calculator (QCG page) *\/\n.calc { display: grid; gap: var(--gap); max-width: 56rem; margin-inline: auto; }\n@media (min-width: 800px) { .calc { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }\n.calc__box { background: var(--white); border-radius: var(--r-card); padding: clamp(1.25rem, 3vw, 2rem); border: 0; margin: 0; min-width: 0; }\n.calc__box h3, .calc__box legend { font: 700 1.5rem\/1.1 var(--font-display); margin: 0 0 1rem; padding: 0; }\n.calc__group { border: 0; padding: 0; margin: 0 0 1.5rem; min-width: 0; }\n.calc__group:last-child { margin-bottom: 0; }\n.calc__option { position: relative; display: flex; align-items: center; gap: 0.75rem; padding: 0.8rem 1rem; margin-bottom: 0.5rem; border-radius: 8px; background: var(--tint-soft); cursor: pointer; font-weight: 500; }\n.calc__option:hover { background: var(--tint); }\n.calc__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }\n.calc__option::before { content: \"\"; flex: none; width: 1.25rem; height: 1.25rem; border-radius: 50%; border: 2px solid var(--wine); background: var(--white); }\n.calc__option:has(input:checked) { background: var(--tint); }\n.calc__option:has(input:checked)::before { background: var(--teal); border-color: var(--teal); box-shadow: inset 0 0 0 3px var(--white); }\n.calc__option:has(input:focus-visible) { outline: 3px solid var(--red); outline-offset: 2px; }\n.calc__result { background: var(--tint); border-radius: 8px; padding: 1.25rem; }\n.calc__label { font-size: var(--fs-sm); font-weight: 500; color: var(--muted); margin-bottom: 0.4rem; }\n.calc__value { font: 700 1.5rem\/1.2 var(--font-display); }\n.calc__value.is-set { font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); line-height: 1; color: var(--wine); }\n.calc__value.is-empty { font-weight: 500; font-family: var(--font); font-size: 1rem; color: var(--muted); }\n\n\/* Side-by-side text and image rows with several items (steps with photos) *\/\n.rows { display: grid; gap: clamp(3rem, 6vw, 5rem); }\n.rows .split__media img { aspect-ratio: 3 \/ 2; object-fit: cover; }\n\n\/* Brochure panel *\/\n.promo { display: grid; gap: 2rem; align-items: center; padding: clamp(1.75rem, 4vw, 3.5rem); background: var(--tint); border-radius: var(--r-card); }\n@media (min-width: 800px) { .promo { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); } }\n.promo img { width: 100%; max-width: 20rem; margin-inline: auto; border: 6px solid var(--white); border-radius: var(--r-card); }\n.promo h2 { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.25rem); }\n\n\/* Compare list (Consulting-DNA etc.): label + text rows in cards *\/\n.defs { display: grid; gap: var(--gap); margin: 0; }\n@media (min-width: 800px) { .defs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.defs > div { background: var(--tint); border-radius: var(--r-card); padding: clamp(1.25rem, 2.4vw, 1.75rem); }\n.section--alt .defs > div { background: var(--white); }\n.defs dt { font: 700 1.5rem\/1.1 var(--font-display); margin-bottom: 0.5rem; }\n.defs dd { margin: 0; }\n\n\/* Badges (awards) *\/\n.badge-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; list-style: none; margin: 2rem 0 0; padding: 0; }\n.badge-row li { max-width: none; }\n.badge-row a { display: flex; align-items: center; justify-content: center; height: 9rem; padding: 0.75rem 1.25rem; background: var(--white); border-radius: var(--r-card); }\n.badge-row img { max-height: 7.5rem; width: auto; max-width: 12rem; object-fit: contain; }\n\n\/* Job rows *\/\n.accordion summary .job-title { flex: 1; }\n.accordion .facts { margin-top: 0.5rem; }\n.accordion__body h3 { font-size: 1.375rem; text-transform: none; margin: 1.5rem 0 0.5rem; }\n.accordion__body h3:first-child { margin-top: 0; }\n.accordion__body p { max-width: 60rem; }\n\n\n\/* Mobile grid columns must be allowed to shrink (long German words in display headings) *\/\n.split { grid-template-columns: minmax(0, 1fr); }\n.split > * { min-width: 0; }\n@media (min-width: 900px) { .split { grid-template-columns: repeat(12, minmax(0, 1fr)); } }\n.footer-brands .footer-title { margin-inline: auto; text-align: center; }\n.footer-brands .footer-claim { margin: 0 auto 2rem; }\n.case-card blockquote { flex: 1; }\n.facts--center { justify-content: center; margin-top: 1.5rem; }\n.page-hero .facts li { background: var(--white); }\n.logo-wall a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }\n.job-tags { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; margin-left: auto; }\n.job-tags span { padding: 0.15rem 0.65rem; border-radius: var(--r-pill); background: var(--white); border: 1px solid var(--tint-deep); font-size: var(--fs-sm); font-weight: 500; }\n.accordion summary:has(.job-tags) { flex-wrap: wrap; }\n.accordion summary::after { margin-left: 0.25rem; }\n.accordion__body .btn { margin-top: 0.5rem; }\n.landing-logo { height: 7.5rem; width: auto; margin: 0 auto 1.5rem; }\n.landing-points { max-width: 46rem; margin: 1.5rem auto 0; }\n.landing-note { margin: 2rem auto 0; text-align: center; font-weight: 500; max-width: none; }\n.card--feature .module-card__label { align-self: center; }\n.grid .card--feature h3 { text-transform: uppercase; font-weight: 700; }\n.page-hero h1.h1--long { font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4rem); max-width: 18em; }\n.container--narrow p, .container--narrow li { max-width: none; }\n.badge-row img { height: 7.5rem; max-height: none; width: auto; max-width: 14rem; }\n.section__head > .lead { max-width: 46rem; margin-inline: auto; }\n.steps__title { margin-bottom: 2.5rem; }\n.defs.mt-lg { margin-top: clamp(2rem, 4vw, 3.5rem); }\n\/* Customer logos: trimmed copies, larger tiles *\/\n.logo-wall--8 { --per: 2; }\n@media (min-width: 640px) { .logo-wall--8 { --per: 3; } }\n@media (min-width: 900px) { .logo-wall--8 { --per: 5; } }\n.logo-wall--8 li { height: 96px; padding: 1rem 1.25rem; }\n.logo-wall--8 img { max-height: 48px; max-width: min(100%, 9.5rem); width: auto; height: auto; }\n\n\/* ==========================================================================\n   Carousel (customer examples), Ilyas 2026-11-03: stays a carousel. CSS scroll-snap does the sliding,\n   js\/ser.js adds the arrows, dots and keyboard-friendly buttons. No autoplay.\n   ========================================================================== *\/\n.section--tint { background: var(--tint); }\n.carousel { position: relative; }\n.carousel__viewport {\n  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;\n  margin-inline: calc(var(--gutter) * -1); padding: 0.5rem var(--gutter) 0.75rem; scroll-padding-inline: var(--gutter);\n}\n.carousel__viewport::-webkit-scrollbar { display: none; }\n.carousel__track { display: flex; gap: var(--gap); list-style: none; margin: 0; padding: 0; }\n.carousel__slide { flex: 0 0 82%; max-width: none; display: flex; scroll-snap-align: start; }\n@media (min-width: 720px) { .carousel__slide { flex-basis: calc((100% - var(--gap)) \/ 2); } }\n@media (min-width: 1100px) { .carousel__slide { flex-basis: calc((100% - 2 * var(--gap)) \/ 3); } }\n.carousel__slide .case-card { flex: 1 1 auto; width: 100%; }\n.carousel__controls { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-top: 1.5rem; }\n.carousel__controls[hidden] { display: none; }\n.carousel__btn {\n  position: relative; flex: none; width: 3.5rem; height: 3.5rem; padding: 0; border: 0; border-radius: var(--r-pill);\n  background: var(--wine); cursor: pointer; transition: background-color 0.15s ease-out;\n}\n.carousel__btn::before {\n  content: \"\"; position: absolute; inset: 0.375rem; border-radius: 50%;\n  background: var(--teal) var(--chev, none) center \/ 1.25rem no-repeat;\n}\n.carousel__btn--prev { --chev: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 3 5 8l5 5'\/%3E%3C\/svg%3E\"); }\n.carousel__btn--next { --chev: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 3 5 5-5 5'\/%3E%3C\/svg%3E\"); }\n.carousel__btn:hover:not(:disabled) { background: var(--red); }\n.carousel__btn:disabled { opacity: 0.35; cursor: default; }\n.carousel__dots { display: flex; align-items: center; gap: 0.25rem; }\n.carousel__dot { position: relative; width: 1.5rem; height: 1.5rem; padding: 0; border: 0; background: none; cursor: pointer; }\n.carousel__dot::before { content: \"\"; position: absolute; left: 50%; top: 50%; width: 0.75rem; height: 0.75rem; border-radius: 50%; background: var(--tint-deep); transform: translate(-50%, -50%); transition: width 0.15s ease-out, background-color 0.15s ease-out; }\n.section--alt .carousel__dot::before { background: #d8bcc1; }\n.carousel__dot[aria-current=\"true\"]::before { width: 1.5rem; border-radius: var(--r-pill); background: var(--teal); }\n\n\/* ==========================================================================\n   Process steps with life (Ablauf, Der Prozess), Ilyas 2026-11-03: white cards, a turquoise line through the\n   number circles (horizontal on desktop, vertical on phones), a line icon per step, a slight lift on hover.\n   ========================================================================== *\/\n.steps--flow { --ring: var(--ground); position: relative; }\n.section--alt .steps--flow { --ring: var(--tint-soft); }\n.section--tint .steps--flow { --ring: var(--tint); }\n.steps--flow .step {\n  display: flex; flex-direction: column; align-items: center; background: var(--white); padding: 2.5rem 1.5rem 1.5rem;\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n.steps--flow .step__num { z-index: 2; box-shadow: 0 0 0 6px var(--ring); }\n.steps--flow .step__icon { width: 3.5rem; height: 3.5rem; margin: 0.25rem 0 0.9rem; color: var(--teal); flex: none; }\n.steps--flow .step h3 { text-align: center; }\n.steps--flow .step p { text-align: center; margin-bottom: 0; }\n.steps--flow .step:hover, .steps--flow .step:focus-within { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12); z-index: 2; }\n.steps--flow::before { content: none; }\n@media (min-width: 1100px) {\n  .steps--flow::before {\n    content: \"\"; position: absolute; z-index: 1; top: 1.75rem; height: 3px; transform: translateY(-50%); background: var(--teal);\n    left: calc((100% - 3 * var(--gap)) \/ 8); right: calc((100% - 3 * var(--gap)) \/ 8);\n  }\n}\n@media (max-width: 639px) {\n  .steps--flow::before {\n    content: \"\"; position: absolute; z-index: 0; left: 50%; top: 1.75rem; bottom: 1.5rem; width: 3px; transform: translateX(-50%); background: var(--teal);\n  }\n}\n.arrow-link { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: auto; padding-top: 1rem; font-weight: 600; color: var(--wine); text-decoration: none; }\n.arrow-link::after {\n  content: \"\"; flex: none; width: 1.75rem; height: 1.75rem; border-radius: 50%;\n  background: var(--teal) var(--arrow-white) center \/ 0.9rem no-repeat; transition: transform 0.15s ease-out;\n}\n.arrow-link:hover { color: var(--red); }\n.arrow-link:hover::after { transform: translateX(3px); }\n.steps--flow .step p + .arrow-link { margin-top: 0.75rem; }\n@media (min-width: 720px) { .carousel__viewport { margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; } }\n\n\/* Shaped cut-outs (oval \/ blob photos with transparent corners, QCG page): frameless on the section ground,\n   no white box, centred next to the text; a soft shadow gives the shape an edge on white. *\/\n.split__media--cutout { display: flex; justify-content: center; align-items: center; }\n.split__media--cutout img { border: 0; border-radius: 0; background: none; width: auto; max-width: 100%; max-height: 28rem; filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.12)); }\n\n\/* More white (Ilyas 2026-11-03): cards on the white page ground use the soft tint, the full tint stays for heroes and accents *\/\n.card--feature, .checklist--cards li, .case-card, .defs > div, .step, .callout { background: var(--tint-soft); }\n.section--alt .card--feature, .section--alt .checklist--cards li, .section--alt .case-card, .section--alt .defs > div, .section--alt .step, .section--alt .callout, .cta-band .callout { background: var(--white); }\n.steps--flow .step { background: var(--white); }\n.case-card__figures li, .case-card__logo { background: var(--white); }\n.section--alt .case-card__figures li, .section--alt .case-card__logo { background: var(--tint-soft); }\n.grid--2 > :last-child:nth-child(odd) { grid-column: 1 \/ -1; }\n\n\/* ==========================================================================\n   Technology additions (skyeredtechnology.de): header end block, mega-menu groups, language switch, footer newsletter\n   ========================================================================== *\/\n.header-end { display: flex; align-items: center; gap: 0.75rem; justify-self: end; }\n.lang-switch { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--tint); }\n.lang-switch:hover { background: var(--tint-deep); }\n.lang-switch img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }\n.nav__menu--groups { min-width: 340px; max-width: 420px; max-height: calc(100vh - var(--header-h) - 2rem); overflow-y: auto; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12); }\n.nav__group { max-width: none; }\n.nav__group-title { margin: 0.5rem 0 0.15rem; padding: 0.4rem 0.85rem 0; font: 700 0.8125rem\/1.2 var(--font); letter-spacing: 0.06em; text-transform: uppercase; color: var(--teal); }\n.nav__group:first-child .nav__group-title { margin-top: 0; }\n.mobile-nav__group { padding: 0.6rem 0.75rem 0.1rem; font: 700 0.8125rem\/1.2 var(--font); letter-spacing: 0.06em; text-transform: uppercase; color: var(--teal); max-width: none; }\n.footer-newsletter { display: flex; justify-content: center; margin-bottom: 1.75rem; }\n\n\/* Generated content blocks *\/\n.media-figure { margin: 0; }\n.media-figure img { width: 100%; height: auto; border-radius: var(--r-card); }\n.hero-figure { margin-top: clamp(1.5rem, 3vw, 2.5rem); max-width: 56rem; }\n.hero-figure + .section { padding-top: clamp(2.5rem, 5vw, 4rem); }\n.card__tile { width: 100%; height: auto; border-radius: var(--r-card); background: var(--white); }\n.card--tile { padding: 0.75rem 0.75rem 1.5rem; }\n.card--tile > :not(.card__tile) { padding-inline: 0.5rem; }\n.card--tile .btn-row { margin-top: auto; padding-top: 1rem; }\n.figures--2 { grid-template-columns: repeat(1, minmax(0, 1fr)); }\n.figures__text { margin: 0; font-weight: 500; line-height: 1.4; }\n.figures__text p { margin: 0; }\n.figures li { flex-wrap: wrap; }\n.figures__value { order: -1; }\n@media (min-width: 900px) {\n  .figures--2, .figures--3 { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }\n  .figures--2 { --cols: 2; }\n  .figures li { flex-direction: column; align-items: flex-start; }\n}\n.post-card { display: flex; flex-direction: column; gap: 0.75rem; background: var(--white); border-radius: var(--r-card); padding: 0.75rem 0.75rem 1.5rem; height: 100%; width: 100%; }\n.post-card img { width: 100%; border-radius: 8px; }\n.post-card > :not(img):not(.media-figure):not(a) { padding-inline: 0.75rem; }\n.post-card p { margin: 0; }\n.carousel__slide .post-card { flex: 1 1 auto; }\n.more { display: block; margin-top: 1rem; }\n.more > summary { list-style: none; cursor: pointer; display: inline-flex; }\n.more > summary::-webkit-details-marker { display: none; }\n.more[open] > summary { background: var(--red); color: var(--white); }\n.more__body { margin-top: 1rem; padding: 1.25rem; background: var(--white); border-radius: var(--r-card); }\n.table-wrap { overflow-x: auto; margin-block: 1.5rem; }\n.data-table { border-collapse: collapse; width: 100%; min-width: 34rem; }\n.data-table th, .data-table td { text-align: left; padding: 0.75rem 1rem; border-bottom: 1px solid var(--tint-deep); vertical-align: top; }\n.data-table thead th { background: var(--tint); font-family: var(--font-display); font-size: 1.125rem; }\n.logo-wall img, .logo-wall--8 img { filter: none; }\n.section__head h2.eyebrow { font: 700 1rem\/1.2 var(--font); letter-spacing: 0.08em; text-transform: uppercase; color: var(--teal); margin-bottom: 0.75rem; }\n.section__head h2.eyebrow + h2 { margin-top: 0; }\n.section > .container > h2 { text-align: center; max-width: 54rem; margin-inline: auto; }\n.section > .container > :is(p, h3, ul.checklist, ol, blockquote) { max-width: 46rem; margin-inline: auto; }\n.section > .container > h3 { margin-top: 1.75em; font-size: var(--fs-h3); }\n.section > .container > .btn-row { justify-content: center; }\n.section > .container > :is(.grid, .figures, .carousel, .accordion, .split, .logo-wall) { margin-top: clamp(1.5rem, 3vw, 2.5rem); }\n.section > .container > .media-figure { max-width: 56rem; margin-inline: auto; margin-block: clamp(1.5rem, 3vw, 2.5rem); }\n.prose h3 { margin-top: 1.75em; font-size: var(--fs-h3); }\n\n\/* Tabs (progressive: all panels visible without script) *\/\n.tabs__list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }\n.tabs__tab { min-height: 44px; padding: 0.5rem 1.1rem; border: 0; border-radius: var(--r-pill); background: var(--tint); color: var(--wine); font: 600 1.0625rem\/1.15 var(--font-display); cursor: pointer; text-align: left; }\n.tabs__tab:hover { background: var(--tint-deep); }\n.tabs__tab[aria-selected=\"true\"] { background: var(--wine); color: var(--white); }\n.tabs.is-js .tabs__panel[hidden] { display: none; }\n.tabs__panel { padding: clamp(1.25rem, 3vw, 2rem); background: var(--tint-soft); border-radius: var(--r-card); }\n.tabs.is-js .tabs__panel + .tabs__panel { margin-top: 0; }\n.tabs:not(.is-js) .tabs__panel + .tabs__panel { margin-top: 1rem; }\n.tabs__panel > :first-child { margin-top: 0; }\n.quote-card--head { display: flex; flex-direction: column; gap: 0.75rem; }\n.quote-card--head figcaption { display: flex; flex-direction: column; gap: 0.15rem; margin: 0; }\n.quote-card--head blockquote { margin: 0; }\n.quote-card__img { width: 64px; height: 64px; object-fit: cover; border-radius: 50%; }\n\n\/* Quiz (QSM) *\/\n.quiz { max-width: 46rem; margin-inline: auto; display: grid; gap: 1.25rem; }\n.quiz__q { margin: 0; padding: clamp(1.1rem, 3vw, 1.75rem); border: 0; border-radius: var(--r-card); background: var(--tint-soft); }\n.quiz__q legend { float: left; width: 100%; padding: 0; margin-bottom: 0.9rem; font: 700 1.375rem\/1.2 var(--font-display); }\n.quiz__q legend + * { clear: both; }\n.quiz__a { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.7rem 0.9rem; margin-top: 0.5rem; background: var(--white); border-radius: 8px; cursor: pointer; }\n.quiz__a input { margin-top: 0.3rem; accent-color: var(--teal); width: 1.1rem; height: 1.1rem; flex: none; }\n.quiz__a:has(input:checked) { outline: 2px solid var(--teal); }\n.quiz__submit { cursor: pointer; border: 0; padding-inline: 2rem; }\n\n\/* Job list (Karriere) *\/\n.job { background: var(--tint-soft); border-radius: var(--r-card); margin-bottom: 0.75rem; }\n.job > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; padding: 1.1rem 1.4rem; }\n.job > summary::-webkit-details-marker { display: none; }\n.job__title { font: 700 1.375rem\/1.15 var(--font-display); }\n.job__tags { display: flex; gap: 0.5rem; }\n.job__tags span { padding: 0.25rem 0.8rem; border-radius: var(--r-pill); background: var(--white); font-weight: 600; font-size: 0.9375rem; }\n.job > summary::after { content: \"+\"; font-size: 1.5rem; margin-left: auto; }\n.job[open] > summary::after { content: \"\\2212\"; }\n.job__body { padding: 0 1.4rem 1.4rem; }\n.job__body h3 { font-size: var(--fs-md); }\n.seal-name { text-align: center; font-weight: 600; margin-top: 0.5rem; }\n.section > .container > .media-figure:has(.seal-name) { max-width: 20rem; }\n.section > .container > h2:not(:first-child) { margin-top: clamp(3rem, 6vw, 5rem); }\n.section > .container > .grid > .media-figure:has(.seal-name), .grid > .media-figure:has(.seal-name) { text-align: center; }\n.media-figure:has(.seal-name) img { width: auto; max-height: 11rem; margin-inline: auto; border-radius: 0; }\n.job-intro { text-align: center; }\n.grid > *, .split > *, .figures > li { min-width: 0; }\n.figures__text, .figures__text p { overflow-wrap: anywhere; }\n\n\/* Fatih 2026-11-03: mark the Business Education logo (it looks like Education otherwise) *\/\n.brand-row a { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; text-decoration: none; }\n.brand-label { font: 700 0.8125rem\/1 var(--font-display); letter-spacing: 0.04em; text-transform: uppercase; color: #000; }\n\n\/* Fatih 2026-11-03: stronger button dot colour instead of turquoise -> brand red *\/\n.btn, .btn--outline, .btn--light, .btn--sm, .btn--lg { --btn-dot: var(--red); }\n\n<\/style>\n\n<a class=\"skip-link\" href=\"#main\">Zum Inhalt springen<\/a>\n\n<header class=\"ser-site-header\">\n  <div class=\"container site-header__inner\">\n    <a class=\"brand\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/\" aria-label=\"Sky-E Red Technology: Start\">\n      <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/01\/cropped-Sky-E-Red-Technology_Logo-original-1.png\" alt=\"Sky-E Red Technology\" width=\"512\" height=\"512\">\n    <\/a>\n    <nav class=\"nav\" aria-label=\"Hauptnavigation\">\n      <ul class=\"nav__list\">\n        <li class=\"nav__item nav__item--has-menu\" data-section=\"services\">\n          <button class=\"nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"menu-services\">What we do<\/button>\n          <ul class=\"nav__menu nav__menu--groups\" id=\"menu-services\">\n            <li class=\"nav__group\"><p class=\"nav__group-title\">What we do<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-devops\/\">DevOps<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-cloud\/\">Cloud<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-ai-workflow-automation\/\">AI Workflow Automation<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-enterprise-game-solutions\/\">Enterprise Game Solutions<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Specials<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-it-fusion-effekt\/\">Sky-E Red Fusion<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-freelance-outsourcing\/\">Freelancing<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-code-red-academy\/\">Code Red Academy<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-techboost-bundles\/\">TechBoost Bundles<\/a><\/li>\n          <\/ul>\n        <\/li>\n        <li class=\"nav__item nav__item--has-menu\" data-section=\"unternehmen\">\n          <button class=\"nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"menu-unternehmen\">Who we are<\/button>\n          <ul class=\"nav__menu nav__menu--groups\" id=\"menu-unternehmen\">\n            <li class=\"nav__group\"><p class=\"nav__group-title\">About us<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/ueber-uns\/\">About us<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services\/\">What we do<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/webinare\/\">Webinar<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Become part of our community<\/p><\/li>\n            <li><a href=\"https:\/\/de.linkedin.com\/company\/skyered\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a><\/li>\n            <li><a href=\"https:\/\/www.instagram.com\/skyeredtechnology\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a><\/li>\n            <li><a href=\"https:\/\/www.tiktok.com\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">TikTok<\/a><\/li>\n            <li><a href=\"https:\/\/www.threads.net\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">Threads<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Career<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere\/\">Career at Sky-E Red<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere-join-as-freelancer\/\">Career as a freelancer<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Projects \u2192<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Projects \u2192<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/newsletter\/\">Subscribe to our newsletter<\/a><\/li>\n          <\/ul>\n        <\/li>\n        <li class=\"nav__item\"><a class=\"nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n        <li class=\"nav__item\"><a class=\"nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Success stories<\/a><\/li>\n      <\/ul>\n    <\/nav>\n    <div class=\"header-end\">\n      <a class=\"btn btn--sm header-cta\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Contact us<\/a>\n      <a class=\"lang-switch\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/en\/projekte-cloud-migration-pharma\/\" hreflang=\"en\" lang=\"en\"><img decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2026\/11\/ser-remake-en_US.png\" alt=\"en_US\" width=\"24\" height=\"24\"><span class=\"sr-only\">English<\/span><\/a>\n      <button class=\"burger\" type=\"button\" aria-expanded=\"false\" aria-controls=\"mobile-nav\" aria-label=\"Men\u00fc \u00f6ffnen\"><span><\/span><\/button>\n    <\/div>\n  <\/div>\n  <nav class=\"mobile-nav\" id=\"mobile-nav\" aria-label=\"Mobile Navigation\" hidden>\n    <ul class=\"mobile-nav__list\">\n      <li>\n        <button class=\"mobile-nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"m-services\">What we do<\/button>\n        <ul class=\"mobile-nav__sub\" id=\"m-services\" hidden>\n          <li class=\"mobile-nav__group\">What we do<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-devops\/\">DevOps<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-cloud\/\">Cloud<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-ai-workflow-automation\/\">AI Workflow Automation<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-enterprise-game-solutions\/\">Enterprise Game Solutions<\/a><\/li>\n          <li class=\"mobile-nav__group\">Specials<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-it-fusion-effekt\/\">Sky-E Red Fusion<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-freelance-outsourcing\/\">Freelancing<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-code-red-academy\/\">Code Red Academy<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-techboost-bundles\/\">TechBoost Bundles<\/a><\/li>\n        <\/ul>\n      <\/li>\n      <li>\n        <button class=\"mobile-nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"m-unternehmen\">Who we are<\/button>\n        <ul class=\"mobile-nav__sub\" id=\"m-unternehmen\" hidden>\n          <li class=\"mobile-nav__group\">About us<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/ueber-uns\/\">About us<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services\/\">What we do<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/webinare\/\">Webinar<\/a><\/li>\n          <li class=\"mobile-nav__group\">Become part of our community<\/li>\n          <li><a href=\"https:\/\/de.linkedin.com\/company\/skyered\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a><\/li>\n          <li><a href=\"https:\/\/www.instagram.com\/skyeredtechnology\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a><\/li>\n          <li><a href=\"https:\/\/www.tiktok.com\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">TikTok<\/a><\/li>\n          <li><a href=\"https:\/\/www.threads.net\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">Threads<\/a><\/li>\n          <li class=\"mobile-nav__group\">Career<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere\/\">Career at Sky-E Red<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere-join-as-freelancer\/\">Career as a freelancer<\/a><\/li>\n          <li class=\"mobile-nav__group\">Projects \u2192<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Projects \u2192<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/newsletter\/\">Subscribe to our newsletter<\/a><\/li>\n        <\/ul>\n      <\/li>\n      <li><a class=\"mobile-nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n      <li><a class=\"mobile-nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Success stories<\/a><\/li>\n    <\/ul>\n    <a class=\"btn btn--lg\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Contact us<\/a>\n  <\/nav>\n<\/header>\n\n<main id=\"main\">\n<section class=\"page-hero page-hero--simple\">\n  <div class=\"container\">\n    <h1>Cloud Rx: Precise migration of medical applications<\/h1>\n    <p class=\"lead\">Mit DevOps-Best Practices zu Datenschutz, Skalierbarkeit und Zuverl\u00e4ssigkeit bei B.Braun.<\/p>\n    <div class=\"btn-row\"><a class=\"btn btn--lg\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Make an appointment<\/a><\/div>\n  <\/div>\n<\/section>\n<div class=\"container hero-figure\"><figure class=\"media-figure\"><img decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2026\/11\/ser-remake-Website-Images-11.jpg\" alt=\"\"><\/figure><\/div>\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Kennzahlen<\/h2><\/div>\n<ul class=\"figures figures--3\"><li><span class=\"figures__value\">\u2191 50 %<\/span><p class=\"figures__text\">Faster deployment through automated CI\/CD pipelines.<\/p><\/li><li><span class=\"figures__value\">\u2193 30 %<\/span><p class=\"figures__text\">Less downtime thanks to optimized cloud infrastructure.<\/p><\/li><li><span class=\"figures__value\">\u2193 20 %<\/span><p class=\"figures__text\">Cost savings in operation and maintenance through cloud migration.<\/p><\/li><\/ul>\n  <\/div>\n<\/section>\n\n<section class=\"section section--alt\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Operation Cloud<\/h2><p>B. Braun commissioned us to migrate their critical medical applications to the cloud. The goal was to meet data protection and compliance requirements while increasing reliability and security and creating a flexible, scalable infrastructure. A team of 30 experts was mobilized to introduce DevOps best practices, integrate automated testing and deployments, and meet stringent healthcare requirements.<\/p><\/div>\n<h3>The digital tightrope act\u00a0<\/h3><p>The migration of the applications had to meet the highest requirements in terms of data protection (GDPR, HIPAA). Detailed data classification and the use of complex encryption strategies were essential. Tight access control also had to be implemented to ensure full compliance.\u00a0<\/p><p>Another obstacle was the automation of tests and deployments. The existing manual processes hindered the ability to react quickly to changes, which is inefficient and risky in a constantly evolving cloud environment. It was necessary to create an end-to-end continuous integration (CI) and continuous delivery (CD) pipeline that not only ensured the quality of the software, but also guaranteed security with each new deployment. Without full automation of testing and deployment, the reliability of the system would not have been maintained, especially considering the industry-specific security requirements.\u00a0<\/p><p>Finally, the complexity of the migration was a significant problem. The existing monolithic systems, which were deeply rooted in the existing infrastructure, had to be redesigned for the cloud environment. This included the containerization of applications and the introduction of microservices to enable a modern, scalable architecture. The transition from a traditional monolithic architecture to a flexible and scalable cloud solution required extensive adjustments to the applications and the underlying infrastructure. Only by closely integrating DevOps practices and cloud strategies could we successfully manage this complexity and ensure a smooth migration.\u00a0<\/p>\n  <\/div>\n<\/section>\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Cloud 9 as medicine<\/h2><p>The migration of the critical medical applications to the cloud was realized with a clearly structured plan and precise implementation, with each phase precisely tailored to the specific requirements and challenges.\u00a0<\/p><p>First, we started with planning and structuring. We divided the 30-strong team into function-specific groups, each responsible for one of the critical areas of the migration: Migration, Compliance and the integration of DevOps best practices. This structure allowed for efficient and focused collaboration to ensure that all aspects of the migration could be implemented smoothly and on time.\u00a0<\/p><p>Microsoft Azure was chosen as the platform for the secure cloud migration. We carried out detailed infrastructure planning, taking into account all security and compliance requirements. The migration of the applications was carried out in a strictly controlled environment to ensure integrity and data protection throughout the process. Particular attention was paid to the scalability and flexibility offered by Azure's cloud infrastructure.\u00a0<\/p><p>We then implemented DevOps best practices to optimize the entire migration and subsequent management of the applications. We implemented automated CI\/CD pipelines using Azure DevOps and Terraform, which not only increased efficiency, but also minimized sources of error and made the entire deploy process more secure. In addition, we implemented security policies through Azure Active Directory and Key Vault to control and protect access to sensitive data. The containerization of the applications using Docker and their management via AKS (Azure Kubernetes Service) ensured high scalability and flexibility in the infrastructure.\u00a0<\/p><p>To ensure continuous monitoring and security, we used advanced monitoring solutions such as Prometheus and Grafana to monitor and continuously optimize the performance of the applications in real time. In addition, we carried out security scans with tools such as Aqua Security to identify and eliminate potential vulnerabilities at an early stage.\u00a0<\/p><p>Finally, the success of the migration was checked. By using automated test frameworks and end-to-end deployments, it was possible to validate the migration and ensure that all applications functioned as intended in the new environment and met the high requirements for security, data protection and compliance.\u00a0<\/p><\/div>\n<figure class=\"media-figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2026\/11\/ser-remake-refwedwcwewc.jpg\" alt=\"\" width=\"6912\" height=\"3456\"><\/figure>\n  <\/div>\n<\/section>\n\n<section class=\"section section--alt\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>ROI on prescription<\/h2><p>In medicine, it is not only the symptoms that count, but above all the healing successes. So let's take a look at the effects of our therapy:\u00a0<\/p><\/div>\n<ul class=\"figures figures--3\"><li><span class=\"figures__value\">+ 60 %<\/span><div class=\"figures__text\"><p><strong>Steigerung der Systemzuverl\u00e4ssigkeit<\/strong> durch Echtzeit-\u00dcberwachung.\u00a0<\/p><\/div><\/li><li><span class=\"figures__value\">+ 25 %<\/span><div class=\"figures__text\"><p><strong>Verbesserung der Applikationsleistung<\/strong> durch Microservices-Architektur.<\/p><\/div><\/li><li><span class=\"figures__value\">\u2191 40 %<\/span><div class=\"figures__text\"><p><strong>schnellere Markteinf\u00fchrungen<\/strong> neuer Features durch DevOps.\u00a0<\/p><\/div><\/li><li><span class=\"figures__value\">\u2193 15 %<\/span><div class=\"figures__text\"><p><strong>geringerer Verwaltungsaufwand <\/strong>durch automatisierte IaC (Infrastructure as Code).\u00a0<\/p><\/div><\/li><li><span class=\"figures__value\">\u2191 35 %<\/span><div class=\"figures__text\"><p><strong>h\u00f6here Benutzerzufriedenheit <\/strong>durch verbesserte Anwendungsverf\u00fcgbarkeit.\u00a0<\/p><\/div><\/li><\/ul>\n  <\/div>\n<\/section>\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Inspiration from practice<\/h2><p>Unser Migration-Projekt bei B. Braun zeigt, wie DevOps und Cloud-Migration selbst in streng regulierten Branchen wie dem Gesundheitswesen und der Fertigung bahnbrechende Ver\u00e4nderungen bewirken k\u00f6nnen. Das Beste daran? Dieser Ansatz er\u00f6ffnet endlose M\u00f6glichkeiten f\u00fcr Innovation auch in vielen anderen Industrien, von smarter Predictive Maintenance bis hin zu sicherer IoT-\u00dcberwachung f\u00fcr kritische Ger\u00e4te. Lasst euch inspirieren!<\/p> <p>Here are more exciting inspirations from our ideas factory:<\/p> <p><strong>Predictive maintenance for medical devices<\/strong><br>With a robust cloud infrastructure and advanced analytics tools such as machine learning, medical devices can be continuously monitored and proactive maintenance measures can be taken before system failures occur. The integration of IoT sensors and real-time data processing enables predictive maintenance that reduces downtime and extends the service life of devices.\u00a0<\/p> <p><strong>Secure IoT integrations for real-time monitoring<\/strong><br>In areas such as manufacturing or healthcare, real-time monitoring of machines and devices is critical to operations. Using DevOps methods to implement secure IoT networks and APIs not only enables real-time processing of sensor data, but also ensures the security and compliance of the entire system architecture. This creates a scalable, future-proof solution for critical infrastructures.\u00a0<\/p> <p><strong>Development of scalable platforms for digital health solutions\u00a0<\/strong><br>Cloud-native approaches, combined with containerized applications and microservices, provide the basis for the development of flexible and scalable platforms that are geared towards digital healthcare solutions. This enables the integration of electronic patient records (EPR), telemedicine and AI-supported diagnostic tools that are both data protection-compliant and high-performance.<\/p><\/div>\n<div class=\"btn-row\"><a class=\"btn btn--lg\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Request a prescription now<\/a><\/div>\n  <\/div>\n<\/section>\n\n<section class=\"section section--alt\">\n  <div class=\"container\">\n<div class=\"grid grid--3\"><div class=\"card card--feature\"><h2>Our tech kit<\/h2>\n<p>Wir setzten auf eine ma\u00dfgeschneiderte Auswahl der besten Tools, um h\u00f6chste Effizienz und nahtlose IT-Prozesse in einer hochregulierten Branche zu gew\u00e4hrleisten:\u00a0<\/p><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Cloud drive<\/h3><p>With Microsoft Azure, we have created a scalable and reliable cloud infrastructure that enables flexible adaptation to changing requirements.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Container Crafters<\/h3><p>Using Docker and Azure Kubernetes Service (AKS), we have containerized and orchestrated applications to ensure fast and scalable deployment.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>DevOps guru<\/h3><p>With Azure DevOps, Terraform and Chef, we automated infrastructure provisioning and optimized the CI\/CD pipeline for faster and more secure releases.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Monitor Maestro<\/h3><p>Thanks to Prometheus, Grafana and Azure Monitor, we were able to ensure seamless real-time monitoring of services and continuous improvement in service quality.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Security Guardians<\/h3><p>With Azure Active Directory, Azure Key Vault and Aqua Security, we ensure secure management of identities and sensitive data in compliance with regulatory requirements.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Data dynamo<\/h3><p>Azure SQL Database and Azure Cosmos DB provide us with a highly available and scalable data architecture for the fast and secure processing of business data.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Code Wizards<\/h3><p>Using C++, we have developed customized, high-performance applications that are perfectly tailored to B. Braun's requirements.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Collaboration experts<\/h3><p>With Confluence and Jira, we have established efficient documentation and agile project management that optimizes collaboration and traceability.<\/p><\/div><\/div><\/div><\/div>\n  <\/div>\n<\/section>\n<\/main>\n<footer class=\"ser-site-footer\">\n  <div class=\"container site-footer__top\">\n    <div class=\"footer-newsletter\">\n      <a class=\"btn btn--outline\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/newsletter\/\">Subscribe to our newsletter<\/a>\n    <\/div>\n    <div class=\"footer-brands\">\n      <p class=\"footer-title\">Our brands<\/p>\n      <ul class=\"brand-row\">\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/01\/cropped-Sky-E-Red-Technology_Logo-original-1.png\" alt=\"Sky-E Red Technology\" width=\"512\" height=\"512\"><\/a><\/li>\n        <li><a href=\"https:\/\/skyeredgames.de\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/10\/Sky-E-Red-GAMES-938x1024.png\" alt=\"Sky-E Red Games\" width=\"938\" height=\"1024\"><\/a><\/li>\n        <li><a href=\"https:\/\/skyered-business-education.de\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/10\/SER_Logo_2-1-2-1635x2048-1-818x1024.webp\" alt=\"Sky-E Red Business Education\" width=\"818\" height=\"1024\"><span class=\"brand-label\">Business<\/span><\/a><\/li>\n        <li><a href=\"https:\/\/skyered-education.de\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/10\/cropped-cropped-Sky-E-Red-Education_Logo_1-1-1002x1024.png\" alt=\"Sky-E Red Education\" width=\"1002\" height=\"1024\"><\/a><\/li>\n      <\/ul>\n      <p class=\"footer-claim\">\u201eSky-E Red: Masters of Cloud and DevOps, Game Innovators, and Certified IT Educators.\u201c<\/p>\n    <\/div>\n    <nav class=\"footer-nav\" aria-label=\"Fu\u00dfnavigation\">\n      <ul class=\"footer-links\">\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/\">Home<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services\/\">What we do<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Success stories<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/ueber-uns\/\">About us<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/impressum\/\">Imprint<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/datenschutz\/\">Data protection<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Contact us<\/a><\/li>\n      <\/ul>\n    <\/nav>\n    <div class=\"footer-bottom\">\n      <p class=\"mb-0\">Copyright \u00a9 2026 Sky-E Red GmbH<\/p>\n      <ul class=\"social\">\n        <li><a href=\"https:\/\/www.instagram.com\/skyerededucation\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a><\/li>\n        <li><a href=\"https:\/\/www.linkedin.com\/company\/skyered\/\" target=\"_blank\" rel=\"noopener\">Linkedin<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiktok.com\/@skyerededucation\" target=\"_blank\" rel=\"noopener\">TikTok<\/a><\/li>\n        <li><a href=\"https:\/\/www.threads.net\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">Threads<\/a><\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n<\/footer>\n\n\n<script>(function(){var b=atob('LyogU2t5LUUgUmVkIEVkdWNhdGlvbiDigJQgc2l0ZSBiZWhhdmlvdXIgKG5vIGRlcGVuZGVuY2llcykuCiAgIDEuIERlc2t0b3AgZHJvcGRvd25zOiBjbGljay9FbnRlci9TcGFjZSB0b2dnbGUsIGhvdmVyIG9wZW5zIG9uIHBvaW50ZXIgZGV2aWNlcywKICAgICAgRXNjYXBlIGNsb3NlcyBhbmQgcmV0dXJucyBmb2N1cywgQXJyb3dEb3duIG1vdmVzIGludG8gdGhlIG1lbnUsIG91dHNpZGUgY2xpY2sgY2xvc2VzLgogICAyLiBNb2JpbGUgZHJhd2VyOiBidXJnZXIgdG9nZ2xlcywgc3VibWVudXMgYXJlIGRpc2Nsb3N1cmUgYnV0dG9ucywgRXNjYXBlIGNsb3Nlcy4KICAgQWNjb3JkaW9ucyB1c2UgbmF0aXZlIDxkZXRhaWxzPiwgYW5kIHRoZSBvbmUgbW90aW9uIGdlc3R1cmUgKGhlcm8gY291cnNlLXNoZWV0IHJvd3MpCiAgIGlzIHB1cmUgQ1NTLCBzbyBuZWl0aGVyIG5lZWRzIHNjcmlwdC4gKi8KKGZ1bmN0aW9uICgpIHsKICAidXNlIHN0cmljdCI7CgogIHZhciBkZXNrdG9wSXRlbXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubmF2X19pdGVtLS1oYXMtbWVudSIpKTsKICB2YXIgY2FuSG92ZXIgPSB3aW5kb3cubWF0Y2hNZWRpYSAmJiB3aW5kb3cubWF0Y2hNZWRpYSgiKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSIpLm1hdGNoZXM7CgogIGZ1bmN0aW9uIHNldE9wZW4oaXRlbSwgb3BlbikgewogICAgdmFyIHRvZ2dsZSA9IGl0ZW0ucXVlcnlTZWxlY3RvcigiLm5hdl9fdG9nZ2xlIik7CiAgICBpdGVtLmNsYXNzTGlzdC50b2dnbGUoImlzLW9wZW4iLCBvcGVuKTsKICAgIGlmICh0b2dnbGUpIHRvZ2dsZS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCBvcGVuID8gInRydWUiIDogImZhbHNlIik7CiAgfQoKICBmdW5jdGlvbiBjbG9zZUFsbChleGNlcHQpIHsKICAgIGRlc2t0b3BJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgIGlmIChpdGVtICE9PSBleGNlcHQpIHNldE9wZW4oaXRlbSwgZmFsc2UpOwogICAgfSk7CiAgfQoKICBkZXNrdG9wSXRlbXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgdmFyIHRvZ2dsZSA9IGl0ZW0ucXVlcnlTZWxlY3RvcigiLm5hdl9fdG9nZ2xlIik7CiAgICB2YXIgbGlua3MgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoIi5uYXZfX21lbnUgYSIpKTsgfTsKICAgIGlmICghdG9nZ2xlKSByZXR1cm47CgogICAgdmFyIG9wZW5lZEJ5SG92ZXIgPSBmYWxzZTsKCiAgICB0b2dnbGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIEEgcG9pbnRlciB0aGF0IGhvdmVyZWQgdGhlIGl0ZW0gYWxyZWFkeSBvcGVuZWQgaXQ7IHRoZSBjbGljayBtdXN0IG5vdCBjbG9zZSBpdCBhZ2Fpbi4KICAgICAgdmFyIG9wZW4gPSBvcGVuZWRCeUhvdmVyID8gdHJ1ZSA6ICFpdGVtLmNsYXNzTGlzdC5jb250YWlucygiaXMtb3BlbiIpOwogICAgICBvcGVuZWRCeUhvdmVyID0gZmFsc2U7CiAgICAgIGNsb3NlQWxsKGl0ZW0pOwogICAgICBzZXRPcGVuKGl0ZW0sIG9wZW4pOwogICAgfSk7CgogICAgdG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBmdW5jdGlvbiAoZSkgewogICAgICBpZiAoZS5rZXkgPT09ICJBcnJvd0Rvd24iKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIGNsb3NlQWxsKGl0ZW0pOwogICAgICAgIHNldE9wZW4oaXRlbSwgdHJ1ZSk7CiAgICAgICAgdmFyIGZpcnN0ID0gbGlua3MoKVswXTsKICAgICAgICBpZiAoZmlyc3QpIGZpcnN0LmZvY3VzKCk7CiAgICAgIH0KICAgIH0pOwoKICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGZ1bmN0aW9uIChlKSB7CiAgICAgIHZhciBsaXN0ID0gbGlua3MoKTsKICAgICAgdmFyIGlkeCA9IGxpc3QuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTsKICAgICAgaWYgKGUudGFyZ2V0ID09PSB0b2dnbGUgJiYgZS5rZXkgIT09ICJFc2NhcGUiKSByZXR1cm47IC8vIHRvZ2dsZSBoYXMgaXRzIG93biBoYW5kbGVyCiAgICAgIGlmIChlLmtleSA9PT0gIkVzY2FwZSIpIHsKICAgICAgICBzZXRPcGVuKGl0ZW0sIGZhbHNlKTsKICAgICAgICB0b2dnbGUuZm9jdXMoKTsKICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gIkFycm93RG93biIgJiYgaWR4ID4gLTEpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgbGlzdFsoaWR4ICsgMSkgJSBsaXN0Lmxlbmd0aF0uZm9jdXMoKTsKICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gIkFycm93VXAiICYmIGlkeCA+IC0xKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIGlmIChpZHggPT09IDApIHRvZ2dsZS5mb2N1cygpOyBlbHNlIGxpc3RbaWR4IC0gMV0uZm9jdXMoKTsKICAgICAgfQogICAgfSk7CgogICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsIGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmICghaXRlbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpKSBzZXRPcGVuKGl0ZW0sIGZhbHNlKTsKICAgIH0pOwoKICAgIGlmIChjYW5Ib3ZlcikgewogICAgICB2YXIgdGltZXIgPSBudWxsOwogICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTsKICAgICAgICBvcGVuZWRCeUhvdmVyID0gIWl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1vcGVuIik7CiAgICAgICAgY2xvc2VBbGwoaXRlbSk7CiAgICAgICAgc2V0T3BlbihpdGVtLCB0cnVlKTsKICAgICAgfSk7CiAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICBvcGVuZWRCeUhvdmVyID0gZmFsc2U7CiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgc2V0T3BlbihpdGVtLCBmYWxzZSk7IH0sIDE2MCk7CiAgICAgIH0pOwogICAgfQogIH0pOwoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uIChlKSB7CiAgICBpZiAoIWUudGFyZ2V0LmNsb3Nlc3QoIi5uYXZfX2l0ZW0tLWhhcy1tZW51IikpIGNsb3NlQWxsKG51bGwpOwogIH0pOwoKICAvKiBNb2JpbGUgZHJhd2VyICovCiAgdmFyIGJ1cmdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5idXJnZXIiKTsKICB2YXIgZHJhd2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vYmlsZS1uYXYiKTsKCiAgZnVuY3Rpb24gc2V0RHJhd2VyKG9wZW4pIHsKICAgIGlmICghYnVyZ2VyIHx8ICFkcmF3ZXIpIHJldHVybjsKICAgIGJ1cmdlci5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCBvcGVuID8gInRydWUiIDogImZhbHNlIik7CiAgICBidXJnZXIuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgb3BlbiA\/ICJNZW7DvCBzY2hsaWXDn2VuIiA6ICJNZW7DvCDDtmZmbmVuIik7CiAgICBkcmF3ZXIuaGlkZGVuID0gIW9wZW47CiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoIm5hdi1vcGVuIiwgb3Blbik7CiAgfQoKICBpZiAoYnVyZ2VyICYmIGRyYXdlcikgewogICAgYnVyZ2VyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgewogICAgICBzZXREcmF3ZXIoYnVyZ2VyLmdldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpICE9PSAidHJ1ZSIpOwogICAgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgZnVuY3Rpb24gKGUpIHsKICAgICAgaWYgKGUua2V5ID09PSAiRXNjYXBlIiAmJiAhZHJhd2VyLmhpZGRlbikgewogICAgICAgIHNldERyYXdlcihmYWxzZSk7CiAgICAgICAgYnVyZ2VyLmZvY3VzKCk7CiAgICAgIH0KICAgIH0pOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoID49IDExODAgJiYgIWRyYXdlci5oaWRkZW4pIHNldERyYXdlcihmYWxzZSk7CiAgICB9KTsKICB9CgogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1vYmlsZS1uYXZfX3RvZ2dsZSIpLCBmdW5jdGlvbiAoYnRuKSB7CiAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBzdWIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidG4uZ2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIikpOwogICAgICB2YXIgb3BlbiA9IGJ0bi5nZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiKSAhPT0gInRydWUiOwogICAgICBidG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwgb3BlbiA\/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAgICBpZiAoc3ViKSBzdWIuaGlkZGVuID0gIW9wZW47CiAgICB9KTsKICB9KTsKCiAgLy8gVGltZWxpbmUgcHJvZ3Jlc3M6IHRoZSBsaW5lIGZpbGxzIGFuZCB0aGUgZG90cyB0dXJuIHR1cnF1b2lzZSBhcyB0aGUgc2VjdGlvbiBzY3JvbGxzIGJ5LgogIHZhciB0aW1lbGluZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGltZWxpbmUiKSk7CiAgaWYgKHRpbWVsaW5lcy5sZW5ndGgpIHsKICAgIHZhciB1cGRhdGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBtaWQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjY7CiAgICAgIHRpbWVsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uICh0bCkgewogICAgICAgIHZhciBib3ggPSAodGwuY2xvc2VzdCgic2VjdGlvbiIpIHx8IHRsKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICB2YXIgcCA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIChtaWQgLSBib3gudG9wKSAvIE1hdGgubWF4KDEsIGJveC5oZWlnaHQgLSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjMpKSk7CiAgICAgICAgdGwuc3R5bGUuc2V0UHJvcGVydHkoIi0tcCIsIHAudG9GaXhlZCgzKSk7CiAgICAgICAgdmFyIGl0ZW1zID0gdGwuY2hpbGRyZW47CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgaXRlbXNbaV0uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtZG9uZSIsIHAgPj0gaSAvIE1hdGgubWF4KDEsIGl0ZW1zLmxlbmd0aCAtIDEpIC0gMC4wMDEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9OwogICAgdGltZWxpbmVzLmZvckVhY2goZnVuY3Rpb24gKHRsKSB7IHRsLnNldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiLCAiIik7IH0pOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZSwgeyBwYXNzaXZlOiB0cnVlIH0pOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZSk7CiAgICB1cGRhdGUoKTsKICB9CgogIC8vIEZ1bmRpbmcgY2FsY3VsYXRvciAoUUNHIHBhZ2UpOiBtb250aGx5IGZ1bmRpbmcgcGVyIGVtcGxveWVlIGZyb20gY29tcGFueSBzaXplIGFuZCBncm9zcyBzYWxhcnkuCiAgLy8gVmFsdWVzIGFyZSB0aGUgb25lcyBpbiB0aGUgbGl2ZSBwYWdlJ3Mgc2NyaXB0IChrZXlzOiBzaXplX3NhbGFyeSkuCiAgdmFyIGNhbGMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1jYWxjXSIpOwogIGlmIChjYWxjKSB7CiAgICB2YXIgdGFibGUgPSB7IHNtYWxsXzQwOiAzMDAwLCBzbWFsbF81MDogMzc1MCwgc21hbGxfNjA6IDQ2NTAsIGJpZ180MDogMjAwMCwgYmlnXzUwOiAyNTAwLCBiaWdfNjA6IDMxMDAgfTsKICAgIHZhciBvdXQgPSBjYWxjLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLWNhbGMtb3V0XSIpOwogICAgdmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIHNpemUgPSBjYWxjLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9Im1pdGFyYmVpdGVyIl06Y2hlY2tlZCcpOwogICAgICB2YXIgcGF5ID0gY2FsYy5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJnZWhhbHQiXTpjaGVja2VkJyk7CiAgICAgIGlmICghc2l6ZSB8fCAhcGF5KSB7CiAgICAgICAgb3V0LnRleHRDb250ZW50ID0gIkJpdHRlIHRyZWZmZW4gU2llIGVpbmUgQXVzd2FobC4iOwogICAgICAgIG91dC5jbGFzc05hbWUgPSAiY2FsY19fdmFsdWUgaXMtZW1wdHkiOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIgYW1vdW50ID0gdGFibGVbc2l6ZS52YWx1ZSArICJfIiArIHBheS52YWx1ZV07CiAgICAgIG91dC50ZXh0Q29udGVudCA9IGFtb3VudC50b0xvY2FsZVN0cmluZygiZGUtREUiLCB7IHN0eWxlOiAiY3VycmVuY3kiLCBjdXJyZW5jeTogIkVVUiIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCB9KTsKICAgICAgb3V0LmNsYXNzTmFtZSA9ICJjYWxjX192YWx1ZSBpcy1zZXQiOwogICAgfTsKICAgIGNhbGMuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgcmVuZGVyKTsKICB9CgogIC8vIENhcm91c2VsIChjdXN0b21lciBleGFtcGxlcyksIGluZmluaXRlIGluIGJvdGggZGlyZWN0aW9uczogdGhlIHNsaWRlcyBhcmUgY2xvbmVkIGJlZm9yZSBhbmQgYWZ0ZXIgKGNsb25lcyBhcmUKICAvLyBhcmlhLWhpZGRlbiBhbmQgaW5lcnQpLCBwcmV2L25leHQvc3dpcGUvYXJyb3cga2V5cyBrZWVwIHNjcm9sbGluZywgYW5kIG9uY2Ugc2Nyb2xsaW5nIGhhcyBzZXR0bGVkIHRoZSB0cmFjayBqdW1wcwogIC8vIGJ5IGV4YWN0bHkgb25lIHNldCBvZiBzbGlkZXMsIHdoaWNoIGxvb2tzIGlkZW50aWNhbCwgc28gbm9ib2R5IHNlZXMgdGhlIHdyYXAuIENTUyBzY3JvbGwtc25hcCBkb2VzIHRoZSBzbGlkaW5nLgogIC8vIE5vIGF1dG9wbGF5LiBTbW9vdGggc2Nyb2xsaW5nIG9ubHkgd2hlbiB0aGUgdmlzaXRvciBoYXMgbm90IGFza2VkIGZvciByZWR1Y2VkIG1vdGlvbi4KICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNhcm91c2VsXSIpLCBmdW5jdGlvbiAocm9vdCkgewogICAgdmFyIHZwID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIuY2Fyb3VzZWxfX3ZpZXdwb3J0Iik7CiAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5jYXJvdXNlbF9fdHJhY2siKTsKICAgIHZhciByZWFsID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuY2Fyb3VzZWxfX3NsaWRlIikpOwogICAgdmFyIGNvbnRyb2xzID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIuY2Fyb3VzZWxfX2NvbnRyb2xzIik7CiAgICB2YXIgcHJldiA9IHJvb3QucXVlcnlTZWxlY3RvcigiLmNhcm91c2VsX19idG4tLXByZXYiKTsKICAgIHZhciBuZXh0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIuY2Fyb3VzZWxfX2J0bi0tbmV4dCIpOwogICAgdmFyIGRvdHNCb3ggPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5jYXJvdXNlbF9fZG90cyIpOwogICAgdmFyIG4gPSByZWFsLmxlbmd0aDsKICAgIGlmICghdnAgfHwgIXRyYWNrIHx8IG4gPCAyIHx8ICFjb250cm9scykgcmV0dXJuOwogICAgdmFyIHJlZHVjZSA9IHdpbmRvdy5tYXRjaE1lZGlhICYmIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7CgogICAgZnVuY3Rpb24gY2xvbmUoc2xpZGUpIHsKICAgICAgdmFyIGMgPSBzbGlkZS5jbG9uZU5vZGUodHJ1ZSk7CiAgICAgIGMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsICJ0cnVlIik7CiAgICAgIGMuc2V0QXR0cmlidXRlKCJpbmVydCIsICIiKTsKICAgICAgYy5yZW1vdmVBdHRyaWJ1dGUoInJvbGUiKTsKICAgICAgYy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtcm9sZWRlc2NyaXB0aW9uIik7CiAgICAgIGMucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWxhYmVsIik7CiAgICAgIHJldHVybiBjOwogICAgfQogICAgdmFyIGJlZm9yZSA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgIHZhciBhZnRlciA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgIHJlYWwuZm9yRWFjaChmdW5jdGlvbiAoc2wpIHsgYmVmb3JlLmFwcGVuZENoaWxkKGNsb25lKHNsKSk7IGFmdGVyLmFwcGVuZENoaWxkKGNsb25lKHNsKSk7IH0pOwogICAgdHJhY2suaW5zZXJ0QmVmb3JlKGJlZm9yZSwgdHJhY2suZmlyc3RDaGlsZCk7CiAgICB0cmFjay5hcHBlbmRDaGlsZChhZnRlcik7CiAgICB2YXIgYWxsID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodHJhY2suY2hpbGRyZW4pOyAvLyAzIHNldHM6IFtjbG9uZXNdW3JlYWxdW2Nsb25lc10KCiAgICB2YXIgZG90cyA9IHJlYWwubWFwKGZ1bmN0aW9uIChfLCBpKSB7CiAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CiAgICAgIGIudHlwZSA9ICJidXR0b24iOwogICAgICBiLmNsYXNzTmFtZSA9ICJjYXJvdXNlbF9fZG90IjsKICAgICAgYi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCAocm9vdC5nZXRBdHRyaWJ1dGUoImRhdGEtbGFiZWwtc2xpZGUiKSB8fCAiSXRlbSIpICsgIiAiICsgKGkgKyAxKSArICIgIiArIChyb290LmdldEF0dHJpYnV0ZSgiZGF0YS1sYWJlbC1vZiIpIHx8ICIvIikgKyAiICIgKyBuKTsKICAgICAgYi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgZ28obiArIGkpOyB9KTsKICAgICAgZG90c0JveC5hcHBlbmRDaGlsZChiKTsKICAgICAgcmV0dXJuIGI7CiAgICB9KTsKICAgIHZhciBwYWRMZWZ0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHZwKS5wYWRkaW5nTGVmdCkgfHwgMDsgfTsKICAgIHZhciB0YXJnZXQgPSBmdW5jdGlvbiAoaSkgeyByZXR1cm4gdnAuc2Nyb2xsTGVmdCArIGFsbFtpXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gdnAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIHBhZExlZnQoKTsgfTsKICAgIGZ1bmN0aW9uIGdvKGkpIHsKICAgICAgaSA9IE1hdGgubWF4KDAsIE1hdGgubWluKGFsbC5sZW5ndGggLSAxLCBpKSk7CiAgICAgIHZwLnNjcm9sbFRvKHsgbGVmdDogdGFyZ2V0KGkpLCBiZWhhdmlvcjogcmVkdWNlID8gImF1dG8iIDogInNtb290aCIgfSk7CiAgICB9CiAgICBmdW5jdGlvbiBuZWFyZXN0KCkgewogICAgICB2YXIgYmVzdCA9IG4sIGRpc3QgPSBJbmZpbml0eTsKICAgICAgYWxsLmZvckVhY2goZnVuY3Rpb24gKF8sIGkpIHsKICAgICAgICB2YXIgZCA9IE1hdGguYWJzKHRhcmdldChpKSAtIHZwLnNjcm9sbExlZnQpOwogICAgICAgIGlmIChkIDwgZGlzdCkgeyBkaXN0ID0gZDsgYmVzdCA9IGk7IH0KICAgICAgfSk7CiAgICAgIHJldHVybiBiZXN0OwogICAgfQogICAgZnVuY3Rpb24gc2V0RG90cygpIHsKICAgICAgdmFyIGEgPSBuZWFyZXN0KCkgJSBuOwogICAgICBkb3RzLmZvckVhY2goZnVuY3Rpb24gKGQsIGkpIHsKICAgICAgICBpZiAoaSA9PT0gYSkgZC5zZXRBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIsICJ0cnVlIik7IGVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIpOwogICAgICB9KTsKICAgIH0KICAgIHZhciBwcmVzc2VkID0gZmFsc2UsIHRpbWVyID0gbnVsbDsKICAgIGZ1bmN0aW9uIHNldHRsZSgpIHsKICAgICAgdGltZXIgPSBudWxsOwogICAgICBpZiAocHJlc3NlZCkgcmV0dXJuOwogICAgICB2YXIgaSA9IG5lYXJlc3QoKTsKICAgICAgaWYgKGkgPCBuIHx8IGkgPj0gMiAqIG4pIHsKICAgICAgICB2YXIgc2V0ID0gdGFyZ2V0KG4pIC0gdGFyZ2V0KDApOyAvLyB3aWR0aCBvZiBvbmUgc2V0IG9mIHNsaWRlcyBpbmNsdWRpbmcgZ2FwcwogICAgICAgIHZwLnNjcm9sbExlZnQgKz0gaSA8IG4gPyBzZXQgOiAtc2V0OyAvLyBpbnN0YW50IGp1bXAgdG8gdGhlIGlkZW50aWNhbCBwb3NpdGlvbiBpbiB0aGUgbWlkZGxlIHNldAogICAgICB9CiAgICAgIHNldERvdHMoKTsKICAgIH0KICAgIGZ1bmN0aW9uIG9uU2Nyb2xsKCkgewogICAgICBzZXREb3RzKCk7CiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CiAgICAgIHRpbWVyID0gc2V0VGltZW91dChzZXR0bGUsIDEyMCk7CiAgICB9CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBnbyhuZWFyZXN0KCkgLSAxKTsgfSk7CiAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBnbyhuZWFyZXN0KCkgKyAxKTsgfSk7CiAgICB2cC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pOwogICAgdnAuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCBmdW5jdGlvbiAoKSB7IHByZXNzZWQgPSB0cnVlOyB9KTsKICAgIFsicG9pbnRlcnVwIiwgInBvaW50ZXJjYW5jZWwiLCAicG9pbnRlcmxlYXZlIl0uZm9yRWFjaChmdW5jdGlvbiAoZXYpIHsKICAgICAgdnAuYWRkRXZlbnRMaXN0ZW5lcihldiwgZnVuY3Rpb24gKCkgeyBpZiAocHJlc3NlZCkgeyBwcmVzc2VkID0gZmFsc2U7IGNsZWFyVGltZW91dCh0aW1lcik7IHRpbWVyID0gc2V0VGltZW91dChzZXR0bGUsIDEyMCk7IH0gfSk7CiAgICB9KTsKICAgIHZwLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBmdW5jdGlvbiAoKSB7IHByZXNzZWQgPSB0cnVlOyB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICB2cC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIGZ1bmN0aW9uICgpIHsgcHJlc3NlZCA9IGZhbHNlOyBjbGVhclRpbWVvdXQodGltZXIpOyB0aW1lciA9IHNldFRpbWVvdXQoc2V0dGxlLCAxMjApOyB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgeyB2YXIgaSA9IG5lYXJlc3QoKSAlIG47IHZwLnNjcm9sbExlZnQgPSB0YXJnZXQobiArIGkpOyBzZXREb3RzKCk7IH0pOwogICAgdnAuc2V0QXR0cmlidXRlKCJyb2xlIiwgImdyb3VwIik7CiAgICB2cC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCByb290LmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpICsgKHJvb3QuZ2V0QXR0cmlidXRlKCJkYXRhLWxhYmVsLWtleXMiKSB8fCAiIikpOwogICAgY29udHJvbHMuaGlkZGVuID0gZmFsc2U7CiAgICB2cC5zY3JvbGxMZWZ0ID0gdGFyZ2V0KG4pOyAvLyBzdGFydCBvbiB0aGUgZmlyc3QgcmVhbCBzbGlkZQogICAgc2V0RG90cygpOwogIH0pOwp9KSgpOwoKLyogVGFiczogb25lIHZpc2libGUgcGFuZWwsIGFycm93IGtleXMgbW92ZSBiZXR3ZWVuIHRhYnMuIFdpdGhvdXQgdGhpcyBzY3JpcHQgYWxsIHBhbmVscyBzdGF5IHZpc2libGUuICovCihmdW5jdGlvbiAoKSB7CiAgInVzZSBzdHJpY3QiOwogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtdGFic10iKSwgZnVuY3Rpb24gKHJvb3QpIHsKICAgIHZhciB0YWJzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIudGFic19fdGFiIikpOwogICAgdmFyIHBhbmVscyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRhYnNfX3BhbmVsIikpOwogICAgaWYgKHRhYnMubGVuZ3RoIDwgMiB8fCB0YWJzLmxlbmd0aCAhPT0gcGFuZWxzLmxlbmd0aCkgcmV0dXJuOwogICAgcm9vdC5jbGFzc0xpc3QuYWRkKCJpcy1qcyIpOwogICAgZnVuY3Rpb24gc2hvdyhpLCBmb2N1cykgewogICAgICB0YWJzLmZvckVhY2goZnVuY3Rpb24gKHQsIGopIHsKICAgICAgICB0LnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsIGogPT09IGkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICAgICB0LnRhYkluZGV4ID0gaiA9PT0gaSA\/IDAgOiAtMTsKICAgICAgICBwYW5lbHNbal0uaGlkZGVuID0gaiAhPT0gaTsKICAgICAgfSk7CiAgICAgIGlmIChmb2N1cykgdGFic1tpXS5mb2N1cygpOwogICAgfQogICAgdGFicy5mb3JFYWNoKGZ1bmN0aW9uICh0LCBpKSB7CiAgICAgIHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7IHNob3coaSwgZmFsc2UpOyB9KTsKICAgICAgdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgZnVuY3Rpb24gKGUpIHsKICAgICAgICB2YXIgayA9IGUua2V5LCBuID0gdGFicy5sZW5ndGg7CiAgICAgICAgaWYgKGsgPT09ICJBcnJvd1JpZ2h0IiB8fCBrID09PSAiQXJyb3dEb3duIikgeyBlLnByZXZlbnREZWZhdWx0KCk7IHNob3coKGkgKyAxKSAlIG4sIHRydWUpOyB9CiAgICAgICAgZWxzZSBpZiAoayA9PT0gIkFycm93TGVmdCIgfHwgayA9PT0gIkFycm93VXAiKSB7IGUucHJldmVudERlZmF1bHQoKTsgc2hvdygoaSArIG4gLSAxKSAlIG4sIHRydWUpOyB9CiAgICAgICAgZWxzZSBpZiAoayA9PT0gIkhvbWUiKSB7IGUucHJldmVudERlZmF1bHQoKTsgc2hvdygwLCB0cnVlKTsgfQogICAgICAgIGVsc2UgaWYgKGsgPT09ICJFbmQiKSB7IGUucHJldmVudERlZmF1bHQoKTsgc2hvdyhuIC0gMSwgdHJ1ZSk7IH0KICAgICAgfSk7CiAgICB9KTsKICAgIHNob3coMCwgZmFsc2UpOwogIH0pOwp9KSgpOwo='),u=new Uint8Array(b.length);for(var i=0;i<b.length;i++)u[i]=b.charCodeAt(i);new Function(new TextDecoder('utf-8').decode(u))();})();<\/script>","protected":false},"excerpt":{"rendered":"<p>Zum Inhalt springen Services Services DevOps Cloud AI Workflow Automation Enterprise Game Solutions Specials Sky-E Red Fusion Freelancing Code Red Academy TechBoost Bundles Unternehmen \u00dcber Uns \u00dcber Uns Services Blog Webinar Werde Teil unserer Community LinkedIn Instagram TikTok Threads Karriere Karriere bei Sky-E Red Karriere als Freelancer Projekte \u2192 Projekte \u2192 Newsletter abonnieren Blog Projekte [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":14379,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"content-type":"","footnotes":""},"class_list":["post-14575","page","type-page","status-publish","hentry"],"rankMath":{"parentDomain":"skyeredtechnology.de","noFollowDomains":[],"noFollowExcludeDomains":[],"noFollowExternalLinks":false,"featuredImageNotice":"The featured image should be at least 200 by 200 pixels to be picked up by Facebook and other social media sites.","pluginReviewed":false,"postSettings":{"linkSuggestions":true,"useFocusKeyword":false},"frontEndScore":false,"postName":"projekte-cloud-migration-pharma","permalinkFormat":"https:\/\/skyeredtechnology.de\/en\/%pagename%\/","showLockModifiedDate":true,"assessor":{"focusKeywordLink":"https:\/\/skyeredtechnology.de\/wp-admin\/edit.php?focus_keyword=%focus_keyword%&post_type=%post_type%","hasTOCPlugin":true,"primaryTaxonomy":false,"serpData":{"title":"","description":"","focusKeywords":"","pillarContent":false,"canonicalUrl":"","breadcrumbTitle":"","advancedRobots":[],"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":"","facebookHasOverlay":false,"facebookImageOverlay":"","facebookAuthor":"","twitterCardType":"","twitterUseFacebook":true,"twitterTitle":"","twitterDescription":"","twitterImage":"","twitterImageID":"","twitterHasOverlay":false,"twitterImageOverlay":"","twitterPlayerUrl":"","twitterPlayerSize":"","twitterPlayerStream":"","twitterPlayerStreamCtype":"","twitterAppDescription":"","twitterAppIphoneName":"","twitterAppIphoneID":"","twitterAppIphoneUrl":"","twitterAppIpadName":"","twitterAppIpadID":"","twitterAppIpadUrl":"","twitterAppGoogleplayName":"","twitterAppGoogleplayID":"","twitterAppGoogleplayUrl":"","twitterAppCountry":"","robots":{"noindex":true,"nofollow":true},"twitterAuthor":"username","primaryTerm":0,"authorName":"skyeredtechnology.de","titleTemplate":"%title% %page% %sep% %sitename%","descriptionTemplate":"","showScoreFrontend":true,"lockModifiedDate":false},"powerWords":["a cut above","absolute","absolutely","absolutely lowest","absurd","abuse","accurate","accuse","achieve","actionable","adaptable","adequate","admit","adorable","advantage","advice","affordable","aggravate","aggressive","agitated","agonizing","agony","alarmed","alarming","alienated","aligned","alive","all-inclusive","alluring","always","amazing","amp","animated","annihilate","announcing","anonymous","antagonistic","anxious","apocalypse","appalled","approved","approving","argumentative","armageddon","arrogant","ass kicking","assault","assured","astonishing","astounded","astounding","at ease","atrocious","attack","attractive","audacity","authentic","authoritative","authority","avoid","aware","awe-inspiring","awesome","awkward","backbone","backdoor","backed","backlash","backstabbing","badass","balanced","banned","bargain","barrage","basic","battle","beaming","beat down","beating","beautiful","beauty","begging","behind the scenes","belief","belong","best","best-selling","better","beware","big","billion","black market","blacklisted","blast","blessed","blinded","blissful","blood","bloodbath","bloodcurdling","bloody","blunder","blushing","bold","bomb","bona","bona fide","bonanza","bonus","bootleg","bottom line","bountiful","brave","bravery","brazen","break","breaking","breakthrough","breathtaking","bright","brilliant","broke","brutal","budget","buffoon","bullshit","bully","bumbling","buy","cadaver","calm","cancel anytime","capable","captivate","captivating","carefree","case study","cash","cataclysmic","catapult","catastrophe","caution","censored","centered","certain","certainly","certified","challenge","charming","cheap","cheat","cheat-sheet","cheer","cheerful","child-like","clarity","classified","clear","clueless","collapse","colorful","colossal","comfortable","compare","competitive","complete","completely","completeness","comprehensive","compromise","compulsive","concealed","conclusive","condemning","condescending","confess","confession","confessions","confident","confidential","conquer","conscientious","constructive","content","contrary","controlling","controversial","convenient","convert","cool","cooperative","copy","corpse","corrupt","corrupting","courage","courageous","cover-up","covert","coward","cowardly","crammed","crave","crazy","create","creative","cringeworthy","cripple","crisis","critical","crooked","crush","crushing","damaging","danger","dangerous","daring","dazzling","dead","deadline","deadly","death","decadent","deceived","deceptive","deep","defiance","definitely","definitive","defying","dejected","delicious","delight","delighted","delightful","delirious","delivered","demoralizing","deplorable","depraved","desire","desperate","despicable","destiny","destroy","detailed","devastating","devoted","diagnosed","direct","dirty","disadvantages","disastrous","discount","discover","disdainful","disempowered","disgusted","disgusting","dishonest","disillusioned","disoriented","distracted","distraught","distressed","distrustful","divulge","document","dollar","dominate","doomed","double","doubtful","download","dreadful","dreamy","drive","drowning","dumb","dynamic","eager","earnest","easily","easy","economical","ecstatic","edge","effective","efficient","effortless","elated","eliminate","elite","embarrass","embarrassed","embarrassing","emergency","emerging","emphasize","empowered","enchant","encouraged","endorsed","energetic","energy","enormous","enraged","enthusiastic","envy","epic","epidemic","essential","ethical","euphoric","evil","exactly","exasperated","excellent","excited","excitement","exciting","exclusive","exclusivity","excruciating","exhilarated","expensive","expert","explode","exploit","explosive","exposed","exquisite","extra","extraordinary","extremely","exuberant","eye-opening","fail","fail-proof","failure","faith","famous","fantasy","fascinating","fatigued","faux","faux pas","fearless","feast","feeble","festive","fide","fierce","fight","final","fine","fired","first","first ever","flirt","fluid","focus","focused","fool","fooled","foolish","forbidden","force-fed","forever","forgiving","forgotten","formula","fortune","foul","frantic","free","freebie","freedom","frenzied","frenzy","frightening","frisky","frugal","frustrated","fulfill","fulfilled","full","fully","fun","fun-loving","fundamentals","funniest","funny","furious","gambling","gargantuan","genius","genuine","gift","gigantic","giveaway","glamorous","gleeful","glorious","glowing","goddamn","gorgeous","graceful","grateful","gratified","gravity","great","greatest","greatness","greed","greedy","gripping","grit","grounded","growth","guaranteed","guilt","guilt-free","gullible","guts","hack","happiness","happy","harmful","harsh","hate","have you heard","havoc","hazardous","healthy","heart","heartbreaking","heartwarming","heavenly","hell","helpful","helplessness","hero","hesitant","hidden","high tech","highest","highly effective","hilarious","hoak","hoax","honest","honored","hope","hopeful","horribly","horrific","horrifying","horror","hostile","how to","huge","humility","humor","hurricane","hurry","hypnotic","idiot","ignite","illegal","illusive","imagination","immediately","imminently","impatience","impatient","impenetrable","important","impressive","improved","in the zone","incapable","incapacitated","incompetent","inconsiderate","increase","incredible","indecisive","indulgence","indulgent","inexpensive","inferior","informative","infuriated","ingredients","innocent","innovative","insane","insecure","insider","insidious","inspired","inspiring","instant savings","instantly","instructive","insult","intel","intelligent","intense","interesting","intriguing","introducing","invasion","investment","iron-clad","ironclad","irresistible","irs","is here","jackpot","jail","jaw-dropping","jealous","jeopardy","jittery","jovial","joyous","jubilant","judgmental","jumpstart","just arrived","keen","kickass","kickstart","kill","killed","killing","kills","know it all","lame","largest","lascivious","last","last chance","last minute","latest","laugh","laughing","launch","launching","lavishly","lawsuit","lazy","left behind","legendary","legitimate","liberal","liberated","lick","lies","life-changing","lifetime","light","lighthearted","likely","limited","literally","little-known","loathsome","lonely","looming","loser","lost","love","lucrative","lunatic","lurking","lust","luxurious","luxury","lying","magic","magical","magnificent","mainstream","malicious","mammoth","manipulative","marked down","massive","master","masterclass","maul","mediocre","meditative","meltdown","memorability","memorable","menacing","mesmerizing","meticulous","mind-blowing","minimalist","miracle","mired","mischievous","misgiving","missing out","mistake","monetize","money","moneyback","moneygrubbing","monumental","most important","motivated","mouth-watering","murder","mystery","nail","naked","natural","naughty","nazi","nest egg","never","new","nightmare","no good","no obligation","no one talks about","no questions asked","no risk","no strings attached","non-controlling","noted","novelty","now","obnoxious","obsessed","obsession","obvious","odd","off-kilter","off-limits","off-the record","offensive","official","okay","on-demand","open-minded","opportunities","optimistic","ordeal","outlawed","outrageousness","outstanding","overcome","overjoyed","overnight","overwhelmed","packed","painful","painless","painstaking","pale","panic","panicked","paralyzed","pas","passionate","pathetic","pay zero","payback","perfect","peril","perplexed","perspective","pessimistic","pioneering","piranha","pitfall","pitiful","placid","plague","played","playful","pleased","pluck","plummet","plunge","poison","poisonous","polarizing","poor","popular","portfolio","pound","powerful","powerless","practical","preposterous","prestige","price","priceless","pride","prison","privacy","private","privileged","prize","problem","productive","professional","profit","profitable","profound","promiscuous","promising","promote","protect","protected","proven","provocative","provoke","psychological","pummel","punch","punish","pus","quadruple","quality","quarrelsome","quick","quick-start","quickly","quiet","radiant","rare","ravenous","rebellious","recession-proof","reckoning","recognized","recommend","recreate","reduced","reflective","refugee","refund","refundable","reject","relaxed","release","relentless","reliable","remarkable","replicate","report","reprimanding","repulsed","repulsive","research","resentful","resourceful","responsible","responsive","rested","restricted","results","retaliating","reveal","revealing","revenge","revengeful","revisited","revolting","revolutionary","reward","rich","ridiculous","risky","riveting","rookie","rowdy","ruin","rules","ruthless","sabotaging","sacred","sadistic","sadly","sadness","safe","safety","sale","sampler","sarcastic","satisfied","savage","savagery","save","savings","savvy","scam","scandal","scandalous","scarce","scared","scary","scornful","scream","searing","secret","secret agenda","secret plot","secrets","secure","security","seductive","seething","seize","selected","self-hating","self-sufficient","sensational","senseless","sensual","serene","seriously","severe","sex","sexy","shaking","shameful","shameless","shaming","shatter","shellacking","shocking","should","shrewd","sick and tired","signs","silly","simple","simplicity","simplified","simplistic","sincere","sinful","sins","six-figure","sizable","sizzle","sizzled","sizzles","sizzling","sizzlingly","skill","skyrocket","slaughter","slave","sleazy","sleeping","sly","smash","smiling","smug","smuggle","smuggled","sneak-peek","sneaky","sniveling","snob","snooty","snotty","soar","soaring","solid","solution","spank","special","spectacular","speedy","spell-binding","spine","spirit","spirited","spiteful","spoiler","spontaneous","spotlight","spunky","squirming","stable","staggering","startling","steady","steal","stealthy","steamy","step-by-step","still","stoic","stop","strange","strangle","strategy","stressed","strong","strongly suggest","struggle","stuck up","studies","stunning","stupid","stupid-simple","sturdy","sublime","succeed","success","successful","suck","suddenly","suffer","sunny","super","super-human","superb","supercharge","superior","supported","supportive","sure","sure fire","surefire","surge","surging","surprise","surprised","surprising","survival","survive","suspicious","sweaty","swoon","swoon-worthy","tailspin","tank","tantalizing","targeted","tawdry","tease","technology","teetering","tempting","tenacious","tense","terrible","terrific","terrified","terrifying","terror","terrorist","tested","thankful","the truth","threaten","threatened","thrilled","thrilling","thug","ticked off","tickled","timely","today","torture","toxic","track record","trade secret","tragedy","tragic","transform","transparency","trap","trapped","trauma","traumatized","treacherous","treasure","tremendous","trend","tricks","triggers","triple","triumph","truly","trusting","trustworthy","truth","truthful","turbo-charge","turbocharges","tweaks","twitching","ultimate","unadulterated","unassuming","unauthorized","unbelievable","unburdened","uncaring","uncensored","uncertain","uncomfortable","unconditional","uncontrollable","unconventional","uncovered","undeniable","under priced","undercover","underground","underhanded","underused","unexpected","unforgettable","unheard of","unhurried","uninterested","unique","unjustified","unknowingly","unleashed","unlimited","unlock","unparalleled","unpopular","unreliable","unresponsive","unseen","unstable","unstoppable","unsure","unsurpassed","untapped","unusual","up-sell","upbeat","uplifted","uplifting","urge","urgent","useful","useless","validate","valor","valuable","value","vanquish","vaporize","venomous","verify","vibrant","vicious","victim","victory","vigorous","vilified","vindictive","violated","violent","volatile","vulnerable","waiting","wanted","wanton","warning","waste","weak","wealth","weird","what no one tells you","whip","whopping","wicked","wild","willpower","withheld","wonderful","wondrous","woozy","world","worry","worst","worthwhile","wounded","wreaking","youthful","zen","zinger"],"diacritics":{"A":"[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]","AA":"[\\uA732]","AE":"[\\u00C6\\u01FC\\u01E2]","AO":"[\\uA734]","AU":"[\\uA736]","AV":"[\\uA738\\uA73A]","AY":"[\\uA73C]","B":"[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]","C":"[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]","D":"[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]","DZ":"[\\u01F1\\u01C4]","Dz":"[\\u01F2\\u01C5]","E":"[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]","F":"[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]","G":"[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]","H":"[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]","I":"[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]","J":"[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]","K":"[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]","L":"[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]","LJ":"[\\u01C7]","Lj":"[\\u01C8]","M":"[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]","N":"[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]","NJ":"[\\u01CA]","Nj":"[\\u01CB]","O":"[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]","OI":"[\\u01A2]","OO":"[\\uA74E]","OU":"[\\u0222]","P":"[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]","Q":"[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]","R":"[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]","S":"[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]","T":"[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]","TZ":"[\\uA728]","U":"[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]","V":"[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]","VY":"[\\uA760]","W":"[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]","X":"[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]","Y":"[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]","Z":"[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]","a":"[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]","aa":"[\\uA733]","ae":"[\\u00E6\\u01FD\\u01E3]","ao":"[\\uA735]","au":"[\\uA737]","av":"[\\uA739\\uA73B]","ay":"[\\uA73D]","b":"[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]","c":"[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]","d":"[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]","dz":"[\\u01F3\\u01C6]","e":"[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]","f":"[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]","g":"[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]","h":"[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]","hv":"[\\u0195]","i":"[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]","j":"[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]","k":"[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]","l":"[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]","lj":"[\\u01C9]","m":"[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]","n":"[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]","nj":"[\\u01CC]","o":"[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]","oi":"[\\u01A3]","ou":"[\\u0223]","oo":"[\\uA74F]","p":"[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]","q":"[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]","r":"[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]","s":"[\\u0073\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]","ss":"[\\u00DF]","t":"[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]","tz":"[\\uA729]","u":"[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]","v":"[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]","vy":"[\\uA761]","w":"[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]","x":"[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]","y":"[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]","z":"[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]"},"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasRedirection":false,"hasBreadcrumb":true},"homeUrl":"https:\/\/skyeredtechnology.de\/en","objectID":14575,"objectType":"post","locale":"en","localeFull":"en_US","overlayImages":{"play":{"name":"Play icon","url":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","path":"\/home\/u291072782\/domains\/skyeredtechnology.de\/public_html\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","position":"middle_center"},"gif":{"name":"GIF icon","url":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","path":"\/home\/u291072782\/domains\/skyeredtechnology.de\/public_html\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","position":"middle_center"}},"defautOgImage":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/social-placeholder.jpg","customPermalinks":true,"isUserRegistered":true,"autoSuggestKeywords":true,"connectSiteUrl":"https:\/\/rankmath.com\/auth?site=https%3A%2F%2Fskyeredtechnology.de%2Fen&r=https%3A%2F%2Fskyeredtechnology.de%2Fen%2Fwp-json%2Fwp%2Fv2%2Fpages%2F14575%3Fnonce%3D090f628d49","maxTags":5,"trendsIcon":"<svg viewBox=\"0 0 610 610\"><path d=\"M18.85,446,174.32,290.48l58.08,58.08L76.93,504a14.54,14.54,0,0,1-20.55,0L18.83,466.48a14.54,14.54,0,0,1,0-20.55Z\" style=\"fill:#4285f4\"\/><path d=\"M242.65,242.66,377.59,377.6l-47.75,47.75a14.54,14.54,0,0,1-20.55,0L174.37,290.43l47.75-47.75A14.52,14.52,0,0,1,242.65,242.66Z\" style=\"fill:#ea4335\"\/><polygon points=\"319.53 319.53 479.26 159.8 537.34 217.88 377.61 377.62 319.53 319.53\" style=\"fill:#fabb05\"\/><path d=\"M594.26,262.73V118.61h0a16.94,16.94,0,0,0-16.94-16.94H433.2a16.94,16.94,0,0,0-12,28.92L565.34,274.71h0a16.94,16.94,0,0,0,28.92-12Z\" style=\"fill:#34a853\"\/><rect width=\"610\" height=\"610\" style=\"fill:none\"\/><\/svg>","showScore":true,"siteFavIcon":"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/01\/webseite-icon-1-150x150.png","canUser":{"general":false,"advanced":false,"snippet":false,"social":false,"analysis":false,"analytics":false,"content_ai":false},"isPro":false,"is_front_page":false,"trendsUpgradeLink":"https:\/\/rankmath.com\/pricing\/?utm_source=Plugin&utm_medium=CE%20General%20Tab%20Trends&utm_campaign=WP","trendsUpgradeLabel":"Upgrade","trendsPreviewImage":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/trends-preview.jpg","currentEditor":false,"homepageData":{"assessor":{"powerWords":["a cut above","absolute","absolutely","absolutely lowest","absurd","abuse","accurate","accuse","achieve","actionable","adaptable","adequate","admit","adorable","advantage","advice","affordable","aggravate","aggressive","agitated","agonizing","agony","alarmed","alarming","alienated","aligned","alive","all-inclusive","alluring","always","amazing","amp","animated","annihilate","announcing","anonymous","antagonistic","anxious","apocalypse","appalled","approved","approving","argumentative","armageddon","arrogant","ass kicking","assault","assured","astonishing","astounded","astounding","at ease","atrocious","attack","attractive","audacity","authentic","authoritative","authority","avoid","aware","awe-inspiring","awesome","awkward","backbone","backdoor","backed","backlash","backstabbing","badass","balanced","banned","bargain","barrage","basic","battle","beaming","beat down","beating","beautiful","beauty","begging","behind the scenes","belief","belong","best","best-selling","better","beware","big","billion","black market","blacklisted","blast","blessed","blinded","blissful","blood","bloodbath","bloodcurdling","bloody","blunder","blushing","bold","bomb","bona","bona fide","bonanza","bonus","bootleg","bottom line","bountiful","brave","bravery","brazen","break","breaking","breakthrough","breathtaking","bright","brilliant","broke","brutal","budget","buffoon","bullshit","bully","bumbling","buy","cadaver","calm","cancel anytime","capable","captivate","captivating","carefree","case study","cash","cataclysmic","catapult","catastrophe","caution","censored","centered","certain","certainly","certified","challenge","charming","cheap","cheat","cheat-sheet","cheer","cheerful","child-like","clarity","classified","clear","clueless","collapse","colorful","colossal","comfortable","compare","competitive","complete","completely","completeness","comprehensive","compromise","compulsive","concealed","conclusive","condemning","condescending","confess","confession","confessions","confident","confidential","conquer","conscientious","constructive","content","contrary","controlling","controversial","convenient","convert","cool","cooperative","copy","corpse","corrupt","corrupting","courage","courageous","cover-up","covert","coward","cowardly","crammed","crave","crazy","create","creative","cringeworthy","cripple","crisis","critical","crooked","crush","crushing","damaging","danger","dangerous","daring","dazzling","dead","deadline","deadly","death","decadent","deceived","deceptive","deep","defiance","definitely","definitive","defying","dejected","delicious","delight","delighted","delightful","delirious","delivered","demoralizing","deplorable","depraved","desire","desperate","despicable","destiny","destroy","detailed","devastating","devoted","diagnosed","direct","dirty","disadvantages","disastrous","discount","discover","disdainful","disempowered","disgusted","disgusting","dishonest","disillusioned","disoriented","distracted","distraught","distressed","distrustful","divulge","document","dollar","dominate","doomed","double","doubtful","download","dreadful","dreamy","drive","drowning","dumb","dynamic","eager","earnest","easily","easy","economical","ecstatic","edge","effective","efficient","effortless","elated","eliminate","elite","embarrass","embarrassed","embarrassing","emergency","emerging","emphasize","empowered","enchant","encouraged","endorsed","energetic","energy","enormous","enraged","enthusiastic","envy","epic","epidemic","essential","ethical","euphoric","evil","exactly","exasperated","excellent","excited","excitement","exciting","exclusive","exclusivity","excruciating","exhilarated","expensive","expert","explode","exploit","explosive","exposed","exquisite","extra","extraordinary","extremely","exuberant","eye-opening","fail","fail-proof","failure","faith","famous","fantasy","fascinating","fatigued","faux","faux pas","fearless","feast","feeble","festive","fide","fierce","fight","final","fine","fired","first","first ever","flirt","fluid","focus","focused","fool","fooled","foolish","forbidden","force-fed","forever","forgiving","forgotten","formula","fortune","foul","frantic","free","freebie","freedom","frenzied","frenzy","frightening","frisky","frugal","frustrated","fulfill","fulfilled","full","fully","fun","fun-loving","fundamentals","funniest","funny","furious","gambling","gargantuan","genius","genuine","gift","gigantic","giveaway","glamorous","gleeful","glorious","glowing","goddamn","gorgeous","graceful","grateful","gratified","gravity","great","greatest","greatness","greed","greedy","gripping","grit","grounded","growth","guaranteed","guilt","guilt-free","gullible","guts","hack","happiness","happy","harmful","harsh","hate","have you heard","havoc","hazardous","healthy","heart","heartbreaking","heartwarming","heavenly","hell","helpful","helplessness","hero","hesitant","hidden","high tech","highest","highly effective","hilarious","hoak","hoax","honest","honored","hope","hopeful","horribly","horrific","horrifying","horror","hostile","how to","huge","humility","humor","hurricane","hurry","hypnotic","idiot","ignite","illegal","illusive","imagination","immediately","imminently","impatience","impatient","impenetrable","important","impressive","improved","in the zone","incapable","incapacitated","incompetent","inconsiderate","increase","incredible","indecisive","indulgence","indulgent","inexpensive","inferior","informative","infuriated","ingredients","innocent","innovative","insane","insecure","insider","insidious","inspired","inspiring","instant savings","instantly","instructive","insult","intel","intelligent","intense","interesting","intriguing","introducing","invasion","investment","iron-clad","ironclad","irresistible","irs","is here","jackpot","jail","jaw-dropping","jealous","jeopardy","jittery","jovial","joyous","jubilant","judgmental","jumpstart","just arrived","keen","kickass","kickstart","kill","killed","killing","kills","know it all","lame","largest","lascivious","last","last chance","last minute","latest","laugh","laughing","launch","launching","lavishly","lawsuit","lazy","left behind","legendary","legitimate","liberal","liberated","lick","lies","life-changing","lifetime","light","lighthearted","likely","limited","literally","little-known","loathsome","lonely","looming","loser","lost","love","lucrative","lunatic","lurking","lust","luxurious","luxury","lying","magic","magical","magnificent","mainstream","malicious","mammoth","manipulative","marked down","massive","master","masterclass","maul","mediocre","meditative","meltdown","memorability","memorable","menacing","mesmerizing","meticulous","mind-blowing","minimalist","miracle","mired","mischievous","misgiving","missing out","mistake","monetize","money","moneyback","moneygrubbing","monumental","most important","motivated","mouth-watering","murder","mystery","nail","naked","natural","naughty","nazi","nest egg","never","new","nightmare","no good","no obligation","no one talks about","no questions asked","no risk","no strings attached","non-controlling","noted","novelty","now","obnoxious","obsessed","obsession","obvious","odd","off-kilter","off-limits","off-the record","offensive","official","okay","on-demand","open-minded","opportunities","optimistic","ordeal","outlawed","outrageousness","outstanding","overcome","overjoyed","overnight","overwhelmed","packed","painful","painless","painstaking","pale","panic","panicked","paralyzed","pas","passionate","pathetic","pay zero","payback","perfect","peril","perplexed","perspective","pessimistic","pioneering","piranha","pitfall","pitiful","placid","plague","played","playful","pleased","pluck","plummet","plunge","poison","poisonous","polarizing","poor","popular","portfolio","pound","powerful","powerless","practical","preposterous","prestige","price","priceless","pride","prison","privacy","private","privileged","prize","problem","productive","professional","profit","profitable","profound","promiscuous","promising","promote","protect","protected","proven","provocative","provoke","psychological","pummel","punch","punish","pus","quadruple","quality","quarrelsome","quick","quick-start","quickly","quiet","radiant","rare","ravenous","rebellious","recession-proof","reckoning","recognized","recommend","recreate","reduced","reflective","refugee","refund","refundable","reject","relaxed","release","relentless","reliable","remarkable","replicate","report","reprimanding","repulsed","repulsive","research","resentful","resourceful","responsible","responsive","rested","restricted","results","retaliating","reveal","revealing","revenge","revengeful","revisited","revolting","revolutionary","reward","rich","ridiculous","risky","riveting","rookie","rowdy","ruin","rules","ruthless","sabotaging","sacred","sadistic","sadly","sadness","safe","safety","sale","sampler","sarcastic","satisfied","savage","savagery","save","savings","savvy","scam","scandal","scandalous","scarce","scared","scary","scornful","scream","searing","secret","secret agenda","secret plot","secrets","secure","security","seductive","seething","seize","selected","self-hating","self-sufficient","sensational","senseless","sensual","serene","seriously","severe","sex","sexy","shaking","shameful","shameless","shaming","shatter","shellacking","shocking","should","shrewd","sick and tired","signs","silly","simple","simplicity","simplified","simplistic","sincere","sinful","sins","six-figure","sizable","sizzle","sizzled","sizzles","sizzling","sizzlingly","skill","skyrocket","slaughter","slave","sleazy","sleeping","sly","smash","smiling","smug","smuggle","smuggled","sneak-peek","sneaky","sniveling","snob","snooty","snotty","soar","soaring","solid","solution","spank","special","spectacular","speedy","spell-binding","spine","spirit","spirited","spiteful","spoiler","spontaneous","spotlight","spunky","squirming","stable","staggering","startling","steady","steal","stealthy","steamy","step-by-step","still","stoic","stop","strange","strangle","strategy","stressed","strong","strongly suggest","struggle","stuck up","studies","stunning","stupid","stupid-simple","sturdy","sublime","succeed","success","successful","suck","suddenly","suffer","sunny","super","super-human","superb","supercharge","superior","supported","supportive","sure","sure fire","surefire","surge","surging","surprise","surprised","surprising","survival","survive","suspicious","sweaty","swoon","swoon-worthy","tailspin","tank","tantalizing","targeted","tawdry","tease","technology","teetering","tempting","tenacious","tense","terrible","terrific","terrified","terrifying","terror","terrorist","tested","thankful","the truth","threaten","threatened","thrilled","thrilling","thug","ticked off","tickled","timely","today","torture","toxic","track record","trade secret","tragedy","tragic","transform","transparency","trap","trapped","trauma","traumatized","treacherous","treasure","tremendous","trend","tricks","triggers","triple","triumph","truly","trusting","trustworthy","truth","truthful","turbo-charge","turbocharges","tweaks","twitching","ultimate","unadulterated","unassuming","unauthorized","unbelievable","unburdened","uncaring","uncensored","uncertain","uncomfortable","unconditional","uncontrollable","unconventional","uncovered","undeniable","under priced","undercover","underground","underhanded","underused","unexpected","unforgettable","unheard of","unhurried","uninterested","unique","unjustified","unknowingly","unleashed","unlimited","unlock","unparalleled","unpopular","unreliable","unresponsive","unseen","unstable","unstoppable","unsure","unsurpassed","untapped","unusual","up-sell","upbeat","uplifted","uplifting","urge","urgent","useful","useless","validate","valor","valuable","value","vanquish","vaporize","venomous","verify","vibrant","vicious","victim","victory","vigorous","vilified","vindictive","violated","violent","volatile","vulnerable","waiting","wanted","wanton","warning","waste","weak","wealth","weird","what no one tells you","whip","whopping","wicked","wild","willpower","withheld","wonderful","wondrous","woozy","world","worry","worst","worthwhile","wounded","wreaking","youthful","zen","zinger"],"diacritics":true,"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasBreadcrumb":true,"serpData":{"title":"%sitename% %page% %sep% %sitedesc%","description":"","titleTemplate":"%sitename% %page% %sep% %sitedesc%","descriptionTemplate":"","focusKeywords":"","breadcrumbTitle":"Home","robots":{"index":true},"advancedRobots":[],"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":""}}},"tocTitle":"Table of Contents","tocExcludeHeadings":[],"listStyle":"ul"},"_links":{"self":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/comments?post=14575"}],"version-history":[{"count":3,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14575\/revisions"}],"predecessor-version":[{"id":14982,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14575\/revisions\/14982"}],"up":[{"embeddable":true,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14379"}],"wp:attachment":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/media?parent=14575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}