/* Subventio Website CI – freigegebene blaue Markenwelt, 16.10.2026.
   Lokal gehostete Schriften. Scope: Marketing/Redaktion; keine Mandantenfarben überschreiben. */
@font-face {
  font-family: Manrope;
  src: url('/fonts/subventio/manrope-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url('/fonts/subventio/manrope-latin-ext.woff2') format('woff2');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0100-02FF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('/fonts/subventio/sourcesans3-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}
.sv-site {
  --sv-navy: #142d49;
  --sv-blue: #155e80;
  --sv-paper: #f5f4ef;
  --sv-ink: #20323d;
  --sv-muted: #526676;
  --sv-line: #d6dfe6;
  --sv-pale: #edf3f8;
  --sv-green: #287d73;
  --sv-body-font: 'Source Sans 3';
  --sv-heading-font: Manrope;
  --color-blue-700: #155e80;
  --color-blue-800: #142d49;
  --color-blue-50: #edf3f8;
  --color-blue-100: #e3ebf1;
  --color-blue-200: #cbd9e2;
  --color-blue-600: #155e80;
  --color-sky-50: #f5f4ef;
  --color-sky-100: #edf3f8;
  --color-sky-300: #8fa8b8;
  --color-sky-500: #155e80;
  --color-sky-600: #155e80;
  --color-sky-700: #142d49;
  --color-sky-800: #142d49;
  --color-sky-950: #142d49;
  --color-slate-900: #142d49;
  font-family: var(--sv-body-font), 'Segoe UI', sans-serif !important;
  color: var(--sv-ink);
  font-size: 18px;
  line-height: 1.65;
  display: block;
}
.sv-site h1,
.sv-site h2,
.sv-site h3,
.sv-site h4 {
  font-family: var(--sv-heading-font), 'Segoe UI', sans-serif !important;
  font-weight: 550;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
/* Bestehende Funktions-, Wissens- und Abschlussflächen nutzen noch Tailwind-
   Verläufe. Ihre Struktur bleibt erhalten, die Farbrezeptur kommt aus der CI. */
.sv-site .bg-gradient-to-br.from-sky-500.to-blue-700,
.sv-site .bg-gradient-to-br.from-sky-600.to-blue-700,
.sv-site .bg-gradient-to-br.from-sky-600.to-blue-800,
.sv-site .bg-gradient-to-r.from-sky-600.to-blue-700 {
  background-color: var(--sv-navy) !important;
  background-image: linear-gradient(135deg, var(--sv-blue), var(--sv-navy)) !important;
}
.sv-site a,
.sv-site button,
.sv-site input,
.sv-site textarea,
.sv-site select {
  font-family: inherit;
}
.sv-site a:focus-visible,
.sv-site button:focus-visible,
.sv-site summary:focus-visible {
  outline: 3px solid var(--sv-blue);
  outline-offset: 5px;
}
.sv-site :target {
  scroll-margin-top: 110px;
}
.sv-site .sv-company-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  flex-shrink: 0;
}
.sv-site .sv-company-brand img {
  width: 92px;
  height: 57px;
  object-fit: contain;
}
.sv-site .sv-company-brand span {
  font-size: 12px;
  line-height: 1.4;
  max-width: 135px;
  padding-left: 14px;
  border-left: 1px solid var(--sv-line);
  color: var(--sv-muted);
}
.sv-site > header nav {
  gap: 1.1rem;
  font-size: 14px;
}
.sv-site > header {
  min-height: 86px;
}
.sv-site .sv-cleo-lockup {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  margin: 0 0 26px;
}
.sv-site .sv-cleo-lockup strong {
  font-family: Manrope, sans-serif;
  font-size: 42px;
  letter-spacing: -1.5px;
  line-height: 1.1;
  color: var(--sv-navy);
  font-weight: 600;
}
.sv-site .sv-cleo-lockup sup {
  font-size: 17px;
  vertical-align: super;
  margin-left: 6px;
  color: var(--sv-green);
}
.sv-site .sv-cleo-lockup img {
  width: 185px;
  height: auto;
  max-height: 40px;
  object-fit: contain;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}
.sv-site .sv-editorial {
  container-type: inline-size;
  color: var(--sv-ink);
  background: white;
}
.sv-site .sv-editorial h1 {
  font-size: clamp(38px, 5.3vw, 74px);
  line-height: 1.08;
  letter-spacing: -0.055em;
  margin: 24px 0;
  color: var(--sv-navy);
}
.sv-site .sv-editorial h1 em {
  font-style: normal;
  color: var(--sv-blue);
}
.sv-site .sv-editorial h2 {
  font-size: clamp(30px, 3.5vw, 48px);
  line-height: 1.15;
  margin: 12px 0 24px;
  color: var(--sv-navy);
}
.sv-site .sv-editorial h3 {
  font-size: 25px;
  line-height: 1.25;
  margin: 12px 0 16px;
  color: var(--sv-navy);
}
.sv-site .sv-editorial p {
  margin: 16px 0;
  line-height: 1.65;
}
.sv-site .sv-editorial figure {
  margin: 0;
}
.sv-site .sv-editorial img {
  max-width: 100%;
  display: block;
}
.sv-site .sv-editorial a {
  color: inherit;
  text-decoration: none;
}
.sv-site .sv-editorial .section,
.sv-site .sv-editorial .suite-section {
  padding: 80px max(6%, calc((100% - 1280px) / 2));
}
.sv-site .sv-editorial .soft {
  background: var(--sv-paper);
}
.sv-site .sv-editorial .dark {
  background: var(--sv-navy);
  color: #dae5ef;
}
.sv-site .sv-editorial .dark :is(h1, h2, h3) {
  color: white;
}
.sv-site .sv-editorial .eyebrow {
  font-size: 12px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--sv-blue);
  font-weight: 650;
  display: block;
}
.sv-site .sv-editorial .dark .eyebrow {
  color: #b9d9ed;
}
.sv-site .sv-editorial .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 28px 0 10px;
}
.sv-site .sv-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 48px;
  padding: 13px 23px;
  background: var(--sv-blue);
  color: white !important;
  border: 1px solid var(--sv-blue);
  border-radius: 8px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  transition:
    transform 0.2s,
    background 0.2s;
}
.sv-site .sv-action-secondary {
  background: transparent;
  color: var(--sv-blue) !important;
  border-color: #a6b9c6;
}
.sv-site .sv-action:hover {
  transform: translateY(-2px);
  background: var(--sv-navy);
  color: white !important;
}
.sv-site .sv-editorial .editorial-head {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 70px;
  align-items: end;
  margin-bottom: 40px;
}
.sv-site .sv-editorial .editorial-head > p {
  font-size: 19px;
  max-width: 520px;
}
.sv-site .sv-editorial .result-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 40px;
}
.sv-site .sv-editorial .result-points > div {
  border-top: 1px solid #65798d;
  padding-top: 20px;
}
.sv-site .sv-editorial .asset-note,
.sv-site .sv-editorial figcaption {
  font-size: 13px;
  color: var(--sv-muted);
  line-height: 1.5;
  margin: 12px 0 0;
}
.sv-site .sv-editorial .textlink {
  display: inline-block;
  color: var(--sv-blue);
  margin-top: 26px;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.sv-site .sv-editorial .intro {
  max-width: 650px;
  font-size: 21px;
}
.sv-site .sv-editorial .suite-item {
  display: block;
}
.sv-site .sv-editorial .situation-list > a {
  display: grid;
  grid-template-columns: 190px 1fr 30px;
  align-items: center;
  gap: 20px;
  padding: 26px 0;
  border-bottom: 1px solid var(--sv-line);
}
.sv-site .sv-editorial .situation-list > a > span {
  font-size: 14px;
  color: var(--sv-muted);
}
.sv-site .sv-editorial .situation-list > a strong {
  font-size: 26px;
  font-family: Manrope, sans-serif;
  font-weight: 500;
  line-height: 1.35;
}
.sv-site .sv-editorial .situation-list > a:hover strong {
  color: var(--sv-blue);
}
.sv-site .sv-story-break {
  position: relative;
  height: clamp(420px, 48vw, 720px);
  overflow: hidden;
  margin: 0;
  background: var(--sv-navy);
  color: white;
}
.sv-site .sv-story-break::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(20,45,73,.88), rgba(20,45,73,.40) 70%);
  pointer-events: none;
}
.sv-site .sv-story-break > img {
  width: 100%;
  position: absolute;
  inset: -64px 0 auto;
  height: calc(100% + 128px);
  max-width: none;
  margin: 0;
  display: block;
  object-fit: cover;
  object-position: center;
}
.sv-site .sv-story-break-city > img { object-position: center 42%; }
.sv-site .sv-story-break figcaption {
  position: absolute;
  z-index: 1;
  left: max(6%, calc((100% - 1280px) / 2));
  bottom: clamp(48px, 8vw, 112px);
  max-width: 690px;
  margin: 0;
  padding-right: 24px;
  color: white;
}
.sv-site .sv-story-break figcaption span {
  display: block;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #c7e1dc;
}
.sv-site .sv-story-break figcaption strong {
  color: #fff;
  display: block;
  font-family: var(--sv-heading-font), sans-serif;
  font-size: clamp(30px, 4vw, 54px);
  font-weight: 550;
  line-height: 1.12;
  letter-spacing: -.04em;
}
@media (prefers-reduced-motion: reduce) {
  .sv-site .sv-story-break > img { transform: none !important; }
}
/* Existierende Funktionsseiten erhalten denselben Satzspiegel; Formulare und Tracking bleiben erhalten. */
.sv-site .sv-hero-light {
  background: var(--sv-paper) !important;
  color: var(--sv-ink);
}
.sv-site .sv-hero-light > .pointer-events-none,
.sv-site .sv-hero-light.br-grid::before {
  display: none;
}
.sv-site .sv-hero-light .sv-hero-copy {
  --br-on-dark: var(--sv-ink);
  --br-on-dark-soft: var(--sv-muted);
  --br-primary: var(--sv-blue);
}
.sv-site .sv-hero-light .sv-hero-copy :is(h1, p, li, dt, dd, nav, nav span) {
  color: var(--sv-ink) !important;
}
.sv-site .sv-hero-light .sv-hero-copy h1 {
  font-size: clamp(36px, 4.6vw, 64px);
  line-height: 1.1;
  font-weight: 550;
  color: var(--sv-navy) !important;
}
.sv-site .sv-hero-light .sv-hero-copy h1 span {
  color: var(--sv-blue) !important;
}
.sv-site .sv-hero-light .sv-hero-copy > span { color: var(--sv-blue); }
.sv-site .sv-hero-light .sv-hero-copy > span > span { background: var(--sv-blue); }
.sv-site .sv-hero-light .sv-hero-copy > span,
.sv-site .sv-hero-light .sv-hero-copy > p:first-of-type {
  border-color: var(--sv-line);
  background: transparent;
}
.sv-site .sv-hero-light .sv-hero-copy > div:first-child {
  border-color: var(--sv-line);
  background: transparent;
  color: var(--sv-blue);
}
.sv-site .sv-hero-light .sv-hero-copy > div:first-child span {
  background: var(--sv-green);
}
.sv-site .sv-hero-light .sv-hero-copy li,
.sv-site .sv-hero-light .sv-hero-copy dl {
  border-color: var(--sv-line);
}
.sv-site .sv-hero-light .sv-hero-copy a {
  color: var(--sv-blue) !important;
  border-color: #a6b9c6;
  box-shadow: none;
}
.sv-site .sv-hero-light .sv-hero-copy a.inline-flex:first-child {
  background: var(--sv-blue) !important;
  color: white !important;
  border-color: var(--sv-blue);
}
.sv-site .sv-hero-light .sv-hero-copy nav a {
  background: transparent !important;
  color: var(--sv-muted) !important;
}
.sv-site .sv-hero-light figcaption {
  color: var(--sv-muted);
}
.sv-site .sv-hero-light figcaption.bg-slate-900 {
  color: white;
}
/* Branchen: ruhige redaktionelle Dramaturgie statt des alten Kartenrasters. */
.sv-site .br-bilanz-grid {
  gap: 0;
  border-top: 1px solid var(--sv-line);
  border-bottom: 1px solid var(--sv-line);
}
.sv-site .br-bilanz-alt,
.sv-site .br-bilanz-neu {
  border: 0 !important;
  border-radius: 0 !important;
  padding: clamp(32px, 5vw, 64px) !important;
  box-shadow: none !important;
}
.sv-site .br-bilanz-alt { background: var(--sv-paper) !important; }
.sv-site .br-bilanz-neu { background: var(--sv-navy) !important; }
.sv-site .br-bilanz-neu .br-lift {
  border: 0;
  border-top: 1px solid rgba(255,255,255,.28);
  border-radius: 0;
  background: transparent;
  padding: 18px 0;
  backdrop-filter: none;
}
.sv-site .br-ablauf ol {
  gap: 24px !important;
  border-top: 0;
}
.sv-site .br-ablauf ol > li {
  padding: 0 0 12px 64px;
  border: 0;
}
.sv-site .br-ablauf ol > li::before { display: none; }
@media (min-width: 1024px) {
  .sv-site .br-ablauf ol { gap: 0 !important; }
  .sv-site .br-ablauf ol > li {
    padding: 28px;
    border-bottom: 0;
    border-right: 1px solid var(--sv-line);
    border-top: 1px solid var(--sv-line);
  }
  .sv-site .br-ablauf ol > li:last-child { border-right: 0; }
}
/* Redaktion: gilt automatisch auch für künftig von der SEO-KI erzeugte Inhalte. */
.sv-site app-seo-content-page,
.sv-site app-seo-content-overview-page {
  display: block;
  background: white;
}
.sv-site app-seo-content-overview-page > section:first-child.sv-knowledge-hero {
  background: var(--sv-navy) !important;
  color: white;
}
.sv-site app-seo-content-page > section:first-child .pointer-events-none,
.sv-site app-seo-content-overview-page > section:first-child .pointer-events-none {
  display: none;
}
.sv-site app-seo-content-page > section:first-child :is(h1, p, a, span),
.sv-site app-seo-content-overview-page > section:first-child.sv-knowledge-hero :is(h1, p, a, span) {
  color: white;
}
.sv-site .prose-seo {
  font-family: var(--sv-body-font), sans-serif;
  font-size: 19px;
  line-height: 1.8;
  color: var(--sv-ink);
}
.sv-site .prose-seo :is(h2, h3, h4) {
  color: var(--sv-navy);
  margin-top: 1.6em;
}
.sv-site .prose-seo a {
  color: var(--sv-blue);
  text-underline-offset: 4px;
}
.sv-site .prose-seo table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}
.sv-site .prose-seo th {
  background: var(--sv-pale);
  text-align: left;
}
.sv-site .prose-seo :is(th, td) {
  padding: 12px;
  border: 1px solid var(--sv-line);
}
.sv-site .prose-seo-block-table-wrapper {
  overflow-x: auto;
  max-width: 100%;
}
.sv-site .prose-seo blockquote {
  border-left: 3px solid var(--sv-blue);
  padding: 15px 24px;
  background: var(--sv-paper);
}
.sv-site .sv-seo-static {
  max-width: 880px;
  margin: auto;
  padding: 60px 24px;
}
.sv-site .sv-seo-static > header h1 {
  font-size: clamp(32px, 4vw, 54px);
  line-height: 1.15;
}
.sv-site .sv-seo-static section {
  padding: 24px 0;
}
.sv-site .sv-seo-static h2 {
  font-size: 30px;
  margin-bottom: 20px;
}
.sv-site .sv-seo-static h3 {
  font-size: 24px;
  margin-bottom: 16px;
}
.sv-site .sv-seo-static details {
  border-bottom: 1px solid var(--sv-line);
  padding: 16px 0;
}
.sv-site .sv-seo-static summary {
  font-weight: 600;
  cursor: pointer;
}
.sv-site .sv-seo-static img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
}
.sv-site [data-prerender-seo-links] {
  max-width: 1280px;
  margin: auto;
  padding: 35px 24px;
  border-top: 1px solid var(--sv-line);
  font-size: 15px;
}
.sv-site [data-prerender-seo-links] ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  list-style: none;
}
.sv-site [data-prerender-seo-links] a {
  color: var(--sv-blue);
}
@media (max-width: 1100px) {
  .sv-site .sv-company-brand span {
    display: none;
  }
  .sv-site > header nav {
    gap: 12px;
    font-size: 13px;
  }
}
@media (max-width: 700px) {
  .sv-site .sv-editorial .section,
  .sv-site .sv-editorial .suite-section {
    padding: 44px 6%;
  }
  .sv-site .sv-editorial .editorial-head,
  .sv-site .sv-editorial .result-points {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .sv-site .sv-editorial .situation-list > a {
    grid-template-columns: 1fr 25px;
    gap: 10px;
  }
  .sv-site .sv-editorial .situation-list > a > span {
    grid-column: 1/-1;
  }
  .sv-site .sv-editorial .situation-list > a strong {
    font-size: 23px;
  }
  .sv-site .sv-company-brand img {
    width: 75px;
    height: 47px;
  }
  .sv-site > header {
    min-height: 75px;
  }
  .sv-site .sv-action {
    width: 100%;
  }
  .sv-site .prose-seo {
    font-size: 18px;
  }
  .sv-site .sv-hero-light .sv-hero-copy h1 {
    font-size: 36px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sv-site .sv-action,
  .sv-site .sv-editorial * {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
  .sv-site .sv-action:hover {
    transform: none;
  }
}

/* Geometrie der freigegebenen Produkt-Mockups. */
.sv-site .sv-editorial .sitehead .brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  min-width: 180px;
  width: auto;
}
.sv-site .sv-editorial .sitehead .brand img {
  width: 92px;
  height: 64px;
  object-fit: contain;
}
.sv-site .sv-editorial .sitehead .brand span {
  max-width: 98px;
  text-align: left;
  line-height: 1.35;
  font-size: 12px;
  color: #596a73;
  border-left: 1px solid #d3dbdc;
  padding-left: 12px;
}
.sv-site .sv-editorial .product-name {
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 25px;
}
.sv-site .sv-editorial .product-name strong {
  font-size: 38px;
  letter-spacing: -1.5px;
}
.sv-site .sv-editorial .product-name span {
  font-size: 12px;
  color: #63757b;
}
.sv-site .sv-editorial .product-name img {
  width: 165px;
  background: transparent;
  padding: 0;
  border-radius: 0;
}
.sv-site .sv-editorial .corporate-hero {
  display: grid;
  grid-template-columns: 1.08fr 1fr;
  background: #f4f3ee;
  min-height: 610px;
}
.sv-site .sv-editorial .corporate-copy {
  padding: 66px 5% 64px 11%;
  align-self: center;
}
.sv-site .sv-editorial .corporate-copy h1 {
  font-size: clamp(40px, 5.1cqw, 72px);
  line-height: 1.07;
  letter-spacing: -3px;
  margin: 24px 0;
}
.sv-site .sv-editorial h1 em {
  font-style: normal;
  color: #217865;
}
.sv-site .sv-editorial .corporate-copy p {
  font-size: 19px;
  line-height: 1.6;
  max-width: 520px;
}
.sv-site .sv-editorial .corporate-photo {
  position: relative;
  margin: 22px 22px 22px 0;
  overflow: hidden;
  border-radius: 170px 12px 12px 12px;
  min-height: 480px;
}
.sv-site .sv-editorial .corporate-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 55% center;
}
.sv-site .sv-editorial .corporate-photo > span {
  position: absolute;
  bottom: 22px;
  left: 24px;
  background: #fff9;
  padding: 12px 18px;
  border-radius: 5px;
  font-weight: 600;
  backdrop-filter: blur(8px);
}
.sv-site .sv-editorial .suite-section {
  padding: 70px 6%;
}
.sv-site .sv-editorial .suite-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid #ccd5d5;
}
.sv-site .sv-editorial .suite-item {
  text-align: left;
  padding: 27px 20px 22px;
  border: 0;
  border-right: 1px solid #d8dede;
  border-radius: 0;
  background: transparent;
  color: #16313c;
  display: flex;
  flex-direction: column;
  gap: 15px;
  transition: background 0.2s;
}
.sv-site .sv-editorial .suite-item:last-child {
  border-right: 0;
}
.sv-site .sv-editorial .suite-item:hover {
  background: #eaf3f0;
}
.sv-site .sv-editorial .suite-num {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 700;
  color: #457469;
}
.sv-site .sv-editorial .suite-item h3 {
  font-size: 25px;
  line-height: 1.22;
  letter-spacing: -0.8px;
  margin: 0;
}
.sv-site .sv-editorial .suite-item p {
  font-size: 16px;
  margin: 0 0 10px;
  line-height: 1.55;
}
.sv-site .sv-editorial .suite-link {
  margin-top: auto;
  font-size: 13px;
  font-weight: 700;
}
.sv-site .sv-editorial .situation-list a {
  display: grid;
  grid-template-columns: 180px 1fr 20px;
  gap: 25px;
  align-items: center;
  width: 100%;
  text-align: left;
  border: 0;
  border-top: 1px solid #cfd8d6;
  background: transparent;
  padding: 26px 0;
  color: #16313c;
}
.sv-site .sv-editorial .situation-list a > span {
  font-size: 14px;
  color: #56706e;
}
.sv-site .sv-editorial .situation-list strong {
  font:
    500 23px/1.3 Manrope,
    sans-serif;
}
.sv-site .sv-editorial .situation-list a:hover strong {
  color: #168065;
}
.sv-site .sv-editorial .product-showcase {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 8%;
  align-items: center;
}
.sv-site .sv-editorial .product-showcase figure {
  margin: 0;
  background: #eaf0ec;
  padding: 35px;
  text-align: center;
  border-radius: 12px;
}
.sv-site .sv-editorial .product-showcase figure img {
  width: 100%;
  max-height: 550px;
  object-fit: contain;
}
.sv-site .sv-editorial figcaption {
  font-size: 12px;
  color: #63777b;
  margin-top: 14px;
}
.sv-site .sv-editorial .technology-mark {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sv-site .sv-editorial .technology-mark span {
  font-size: 12px;
  color: #68777a;
}
.sv-site .sv-editorial .technology-mark img {
  width: 190px;
  height: auto;
}
.sv-site .sv-editorial .product-heading {
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
  padding: 64px 5% 38px;
}
.sv-site .sv-editorial .product-heading h1 {
  font-size: clamp(35px, 4.6cqw, 65px);
  line-height: 1.12;
  letter-spacing: -2.5px;
  margin: 25px 0;
}
.sv-site .sv-editorial .product-heading p {
  max-width: 730px;
  margin: 0 auto 25px;
  font-size: 19px;
  line-height: 1.6;
}
.sv-site .sv-editorial .product-heading .actions {
  justify-content: center;
}
.sv-site .sv-editorial .atlas-hero {
  background: #e9f0ed;
  padding-bottom: 35px;
}
.sv-site .sv-editorial .atlas-panorama {
  margin: 15px 4% 0;
}
.sv-site .sv-editorial .atlas-panorama img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 15px 45px #183d3a24;
}
.sv-site .sv-editorial .atlas-panorama figcaption {
  text-align: center;
}
.sv-site .sv-editorial .atlas-work {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12%;
  align-items: center;
  margin-top: 35px;
}
.sv-site .sv-editorial .numbered-copy > span {
  display: block;
  margin-top: 30px;
  font-size: 12px;
  letter-spacing: 1px;
  color: #26735e;
  font-weight: 700;
}
.sv-site .sv-editorial .numbered-copy h3 {
  font-size: 25px;
  margin: 9px 0;
}
.sv-site .sv-editorial .numbered-copy p {
  font-size: 17px;
}
.sv-site .sv-editorial .evidence-panel {
  background: #163e3d;
  color: #fff;
  padding: 42px;
  border-radius: 12px;
}
.sv-site .sv-editorial .evidence-panel h3 {
  font-size: 31px;
  letter-spacing: -1px;
  color: #fff;
}
.sv-site .sv-editorial .evidence-panel > div {
  border-top: 1px solid #ffffff32;
  padding-top: 18px;
  margin-top: 22px;
}
.sv-site .sv-editorial .evidence-panel p {
  color: #d6e8e0;
  font-size: 16px;
  margin: 5px 0;
}
.sv-site .sv-editorial .evidence-panel small {
  color: #b4cdc3;
  font-size: 11px;
  display: block;
  margin-top: 24px;
}
.sv-site .sv-editorial .process-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 35px 0;
  border-top: 1px solid #ccd5d2;
  margin-top: 30px;
}
.sv-site .sv-editorial .process-strip > div {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.sv-site .sv-editorial .process-strip b {
  font:
    600 23px/1.3 Manrope,
    sans-serif;
}
.sv-site .sv-editorial .process-strip span {
  font-size: 15px;
  color: #617574;
}
.sv-site .sv-editorial .process-strip i {
  font-size: 28px;
  font-style: normal;
  color: #478276;
}
.sv-site .sv-editorial .asset-note {
  font-size: 12px !important;
  color: #667778;
  line-height: 1.6 !important;
  max-width: 950px;
}
.sv-site .sv-editorial .engine-hero {
  padding: 65px 6%;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 9%;
  background: #102d39;
  color: #fff;
  align-items: center;
}
.sv-site .sv-editorial .engine-hero h1 {
  font-size: clamp(39px, 5.5cqw, 75px);
  line-height: 1.1;
  letter-spacing: -3px;
  color: #fff;
  margin: 25px 0;
}
.sv-site .sv-editorial .engine-hero h1 em {
  color: #b7edda;
}
.sv-site .sv-editorial .engine-hero p {
  color: #d0dee0;
  font-size: 19px;
  line-height: 1.65;
}
.sv-site .sv-editorial .engine-hero .eyebrow {
  color: #b7edda;
}
.sv-site .sv-editorial .engine-diagram {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  padding: 25px 20px;
  border: 1px solid #ffffff29;
  border-radius: 18px;
  background: #183b46;
}
.sv-site .sv-editorial .engine-diagram > span {
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #b3cdce;
}
.sv-site .sv-editorial .engine-diagram > i {
  font-size: 25px;
  color: #9ee6cb;
  font-style: normal;
}
.sv-site .sv-editorial .diagram-input,
.sv-site .sv-editorial .diagram-output {
  padding: 12px;
}
.sv-site .sv-editorial .engine-diagram p {
  font-size: 14px;
  margin: 8px 0;
  line-height: 1.4;
}
.sv-site .sv-editorial .diagram-core {
  width: 90%;
  padding: 24px 10px;
  border-radius: 12px;
  background: #b7edda;
  color: #163d3a;
}
.sv-site .sv-editorial .diagram-core strong {
  font:
    600 39px/1.05 Manrope,
    sans-serif;
  display: block;
  margin: 16px 0;
  letter-spacing: -1px;
}
.sv-site .sv-editorial .diagram-core p {
  color: #2b5d51;
}
.sv-site .sv-editorial .diagram-core small {
  font-size: 10px;
  letter-spacing: 2px;
}
.sv-site .sv-editorial .engine-diagram > small {
  font-size: 11px;
  color: #aac3c4;
}
.sv-site .sv-editorial .engine-cases {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;
}
.sv-site .sv-editorial .engine-cases article {
  border-top: 2px solid #5b9c89;
  padding: 24px 0;
}
.sv-site .sv-editorial .engine-cases span {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.sv-site .sv-editorial .engine-cases h3 {
  font-size: 26px;
  line-height: 1.25;
}
.sv-site .sv-editorial .engine-cases p {
  font-size: 17px;
}
.sv-site .sv-editorial .invest-hero {
  background: #f1f0e9;
  padding-bottom: 45px;
}
.sv-site .sv-editorial .portfolio-visual {
  margin: 10px auto;
  max-width: 1100px;
  width: 90%;
}
.sv-site .sv-editorial .portfolio-visual img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 20px 40px #102d3920;
}
.sv-site .sv-editorial .portfolio-visual figcaption {
  text-align: center;
}
.sv-site .sv-editorial .split-products {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10%;
}
.sv-site .sv-editorial .split-products article + article {
  border-left: 1px solid #d1d9d6;
  padding-left: 14%;
}
.sv-site .sv-editorial .split-products h2 {
  font-size: 37px;
}
.sv-site .sv-editorial .split-products ul {
  padding-left: 18px;
  line-height: 1.7;
  margin: 25px 0;
  font-size: 16px;
}
.sv-site .sv-editorial .product-finish {
  background: #ddefe7;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  padding: 60px 6%;
}
.sv-site .sv-editorial .product-finish h2 {
  font-size: 40px;
}
.sv-site .sv-editorial .product-finish p {
  max-width: 550px;
  font-size: 18px;
}
.sv-site .sv-editorial .product-finish > .actions {
  max-width: 330px;
}
.sv-site .sv-editorial .product-intro h1 {
  font-size: clamp(36px, 4.9cqw, 66px);
  line-height: 1.1;
  letter-spacing: -2px;
}
.sv-site .sv-product-world .product-intro { background: var(--sv-paper); }
.sv-site .sv-product-catalog { padding-top: 0; padding-bottom: 0; }
.sv-site .sv-product-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 6vw, 88px);
  padding: 72px 0;
  border-bottom: 1px solid var(--sv-line);
}
.sv-site .sv-product-feature h2 { font-size: clamp(28px, 3.2vw, 44px); line-height: 1.16; margin: 18px 0; }
.sv-site .sv-product-feature p { font-size: 19px; line-height: 1.65; }
.sv-site .sv-product-feature .sv-product-audience { font-size: 16px; color: var(--sv-muted); margin: 20px 0 28px; }
.sv-site .sv-product-feature figure { min-width: 0; margin: 0; }
.sv-site .sv-product-feature figure img { width: 100%; height: auto; display: block; border-radius: 16px; }
.sv-site .sv-product-feature figcaption { font-size: 13px; color: var(--sv-muted); margin-top: 12px; }
.sv-site .sv-product-feature:nth-child(even) > figure { grid-column: 1; grid-row: 1; }
.sv-site .sv-product-feature:nth-child(even) > div { grid-column: 2; }
.sv-site .sv-product-engine {
  display: flex; flex-direction: column; align-items: center; gap: 18px;
  padding: 48px 24px; background: var(--sv-navy); color: white; border-radius: 16px;
  text-align: center;
}
.sv-site .sv-product-engine strong { font: 550 42px/1.15 var(--sv-heading-font); color: white; }
.sv-site .sv-product-engine i { color: #b9d8d3; font-style: normal; }
.sv-site .sv-product-engine small { color: #cfdee7; }
.sv-site .sv-product-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.sv-site .sv-product-tools article { border-top: 1px solid var(--sv-line); padding-top: 26px; }
.sv-site .sv-product-tools h3 { font-size: 25px; }
.sv-site .sv-product-tools p { margin: 16px 0; line-height: 1.65; }
.sv-site .sv-product-tools a { display: block; margin: 14px 0; }
@media (max-width: 760px) {
  .sv-site .sv-product-feature, .sv-site .sv-product-tools { grid-template-columns: 1fr; }
  .sv-site .sv-product-feature { padding: 42px 0; }
  .sv-site .sv-product-feature:nth-child(even) > figure,
  .sv-site .sv-product-feature:nth-child(even) > div { grid-column: auto; grid-row: auto; }
}
.sv-site .sv-editorial .numbered-flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;
  margin: 50px 0;
}
.sv-site .sv-editorial .numbered-flow article {
  border-top: 1px solid #b7c8c2;
  padding-top: 20px;
}
.sv-site .sv-editorial .numbered-flow article > span {
  font-size: 28px;
  color: #287967;
}
.sv-site .sv-editorial .numbered-flow h3 {
  font-size: 24px;
}
.sv-site .sv-editorial .product-form {
  max-width: 750px;
  margin-top: 40px;
}
.sv-site .sv-editorial .product-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 15px 0;
  font-size: 15px;
}
.sv-site .sv-editorial .product-form input,
.sv-site .sv-editorial .product-form textarea {
  font: 16px/1.5 inherit;
  padding: 14px;
  border: 1px solid #b8c8c4;
  border-radius: 6px;
  background: #fff;
  color: #183b3e;
}
.sv-site .sv-editorial .product-form textarea {
  min-height: 130px;
  font: 16px/1.5 sans-serif;
}
.sv-site .sv-editorial .product-form > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.sv-site .sv-editorial .form-result {
  color: #1d6c55;
}
@container (max-width:850px) {
  .sv-site .sv-editorial .corporate-hero {
    grid-template-columns: 1fr 1fr;
    min-height: auto;
  }
  .sv-site .sv-editorial .corporate-copy {
    padding: 40px 8%;
  }
  .sv-site .sv-editorial .corporate-copy h1 {
    font-size: 44px;
    letter-spacing: -2px;
  }
  .sv-site .sv-editorial .corporate-photo {
    min-height: 390px;
    border-top-left-radius: 100px;
  }
  .sv-site .sv-editorial .suite-grid {
    grid-template-columns: 1fr 1fr;
  }
  .sv-site .sv-editorial .suite-item {
    border-bottom: 1px solid #d8dede;
  }
  .sv-site .sv-editorial .engine-hero {
    gap: 5%;
  }
  .sv-site .sv-editorial .product-finish {
    align-items: flex-start;
    flex-direction: column;
  }
  .sv-site .sv-editorial .product-finish > .actions {
    max-width: none;
  }
  .sv-site .sv-editorial .product-heading h1 {
    font-size: 44px;
  }
  .sv-site .sv-editorial .situation-list a {
    grid-template-columns: 140px 1fr 20px;
    gap: 15px;
  }
}
@container (max-width:600px) {
  .sv-site .sv-editorial .sitehead .brand {
    min-width: 150px;
  }
  .sv-site .sv-editorial .sitehead .brand img {
    width: 76px;
    height: 50px;
  }
  .sv-site .sv-editorial .sitehead .brand span {
    font-size: 10px;
    max-width: 85px;
  }
  .sv-site .sv-editorial .corporate-hero,
  .sv-site .sv-editorial .product-showcase,
  .sv-site .sv-editorial .atlas-work,
  .sv-site .sv-editorial .engine-hero,
  .sv-site .sv-editorial .split-products {
    grid-template-columns: 1fr;
  }
  .sv-site .sv-editorial .corporate-copy {
    padding: 38px 6% 28px;
  }
  .sv-site .sv-editorial .corporate-copy h1 {
    font-size: 42px;
    line-height: 1.08;
    letter-spacing: -2px;
  }
  .sv-site .sv-editorial .corporate-copy p,
  .sv-site .sv-editorial .product-heading p,
  .sv-site .sv-editorial .engine-hero p {
    font-size: 17px;
  }
  .sv-site .sv-editorial .corporate-photo {
    height: 290px;
    min-height: 0;
    margin: 0 6% 25px;
    border-radius: 80px 9px 9px 9px;
  }
  .sv-site .sv-editorial .corporate-photo > span {
    font-size: 12px;
    left: 12px;
    bottom: 14px;
  }
  .sv-site .sv-editorial .suite-section {
    padding: 40px 6%;
  }
  .sv-site .sv-editorial .suite-item {
    padding: 20px 10px;
  }
  .sv-site .sv-editorial .suite-item h3 {
    font-size: 22px;
  }
  .sv-site .sv-editorial .suite-item p {
    font-size: 15px;
  }
  .sv-site .sv-editorial .suite-num {
    font-size: 10px;
  }
  .sv-site .sv-editorial .suite-link {
    font-size: 11px;
  }
  .sv-site .sv-editorial .situation-list a {
    grid-template-columns: 1fr 20px;
    gap: 12px;
    padding: 22px 0;
  }
  .sv-site .sv-editorial .situation-list a > span {
    grid-column: 1/-1;
    font-size: 12px;
  }
  .sv-site .sv-editorial .situation-list strong {
    font-size: 22px;
  }
  .sv-site .sv-editorial .product-showcase {
    gap: 30px;
  }
  .sv-site .sv-editorial .product-showcase figure {
    padding: 20px;
  }
  .sv-site .sv-editorial .product-heading {
    padding: 40px 6% 20px;
    text-align: left;
  }
  .sv-site .sv-editorial .product-heading h1 {
    font-size: 37px;
    letter-spacing: -1.8px;
  }
  .sv-site .sv-editorial .product-heading .actions {
    justify-content: flex-start;
  }
  .sv-site .sv-editorial .atlas-panorama {
    margin: 15px 5% 0;
  }
  .sv-site .sv-editorial .atlas-panorama img {
    min-height: 225px;
    object-fit: cover;
    object-position: 32% center;
  }
  .sv-site .sv-editorial .atlas-work {
    gap: 30px;
  }
  .sv-site .sv-editorial .evidence-panel {
    padding: 27px;
  }
  .sv-site .sv-editorial .process-strip {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
  }
  .sv-site .sv-editorial .process-strip i {
    transform: rotate(90deg);
    align-self: center;
  }
  .sv-site .sv-editorial .process-strip b {
    font-size: 22px;
  }
  .sv-site .sv-editorial .engine-hero {
    padding: 40px 6%;
    gap: 30px;
  }
  .sv-site .sv-editorial .engine-hero h1 {
    font-size: 44px;
    letter-spacing: -2px;
  }
  .sv-site .sv-editorial .engine-diagram {
    padding: 24px 15px;
  }
  .sv-site .sv-editorial .engine-cases,
  .sv-site .sv-editorial .numbered-flow {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .sv-site .sv-editorial .engine-cases h3 {
    font-size: 27px;
  }
  .sv-site .sv-editorial .portfolio-visual {
    width: 90%;
  }
  .sv-site .sv-editorial .split-products {
    gap: 40px;
  }
  .sv-site .sv-editorial .split-products article + article {
    border-left: 0;
    border-top: 1px solid #cbd6d1;
    padding: 35px 0 0;
  }
  .sv-site .sv-editorial .split-products h2 {
    font-size: 33px;
  }
  .sv-site .sv-editorial .product-finish {
    padding: 40px 6%;
    gap: 16px;
  }
  .sv-site .sv-editorial .product-finish h2 {
    font-size: 34px;
  }
  .sv-site .sv-editorial .product-intro h1 {
    font-size: 39px;
  }
  .sv-site .sv-editorial .product-form > div {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

.sv-site .sv-editorial {
  --ink: #20323d;
  --teal: #155e80;
  --paper: #fff;
  --soft: #f5f4ef;
  --line: #d6dfe6;
  color: #20323d;
}
.sv-site .sv-editorial h1,
.sv-site .sv-editorial h2,
.sv-site .sv-editorial h3 {
  color: #142d49;
}
.sv-site .sv-editorial h1 em {
  color: #155e80;
}
.sv-site .sv-editorial .studybar,
.sv-site .sv-editorial .dark,
.sv-site .sv-editorial .engine-hero,
.sv-site .sv-editorial .journal-hero,
.sv-site .sv-editorial .evidence-panel {
  background: #142d49;
  color: #fff;
}
.sv-site .sv-editorial .dark h1,
.sv-site .sv-editorial .dark h2,
.sv-site .sv-editorial .dark h3,
.sv-site .sv-editorial .engine-hero h1,
.sv-site .sv-editorial .journal-hero h1,
.sv-site .sv-editorial .evidence-panel h3 {
  color: #fff;
}
.sv-site .sv-editorial .dark p,
.sv-site .sv-editorial .engine-hero p,
.sv-site .sv-editorial .journal-hero p,
.sv-site .sv-editorial .evidence-panel p {
  color: #dae5ef;
}
.sv-site .sv-editorial .engine-hero h1 em,
.sv-site .sv-editorial .journal-hero h1 em {
  color: #b9d9ed;
}
.sv-site .sv-editorial .corporate-hero,
.sv-site .sv-editorial .sector-hero,
.sv-site .sv-editorial .regional-hero,
.sv-site .sv-editorial .invest-hero,
.sv-site .sv-editorial .article-mast,
.sv-site .sv-editorial .soft,
.sv-site .sv-editorial .trail {
  background: #f5f4ef;
}
.sv-site .sv-editorial .atlas-hero,
.sv-site .sv-editorial .product-finish,
.sv-site .sv-editorial .reading-cta,
.sv-site .sv-editorial .product-showcase figure,
.sv-site .sv-editorial .screenshot-frame {
  background: #edf3f8;
}
.sv-site .sv-editorial .editorial-cards a {
  background: #f5f4ef;
  border-color: #155e80;
}
.sv-site .sv-editorial .editorial-cards a:hover,
.sv-site .sv-editorial .suite-item:hover {
  background: #edf3f8;
}
.sv-site .sv-editorial .eyebrow,
.sv-site .sv-editorial .suite-num,
.sv-site .sv-editorial .sector-grid > a > span,
.sv-site .sv-editorial .numbered-copy > span,
.sv-site .sv-editorial .knowledge-paths span {
  color: #155e80;
}
.sv-site .sv-editorial .dark .eyebrow,
.sv-site .sv-editorial .engine-hero .eyebrow,
.sv-site .sv-editorial .journal-hero .eyebrow,
.sv-site .sv-editorial .evidence-panel .eyebrow {
  color: #a9cce1;
}
.sv-site .sv-editorial .action {
  background: #155e80;
  color: #fff;
  border-color: #155e80;
}
.sv-site .sv-editorial .action.alt {
  background: transparent;
  color: #155e80;
  border-color: #b8c8d3;
}
.sv-site .sv-editorial .dark .action.alt {
  color: #e5eef5;
  border-color: #a2bed0;
}
.sv-site .sv-editorial .studybar a[aria-pressed='true'] {
  background: #c9dfed;
  border-color: #c9dfed;
  color: #142d49;
}
.sv-site .sv-editorial .diagram-core {
  background: #c9dfed;
  color: #142d49;
}
.sv-site .sv-editorial .diagram-core p {
  color: #294e68;
}
.sv-site .sv-editorial .engine-diagram {
  background: #1c3b59;
  border-color: #587088;
}
.sv-site .sv-editorial .engine-diagram > i,
.sv-site .sv-editorial .process-strip i {
  color: #739caf;
}
.sv-site .sv-editorial .numbered-flow article > span,
.sv-site .sv-editorial .situation-list a:hover strong {
  color: #155e80;
}
.sv-site .sv-editorial .engine-cases article,
.sv-site .sv-editorial .reading-layout aside {
  border-color: #155e80;
}
.sv-site .sv-editorial .sector-grid > a,
.sv-site .sv-editorial .suite-item,
.sv-site .sv-editorial .situation-list a,
.sv-site .sv-editorial .knowledge-paths a {
  color: #20323d;
}
.sv-site .sv-editorial .template-note {
  background: #edf3f8;
  color: #52677a;
}
.sv-site .sv-editorial .cleo-lockup strong {
  color: #142d49;
}
.sv-site .sv-editorial .cleo-lockup sup {
  color: #287d73;
}
.sv-site .sv-editorial .evidence-panel small {
  color: #b9ccdc;
}
.sv-site .sv-editorial .persona-tabs a[aria-pressed='true'],
.sv-site .sv-editorial .story-steps a[aria-pressed='true'] {
  background: #edf3f8;
  border-color: #155e80;
  color: #142d49;
}

.sv-site .sv-editorial .engine-hero :is(h1, h2, h3),
.sv-site .sv-editorial .evidence-panel h3 {
  color: white;
}
.sv-site .sv-editorial .engine-hero .sv-action {
  background: white;
  color: var(--sv-navy) !important;
}
.sv-site .sv-editorial .corporate-photo img {
  height: 100%;
  object-fit: cover;
}
.sv-site .sv-editorial .corporate-photo > span {
  color: var(--sv-navy);
}
/* `.sv-site > header` (oben, min-height 86 px) ist spezifischer als `.sv-site .sv-prerender-header`;
   im SEO-Content-Vorrender ist der Kopf direktes Kind von `.sv-site` — deshalb beide Selektoren (Review #3937). */
.sv-site .sv-prerender-header,
.sv-site > header.sv-prerender-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  /* Hoehe wie der Angular-Kopf der Marketing-Shell (marketing-shell.html:
     py-4 + Logo 57 px + 1 px Rand = 90 px, bis 700 px Breite Logo 47 px = 80 px).
     Bis 24.10.2026 standen hier 86 px: Beim App-Start sprang die Seite um 4-6 px
     (CLS) und das Hero-Bild des Vorrenders war ein anderes LCP-Element als das der
     App — die App-Fassung zaehlte als spaeterer, groesserer Kandidat. */
  min-height: 90px;
  padding: 14px max(24px, calc((100% - 1216px) / 2));
  border-bottom: 1px solid var(--sv-line);
  background: white;
}
@media (max-width: 700px) {
  .sv-site .sv-prerender-header,
  .sv-site > header.sv-prerender-header {
    min-height: 80px;
  }
}
.sv-site .sv-prerender-header nav {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  font-size: 14px;
  padding: 0;
  border: 0;
}
.sv-site .sv-prerender-header nav a {
  margin: 0;
  text-decoration: none;
  color: var(--sv-ink);
}
.sv-site .sv-corporate-prerender > footer {
  padding: 35px 6%;
  font-size: 15px;
  background: var(--sv-paper);
}
.sv-site .sv-corporate-prerender > footer a {
  margin-right: 20px;
}
.sv-site .sv-preview-hero {
  background: var(--sv-navy);
  color: white;
}
.sv-site.sv-editorial-preview {
  background: white;
}
@media (max-width: 1023px) {
  .sv-site .sv-prerender-header nav a:not(:last-child) {
    display: none;
  }
  .sv-site .sv-prerender-header nav a:last-child {
    background: var(--sv-blue);
    padding: 10px 15px;
    border-radius: 8px;
    color: white;
  }
}
/* Gemeinsamer Redaktionsrahmen: Public-CMS, Vorrender und Admin-Vorschau. */
.sv-site .sv-article-hero,
.sv-site.sv-editorial-preview .sv-preview-hero {
  background: var(--sv-paper) !important;
  color: var(--sv-ink) !important;
  border-bottom: 1px solid var(--sv-line);
}
.sv-site .sv-article-hero :is(h1, p, a, span) {
  color: var(--sv-ink) !important;
}
.sv-site .sv-article-hero .pointer-events-none {
  display: none;
}
.sv-site .sv-article-hero h1 {
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.15;
  font-weight: 550;
}
.sv-site .sv-article-hero > div:first-child,
.sv-site .sv-article-heading {
  max-width: 768px;
  margin: auto;
  padding: 56px 16px 40px;
}
.sv-site .sv-article-heading nav {
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 16px;
}
.sv-site .sv-article-heading h1 {
  margin: 20px 0;
}
.sv-site .sv-article-type {
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.sv-site .sv-article-image {
  max-width: 768px;
  margin: 0 auto;
  padding: 0 16px 40px;
}
.sv-site .sv-article-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: 12px;
}
.sv-site .sv-seo-static {
  max-width: 768px;
  padding: 40px 16px;
}
.sv-site .sv-seo-static .prose-seo {
  margin-bottom: 32px;
}
.sv-site .sv-article-toc {
  padding: 24px;
  background: var(--sv-pale);
  border: 1px solid var(--sv-line);
  border-radius: 10px;
  margin: 32px 0;
}
.sv-site .sv-article-toc ol {
  padding-left: 24px;
  list-style: decimal;
  font-size: 16px;
}
.sv-site .sv-article-toc a {
  color: var(--sv-blue);
}
.sv-site .prose-seo-block-callout {
  padding: 24px;
  background: var(--sv-pale);
  border-left: 3px solid var(--sv-blue);
  border-radius: 0 8px 8px 0;
}
.sv-site .prose-seo-block-stat {
  padding: 24px;
  background: var(--sv-paper);
  border-radius: 10px;
}
.sv-site .prose-seo-block-stat > strong {
  font:
    550 32px Manrope,
    sans-serif;
  color: var(--sv-navy);
}
.sv-site .sv-editorial .sv-home-faq {
  box-sizing: border-box;
  width: 100%;
  max-width: 1050px;
  margin: auto;
  padding: 80px clamp(20px, 4vw, 48px);
}
.sv-site .sv-home-faq details {
  border-bottom: 1px solid var(--sv-line);
  padding: 22px 0;
}
.sv-site .sv-home-faq summary {
  cursor: pointer;
  font:
    550 20px Manrope,
    sans-serif;
  line-height: 1.5;
  color: var(--sv-navy);
}
.sv-site .sv-home-faq details p {
  max-width: 760px;
  color: var(--sv-muted);
}
.sv-site .sv-region-hero nav,
.sv-site .sv-region-hero nav :is(a, span) {
  color: var(--sv-muted) !important;
}
.sv-site .sv-region-hero .sv-hero-copy :is(span, strong) {
  color: var(--sv-ink);
}
.sv-site .sv-editorial .sv-action:focus-visible {
  outline: 3px solid var(--sv-blue);
  outline-offset: 5px;
}
.sv-site.sv-editorial-preview .sv-preview-hero :is(h1, p, a, span) {
  color: var(--sv-ink) !important;
}
@media (prefers-reduced-motion: no-preference) {
  .sv-site .suite-item,
  .sv-site .engine-cases article {
    transition:
      background 0.2s ease,
      transform 0.2s ease;
  }
  .sv-site .suite-item:hover {
    background: var(--sv-pale);
    transform: translateY(-3px);
  }
}

/* Belegte Marktzahlen: vier lesbare Geschichten statt einer Kachelwand. */
.sv-site .sv-proof-strip { background: var(--sv-navy); color: #fff; border: 0; }
.sv-site .sv-proof-strip > div { align-items:center; text-align:center; gap:32px; padding-block:40px; }
.sv-site .sv-proof-strip > div > div { min-width:0; }
.sv-site .sv-proof-strip .sv-proof-value { color: #fff; font-size: clamp(30px, 3vw, 44px); font-variant-numeric: tabular-nums; }
.sv-site .sv-proof-strip .text-slate-900 { color: #fff; }
.sv-site .sv-proof-strip .text-slate-600 { color: #d8e4ec; }
.sv-site .sv-market-section { background: var(--sv-paper); color: var(--sv-ink); }
.sv-site .sv-market-heading { max-width: 880px; text-align: left; margin-bottom: 64px; }
.sv-site .sv-market-heading h2 { font-size: clamp(32px, 4vw, 52px); line-height: 1.13; color: var(--sv-navy); margin: 20px 0 28px; }
.sv-site .sv-market-heading > p:last-child { font-size: 18px; line-height: 1.75; max-width: 780px; }
.sv-site .sv-market-story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; padding: 48px 0; border-top: 1px solid var(--sv-line); }
.sv-site .sv-market-story > p, .sv-site .sv-market-story > h3 { grid-column: 1 / -1; }
.sv-site .sv-market-story > h3 { font-size: clamp(25px, 2.6vw, 34px); max-width: 780px; margin: 14px 0 32px; line-height: 1.25; }
.sv-site .sv-market-visual { align-self: start; background: #fff; border-radius: 16px; padding: 28px 24px; }
.sv-site .sv-market-visual > svg:first-child { margin-top: 0; }
.sv-site .sv-market-visual > svg { display: block; }
.sv-site .sv-market-visual .text-slate-400 { color: #627687; }
.sv-site .sv-market-visual svg.max-w-sm { max-width: 300px; margin-inline: auto; }
.sv-site .sv-market-explanation > p.text-sm { font-size: 17px; line-height: 1.75; }
.sv-site .sv-market-explanation > :first-child { margin-top: 0; }
.sv-site .sv-market-explanation > p.bg-blue-50 { background: transparent; border-left: 3px solid var(--sv-green); border-radius: 0; padding: 0 0 0 20px; margin-block: 24px; color: var(--sv-navy); }
.sv-site .sv-market-explanation > p.text-slate-400 { color: #5b6c79; font-size: 12px; line-height: 1.7; }
.sv-site .sv-story-break figcaption small { display: block; font-size: 12px; margin-top: 12px; }
@media (max-width: 760px) {
  .sv-site .sv-market-heading { margin-bottom: 36px; }
  .sv-site .sv-market-story { grid-template-columns: minmax(0, 1fr); padding: 32px 0; row-gap: 24px; }
  .sv-site .sv-market-story > h3 { margin: 0; }
  .sv-site .sv-market-story > p { margin: 0; }
  .sv-site .sv-market-visual { padding: 20px 12px; }
}

.sv-site .sv-company-products { background: var(--sv-navy); }

/* Regionale Ergebniskarte: explizites Hell-auf-Dunkel-Paar, unabhängig von alten Utilities. */
.sv-site .sv-region-result{background:var(--sv-navy)!important;border:1px solid var(--sv-navy);color:white}
.sv-site .sv-region-result :is(div,p,ul,li,span,a){color:white!important}
.sv-site .sv-region-result a{ text-decoration-color:#fff!important }
.sv-site .sv-hero-light figcaption{color:var(--sv-muted)!important}
.sv-site .sv-hero-light figcaption.bg-slate-900{color:white!important}

/* Gemeinsame Engine-Grafik und Scroll-Erzählung – Originalbild bleibt unverändert. */
.sv-site .sv-engine-hero-visual{margin:0;min-width:0}
.sv-site .sv-engine-sources,.sv-site .sv-engine-story .sources,.sv-site .sv-engine-story .outputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sv-site .sv-engine-sources span,.sv-site .sv-engine-story .sources span,.sv-site .sv-engine-story .outputs span{padding:12px 6px;border:1px solid #91a9bc;border-radius:8px;text-align:center;font-size:12px;font-weight:600;color:white;background:#1d3d58}
.sv-site .sv-engine-feeds,.sv-site .sv-engine-story .feed{width:100%;height:65px;display:block}
.sv-site .sv-engine-feeds path,.sv-site .sv-engine-story .feed path{fill:none;stroke:#b5d1df;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s}
.sv-site .sv-engine-feeds path{animation:sv-engine-feed 2.2s ease-out both}
@keyframes sv-engine-feed{to{stroke-dashoffset:0}}
.sv-site .sv-engine-hero-visual img{display:block;width:100%;height:auto;border-radius:8px}
.sv-site .sv-engine-hero-visual figcaption{color:#edf3f8;font-size:15px;line-height:1.6;margin-top:20px;text-align:center}
.sv-site app-engine-scroll-story{display:block}
.sv-site .sv-engine-story{background:var(--sv-navy);color:white;padding:80px max(24px,calc((100% - 1200px)/2));overflow:clip}
.sv-site .sv-engine-story .eyebrow,.sv-site .sv-engine-story .index{color:#c5dce9;text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:600}
.sv-site .sv-engine-story header{max-width:820px;margin-bottom:60px}
.sv-site .sv-engine-story h2{color:white;font-size:clamp(38px,5.5vw,72px);line-height:1.08;margin:20px 0}
.sv-site .sv-engine-story header>p:last-child{font-size:19px;line-height:1.6;color:#edf3f8;max-width:650px}
.sv-site .sv-engine-story .story-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;align-items:start}
.sv-site .sv-engine-story .visual{position:sticky;top:130px;min-width:0;padding:24px 0;align-self:start}
.sv-site .sv-engine-story .core{position:relative;overflow:hidden}
.sv-site .sv-engine-story .core img{width:100%;height:auto;display:block;transition:transform .8s}
.sv-site .sv-engine-story .scan{position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#edf3f825 50%,transparent 70%);transform:translateX(-100%);transition:transform 1s;pointer-events:none}
.sv-site .sv-engine-story .stage-label{display:flex;gap:12px;align-items:center;margin:24px 0;color:#edf3f8;font-size:14px}
.sv-site .sv-engine-story .stage-label>span{color:white;border:1px solid #91a9bc;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex-shrink:0}
.sv-site .sv-engine-story .outputs span{background:var(--sv-pale);color:var(--sv-navy);font-size:11px}
.sv-site .sv-engine-story .progress{height:3px;background:#526676;margin-top:24px}
.sv-site .sv-engine-story .progress span{display:block;height:100%;background:#b5d1df;transform-origin:left;transition:transform .7s}
.sv-site .sv-engine-story .visual:not([data-stage="0"]) .feed path{stroke-dashoffset:0}
.sv-site .sv-engine-story .visual:not([data-stage="0"]) .scan{transform:translateX(100%)}
.sv-site .sv-engine-story .visual[data-stage="2"] .core img,.sv-site .sv-engine-story .visual[data-stage="3"] .core img{transform:scale(1.035)}
.sv-site .sv-engine-story .chapters{list-style:none;padding:0;margin:0}
.sv-site .sv-engine-story .chapter{min-height:60vh;display:flex;flex-direction:column;justify-content:center;padding:50px 0;border-bottom:1px solid #ffffff26}
.sv-site .sv-engine-story .chapter h3{color:white;font-size:clamp(26px,3vw,38px);line-height:1.15;margin:20px 0}
.sv-site .sv-engine-story .chapter p{font-size:17px;color:#edf3f8;line-height:1.7;margin:0}
.sv-site .sv-engine-story .detail{margin-top:24px;padding:15px 18px;border-left:2px solid #93bdb6;background:#ffffff08;color:#d6dfe6;font-size:14px;line-height:1.6;transition:background .5s}
.sv-site .sv-engine-story .current .detail{background:#ffffff12}
.sv-site .sv-engine-story footer{border-top:1px solid #91a9bc;margin-top:60px;padding-top:60px;max-width:800px}
.sv-site .sv-engine-story footer h3{color:white;font-size:clamp(30px,4vw,48px);line-height:1.1;margin:0 0 24px}
.sv-site .sv-engine-story footer p{color:#edf3f8;line-height:1.7;font-size:16px}
.sv-site .sv-engine-story footer a{display:inline-flex;gap:25px;background:white;color:var(--sv-navy);padding:16px 24px;border-radius:8px;font-weight:600;margin:20px 0;text-decoration:none}
.sv-site .sv-engine-story footer a:focus-visible{outline:3px solid white;outline-offset:5px}
.sv-site .sv-engine-story footer a.download{display:block;width:fit-content;background:transparent;border:1px solid #91a9bc;color:white;font-size:14px;padding:12px 20px;margin:0 0 24px}
.sv-site .sv-engine-story footer small{display:block;color:#d6dfe6;font-size:12px;line-height:1.6}
@media(max-width:760px){
 .sv-site .sv-engine-story{padding:48px 22px}.sv-site .sv-engine-story .story-layout{display:block}.sv-site .sv-engine-story header{margin-bottom:24px}
 .sv-site .sv-engine-story .visual{position:sticky;top:72px;z-index:2;background:var(--sv-navy);padding:10px 0 12px;box-shadow:0 14px 18px var(--sv-navy)}
 .sv-site .sv-engine-story .core img{max-height:20svh;object-fit:contain}.sv-site .sv-engine-story .feed{height:24px}.sv-site .sv-engine-story .sources span,.sv-site .sv-engine-story .outputs span{padding:7px 3px;font-size:10px}
 .sv-site .sv-engine-story .stage-label{margin:8px 0;font-size:12px}.sv-site .sv-engine-story .stage-label>span{width:26px;height:26px}.sv-site .sv-engine-story .progress{margin-top:10px}
 .sv-site .sv-engine-story .chapter{min-height:55svh;padding:32px 0;scroll-margin-top:430px}.sv-site .sv-engine-story .chapter h3{font-size:26px}.sv-site .sv-engine-story .chapter p{font-size:16px}.sv-site .sv-engine-story .visual .feed path{stroke-dashoffset:0}
 .sv-site .sv-engine-story footer{margin-top:30px;padding-top:35px}
}
@media(prefers-reduced-motion:reduce){
 .sv-site .sv-engine-feeds path{animation:none;stroke-dashoffset:0}.sv-site .sv-engine-story *{transition:none!important;animation:none!important}
 .sv-site .sv-engine-story .visual{position:relative;top:auto}.sv-site .sv-engine-story .core img{transform:none!important}.sv-site .sv-engine-story .scan{display:none}.sv-site .sv-engine-story .feed path{stroke-dashoffset:0}.sv-site .sv-engine-story .chapter{min-height:0;padding:36px 0}
}

/* Branchen: Produktentscheidung und Fotografie müssen die jeweilige Aufgabe zeigen. */
.sv-site .br-product-secondary { display:inline-flex; align-items:center; padding:14px 24px; border:1px solid var(--sv-blue); border-radius:10px; color:var(--sv-blue); font-weight:650; text-decoration:none; }
.sv-site .br-product-extra { flex-basis:100%; color:var(--sv-blue); text-underline-offset:4px; padding-top:8px; font-weight:600; }
.sv-site .br-product-ways { margin-top:48px; }
.sv-site .br-product-way { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,5vw,72px); align-items:center; padding:48px 0; border-top:1px solid var(--sv-line); }
.sv-site .br-product-way figure { margin:0; }
.sv-site .br-product-way img { display:block; width:100%; height:auto; border-radius:18px; }
.sv-site .br-product-way .br-product-phone img { max-width:230px; margin:auto; }
.sv-site .br-product-way figcaption { color:var(--sv-muted); font-size:13px; line-height:1.6; margin-top:18px; }
.sv-site .br-product-way h3 { font-family:var(--sv-heading-font); color:var(--sv-navy); font-size:clamp(25px,3vw,38px); line-height:1.2; letter-spacing:-.035em; }
.sv-site .br-product-way p { margin:20px 0; color:var(--sv-ink); font-size:18px; line-height:1.7; }
.sv-site .br-product-way .br-product-name { color:var(--sv-blue); font-size:12px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; }
.sv-site .br-product-way nav { display:flex; flex-wrap:wrap; gap:14px 26px; margin-top:28px; }
.sv-site .br-product-way a { color:var(--sv-blue); text-underline-offset:5px; font-weight:650; }
.sv-site .sv-story-break > img { object-position:var(--story-position,center); }
/* Menschen und Hände bleiben unverdeckt; Text steht neben dem Motiv. */
.sv-site .sv-story-people { display:grid; grid-template-columns:42% 58%; grid-template-rows:minmax(0,1fr); height:clamp(420px,44vw,620px); }
.sv-site .sv-story-people::after { display:none; }
.sv-site .sv-story-people > img { position:static; grid-column:2; grid-row:1; min-height:0; min-width:0; width:100%; height:100%; margin:0; transform:none!important; }
.sv-site .sv-story-people figcaption { position:static; grid-column:1; grid-row:1; align-self:center; padding:40px clamp(24px,4vw,64px); max-width:none; }
.sv-site .sv-story-people figcaption strong { font-size:clamp(30px,3.1vw,46px); }
@media(max-width:700px) {
 .sv-site .br-product-way { grid-template-columns:1fr; gap:26px; }
 .sv-site .br-product-way > div { grid-row:1; }
 .sv-site .sv-story-people { display:flex; flex-direction:column; height:auto; }
 .sv-site .sv-story-people > img { height:300px; }
 .sv-site .sv-story-people figcaption { padding:32px 24px 38px; }
}

/* Eigentümerweg: eine Frage, ein sichtbarer Bericht, ein begründeter nächster Schritt. */
.sv-owner-wrap{width:min(100% - 3rem,1240px);margin-inline:auto}
.sv-owner-hero,.sv-owner-calculation,.sv-city-next{background:#f5f4ef;color:#20323d;padding:clamp(3rem,6vw,6rem) 0}
.sv-owner-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.sv-owner-hero h1{font-size:clamp(2.5rem,4.5vw,4.2rem);line-height:1.09;letter-spacing:-.055em;margin:1.2rem 0 1.6rem;color:#20323d}
.sv-owner-kicker{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#155e80;margin:0 0 1rem}
.sv-owner-hero .sv-cleo-lockup{margin-bottom:2rem}
.sv-owner-lead{font-size:1.18rem;line-height:1.8;max-width:40rem}
.sv-owner-small{font-size:.86rem;line-height:1.65;margin-top:1rem;max-width:42rem;color:#455d6e}
.sv-owner-actions{display:flex;flex-wrap:wrap;gap:1.3rem;align-items:center;margin:2rem 0 1rem}
.sv-owner-button{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:1rem 1.4rem;background:#155e80;color:#fff!important;font-weight:700;text-decoration:none;border-radius:6px;line-height:1.4}
.sv-owner-button:hover{background:#142d49}
.sv-owner-link{display:inline-block;color:#155e80!important;font-weight:700;text-decoration:underline;text-underline-offset:5px;line-height:1.6;margin:.7rem 0}
.sv-owner-button:focus-visible,.sv-owner-link:focus-visible,.sv-report-pages a:focus-visible,.sv-owner-hero-report a:focus-visible,.sv-city-link:focus-visible,.sv-report-reader summary:focus-visible{outline:3px solid #287d73;outline-offset:5px}
.sv-owner-hero-report{margin:0 auto;width:min(100%,385px)}
.sv-owner-hero-report img{width:100%;height:auto;border:1px solid #cbd6db;box-shadow:0 18px 50px #142d4920;display:block}
.sv-owner-hero-report figcaption{padding:1.2rem 0;color:#20323d;font-size:.95rem;line-height:1.6}
.sv-owner-hero-report figcaption span{display:block;font-size:.78rem;color:#455d6e}
.sv-owner-report,.sv-owner-decision{padding:clamp(3.5rem,6vw,6rem) 0;background:white;color:#20323d;scroll-margin-top:100px}
.sv-owner-section-head{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.sv-owner-report h2,.sv-owner-calculation h2,.sv-owner-decision h2,.sv-city-next h2{font-size:clamp(2rem,3.3vw,3.1rem);line-height:1.15;letter-spacing:-.045em;margin:0 0 1.5rem;color:#20323d}
.sv-owner-section-head p{line-height:1.8}
.sv-report-pages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:3rem}
.sv-report-pages figure{min-width:0;margin:0}
.sv-report-pages img{display:block;width:100%;height:auto;border:1px solid #cbd6db;box-shadow:0 8px 24px #142d4914}
.sv-report-pages figcaption{padding:1.5rem 0 0;line-height:1.7}
.sv-report-pages h3{font-size:1.25rem;line-height:1.3;letter-spacing:-.02em;margin:.6rem 0;color:#20323d}
.sv-report-pages figcaption p{color:#455d6e;font-size:1rem}
.sv-report-note{font-size:.82rem;line-height:1.7;color:#455d6e;border-top:1px solid #cbd6db;padding-top:1.5rem;margin-top:2rem}
.sv-report-reader{margin-top:1.5rem;border-block:1px solid #cbd6db;padding:1.2rem 0}
.sv-report-reader summary{cursor:pointer;font-weight:700;color:#155e80;padding:.5rem 0}
.sv-report-reader iframe{display:block;background:#f5f4ef;margin-top:1.5rem}
.sv-owner-reading{list-style:none;padding:0;margin:2rem 0;counter-reset:owner-step}
.sv-owner-reading li{position:relative;counter-increment:owner-step;padding:1.3rem 0 1.3rem 3rem;border-top:1px solid #cbd6db;line-height:1.7}
.sv-owner-reading li:before{content:counter(owner-step,decimal-leading-zero);position:absolute;left:0;color:#287d73;font-size:.85rem;font-weight:700}
.sv-owner-reading strong,.sv-owner-reading span{display:block}.sv-owner-reading span{font-size:1rem;color:#455d6e}
.sv-owner-calculation .sv-owner-hero-grid{align-items:start}
.sv-owner-viewing{margin:0;position:relative;min-width:0}
.sv-owner-viewing img{width:100%;height:540px;object-fit:cover;object-position:center 42%;display:block}
.sv-owner-viewing figcaption{padding:1.2rem 1.5rem;background:#142d49;color:white;font-size:1.05rem;line-height:1.6}
.sv-owner-viewing small{display:block;font-size:.7rem;margin-top:.6rem;color:#d8e8ee}
.sv-owner-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:3rem}
.sv-owner-three article{border-top:2px solid #287d73;padding-top:1.5rem}.sv-owner-three span{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#155e80;font-weight:700}
.sv-owner-three h3{font-size:1.35rem;margin:.8rem 0;color:#20323d}.sv-owner-three p{line-height:1.8;color:#455d6e}
.sv-owner-breadcrumb{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.85rem;margin-bottom:3rem;color:#455d6e}
.sv-city-guide{border-left:2px solid #287d73;padding:2rem;background:white}
.sv-city-guide .sv-owner-reading{margin:1rem 0 0}.sv-city-guide .sv-owner-reading li:last-child{padding-bottom:0}
.sv-city-groups{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem 3rem}
.sv-city-group{border-top:2px solid #155e80;padding-top:1.4rem;min-width:0}
.sv-city-group h3{color:#155e80!important}.sv-city-links{display:grid;grid-template-columns:1fr}
.sv-city-link{display:grid;grid-template-columns:1fr;gap:.2rem;text-decoration:none;border-bottom:1px solid #d9e0e3;padding:1.1rem .5rem;color:#20323d;transition:background .2s}
.sv-city-link:hover{background:#f5f4ef}.sv-city-link>span:first-child{font-size:1.2rem}.sv-city-link>span:nth-child(2){color:#455d6e!important;font-size:.88rem}
.sv-city-next h3{font-size:1.6rem;margin-bottom:1rem}.sv-city-next p{margin-bottom:1.3rem}
@media(max-width:767px){.sv-owner-wrap{width:calc(100% - 2.5rem)}.sv-owner-hero-grid,.sv-owner-section-head,.sv-owner-three,.sv-city-groups{grid-template-columns:1fr;gap:2rem}.sv-owner-hero h1{font-size:2.75rem}.sv-report-pages{grid-template-columns:1fr;gap:2.5rem}.sv-report-pages figure{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:1rem;align-items:start}.sv-report-pages figcaption{padding:0}.sv-report-pages h3{font-size:1.13rem}.sv-report-pages figcaption p{font-size:.9rem}.sv-report-pages .sv-owner-kicker{font-size:.62rem}.sv-owner-hero-report{max-width:330px}.sv-owner-viewing img{height:420px}.sv-owner-actions{align-items:flex-start;flex-direction:column;gap:.5rem}.sv-city-guide{padding:1.5rem}.sv-report-reader iframe{height:520px}}
/* Die Besichtigungsunterschrift bleibt ausdrücklich hell auf ihrer Navy-Fläche. */
.sv-site .sv-hero-light .sv-owner-viewing figcaption{color:#fff!important}
.sv-site .sv-hero-light .sv-owner-viewing figcaption small{color:#d8e8ee!important}

.sv-report-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem;margin:1.5rem 0;color:#20323d}
.sv-report-controls button{border:1px solid #155e80;border-radius:5px;padding:.6rem 1rem;color:#155e80;background:#fff;font-weight:700;cursor:pointer}
.sv-report-controls button:disabled{opacity:.4;cursor:default}.sv-report-controls button:focus-visible,.sv-report-sheet:focus-visible{outline:3px solid #287d73;outline-offset:3px}
.sv-report-sheet{overflow:auto;max-height:850px;max-width:850px;margin:0 auto;background:#e9eef1;padding:1rem;border:1px solid #cbd6db}
.sv-report-sheet img{width:100%;height:auto;display:block}.sv-report-sheet.is-zoomed img{width:1100px;max-width:none}
@media(max-width:767px){.sv-report-sheet{padding:.5rem;max-height:650px}.sv-report-controls{gap:.65rem;font-size:.85rem}.sv-report-controls button{padding:.55rem .7rem}}

/* Bestandsmotiv vollständig zeigen: Dach und Personen tragen die Aussage. */
.sv-owner-viewing-existing img{height:auto;aspect-ratio:1122/1402;object-fit:contain}
.sv-site .sv-story-full-image{grid-template-columns:1fr 1fr;background:#f5f4ef}
.sv-site .sv-story-full-image figcaption,.sv-site .sv-story-full-image figcaption strong{color:#142d49}
.sv-site .sv-story-full-image figcaption span{color:#526676}
.sv-site .sv-story-full-image > img{object-fit:contain}
@media(max-width:767px){.sv-site .sv-story-full-image > img{height:auto;aspect-ratio:1122/1402}}

/* Eine Bildgeometrie, drei Zustände. Native Range bleibt per Touch und Tastatur bedienbar. */
.sv-site .sv-editorial .corporate-hero.sv-house-journey{display:block;min-height:0;padding:48px max(24px,5vw) 56px;background:#f4f3ee}
.sv-site .sv-house-journey .corporate-copy{max-width:1440px;margin:auto;padding:0 0 36px;display:grid;grid-template-columns:1fr 1fr;gap:5%;align-items:center}
.sv-site .sv-house-journey .corporate-copy h1{font-size:clamp(36px,4.6vw,68px);letter-spacing:-.045em;margin:18px 0 8px}
.sv-site .sv-house-journey .corporate-copy p{font-size:17px;max-width:650px;margin:0 0 22px}
.sv-site .sv-house-journey .actions{gap:12px;flex-wrap:wrap}
.sv-site .sv-journey{--inside:50%;--renewed:0%;--finished:0%;max-width:1440px;margin:0 auto;background:#142d49;border-radius:16px;overflow:hidden;box-shadow:0 24px 60px #142d491a}
.sv-site .sv-journey-images{position:relative;aspect-ratio:3/2;isolation:isolate;overflow:hidden}
.sv-site .sv-journey-images img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.sv-site .sv-journey-inside{clip-path:inset(0 calc(100% - var(--inside)) 0 0)}
.sv-site .sv-journey-renewed{clip-path:inset(0 calc(100% - var(--renewed)) 0 0)}
.sv-site .sv-journey-finished{clip-path:inset(0 calc(100% - var(--finished)) 0 0)}
.sv-site .sv-journey-caption{position:absolute;inset:auto 0 0;padding:70px 32px 26px;background:linear-gradient(transparent,#102d42e8);color:white;pointer-events:none}
.sv-site .sv-journey-caption span{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px;color:#e5f4f4}
.sv-site .sv-journey-caption strong{font-size:clamp(18px,2.5vw,32px);color:white;line-height:1.2}
.sv-site .sv-journey figcaption{padding:28px 32px;display:grid;grid-template-columns:1.25fr 1fr;gap:40px;color:white}
.sv-site .sv-journey label{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:16px;font-weight:700;color:white}
.sv-site .sv-journey label span{font-size:12px;font-weight:400;color:#d1e3ef}
.sv-site .sv-journey input{display:block;width:100%;height:44px;margin:10px 0 0;accent-color:#58d6ce;cursor:ew-resize;touch-action:pan-y}
.sv-site .sv-journey input:focus-visible,.sv-site .sv-journey button:focus-visible{outline:3px solid #65e2d9;outline-offset:4px}
.sv-site .sv-journey-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sv-site .sv-journey-stages button{padding:10px 8px;background:transparent;border:1px solid #688197;border-radius:6px;font:inherit;font-size:12px;text-align:left;color:#c1d9e8;cursor:pointer;min-height:55px}
.sv-site .sv-journey-stages button span{display:block;color:white;font-weight:700;margin-top:4px}
.sv-site .sv-journey-stages button[aria-pressed=true]{border-color:#65e2d9;background:#1f5262}
.sv-site .sv-journey-explanation p{margin:0 0 10px;font-size:14px;line-height:1.6;color:#e5eef5}
.sv-site .sv-journey-explanation strong{display:block;color:white;margin-bottom:4px}
.sv-site .sv-journey-explanation small{display:block;color:#bed2e1;font-size:11px;line-height:1.6}
@media(min-width:1600px){.sv-site .sv-journey-images{aspect-ratio:1.8;background:#d7e5eb}.sv-site .sv-journey-images img{object-fit:contain}}
@media(max-width:900px){.sv-site .sv-house-journey .corporate-copy{grid-template-columns:1fr;gap:22px}.sv-site .sv-journey figcaption{grid-template-columns:1fr;gap:24px}}
@media(max-width:600px){.sv-site .sv-editorial .corporate-hero.sv-house-journey{padding:30px 16px}.sv-site .sv-journey figcaption{padding:20px 16px}.sv-site .sv-journey-caption{padding:35px 16px 14px}.sv-site .sv-journey-caption span{font-size:9px}.sv-site .sv-journey-caption strong{font-size:18px}.sv-site .sv-journey label{align-items:start;flex-direction:column;gap:4px}.sv-site .sv-journey-stages{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sv-site .sv-journey-stages button{padding:8px 6px;font-size:11px}}

/* Originalseiten des fiktiven WEG-Musters; identisch in Angular und Vorrender. */
.sv-site .sv-weg-sample { margin-top: 48px; padding: clamp(20px, 4vw, 44px); background: #edf3f8; border-radius: 12px; }
.sv-site .sv-weg-sample-head { max-width: 720px; }
.sv-site .sv-weg-sample-kicker { color: #155e80; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sv-site .sv-weg-sample h3 { margin: 14px 0; color: #142d49; font-size: clamp(26px, 3vw, 38px); }
.sv-site .sv-weg-sample p { line-height: 1.65; }
.sv-site .sv-weg-sample-pages { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 30px 0; }
.sv-site .sv-weg-sample-pages a { min-width: 0; color: #142d49; }
.sv-site .sv-weg-sample-pages figure { margin: 0; }
.sv-site .sv-weg-sample-pages img { display: block; width: 100%; height: auto; border: 1px solid #cbd9e3; box-shadow: 0 8px 24px #142d4914; }
.sv-site .sv-weg-sample-pages figcaption { padding-top: 12px; font-size: 15px; font-weight: 600; }
.sv-site .sv-weg-sample-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.sv-site .sv-weg-sample-actions > a { max-width: 100%; white-space: normal; }
.sv-site .sv-weg-sample-note { margin-top: 20px; font-size: 13px; }
@media(max-width: 640px) { .sv-site .sv-weg-sample-pages { grid-template-columns: 1fr; } }

@media(max-width:600px){.sv-site .sv-journey-caption{display:none}}

/* Kompakter Firmeneinstieg: gemeinsame Breite, Hausreise rechts statt links unter dem Text. */
.sv-site .sv-editorial .corporate-hero.sv-house-journey{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,4vw,64px);align-items:center;padding:48px max(24px,calc((100% - 1560px)/2)) 56px}
.sv-site .sv-editorial .sv-house-journey .corporate-copy{display:block;min-width:0;margin:0;padding:0}
.sv-site .sv-editorial .sv-house-journey .corporate-copy h1{font-size:clamp(36px,3.5vw,58px);line-height:1.08;letter-spacing:-.04em;text-wrap:balance;margin:24px 0}
.sv-site .sv-editorial .sv-house-journey .corporate-copy p{font-size:18px;max-width:560px;margin:0 0 26px}
.sv-site .sv-editorial .sv-house-journey .sv-journey{width:100%;min-width:0;max-width:none;margin:0}
.sv-site .sv-house-journey .sv-journey-images{aspect-ratio:3/2}
.sv-site .sv-house-journey .sv-journey-caption{padding:48px 24px 18px}
.sv-site .sv-house-journey .sv-journey-caption strong{font-size:clamp(18px,1.6vw,24px)}
.sv-site .sv-house-journey .sv-journey figcaption{grid-template-columns:1fr;gap:16px;padding:20px 24px}
.sv-site .sv-house-journey .sv-journey-explanation p{display:none}
@media(max-width:1000px){.sv-site .sv-editorial .corporate-hero.sv-house-journey{grid-template-columns:1fr;gap:28px;padding:36px 24px}.sv-site .sv-editorial .sv-house-journey .corporate-copy{max-width:720px}.sv-site .sv-editorial .sv-house-journey .corporate-copy h1{max-width:650px}.sv-site .sv-house-journey .sv-journey-images{aspect-ratio:16/9}}
@media(max-width:600px){.sv-site .sv-editorial .corporate-hero.sv-house-journey{padding:28px 16px}.sv-site .sv-house-journey .sv-journey-images{aspect-ratio:3/2}.sv-site .sv-house-journey .sv-journey figcaption{padding:16px}.sv-site .sv-house-journey .sv-journey-caption{display:none}}

/* ══════════════════════════════════════════════════════════════════════════
   SEO-Artikel außerhalb der Marketing-Shell (Codex-Befund PR #4026):
   Die CMS-Routen /blog, /glossar, /vergleich, /landing, /faq laufen in der
   MO-/Energy-Edition unter `app-public-shell` (saas.routes.ts), die keine
   Klasse `sv-site` trägt. Damit die Artikelregeln unten dort ebenso greifen,
   gelten sie für `:is(.sv-site, app-public-shell)`; die Farb- und
   Schriftvariablen bekommen hier neutrale Werte (Slate, Markenfarbe über
   `--color-brand-700`, Schrift Inter wie die übrige Edition).
   ══════════════════════════════════════════════════════════════════════════ */
app-public-shell {
  --sv-navy: #0f172a;
  --sv-blue: var(--color-brand-700, #155e80);
  --sv-paper: #f8fafc;
  --sv-ink: #334155;
  --sv-muted: #64748b;
  --sv-line: #e2e8f0;
  --sv-pale: #f8fafc;
  --sv-body-font: 'Inter';
  --sv-heading-font: 'Inter';
}
/* ══════════════════════════════════════════════════════════════════════════
   SEO-Artikel: zweispaltiges Layout, breite Bausteine, Kennzahl-Kacheln,
   Animationen (Betreiber 30.10.2026: „sehr schmal und textlastig“).
   Gilt für die Angular-Seite (`seo-content-page.html`) UND den statischen
   Vorrender (`scripts/generate-seo-content-entry-html.mjs`) — beide schreiben
   dasselbe Markup, dieses Stylesheet ist vor dem App-Start geladen, also
   springt die Seite beim Bootstrap nicht (CLS).
   ══════════════════════════════════════════════════════════════════════════ */
:is(.sv-site, app-public-shell) .sv-article-layout {
  /* Rund 70 Zeichen je Zeile bei 19 px Source Sans 3. Pixel statt rem: im
     reinen Vorrender ist rem 14 px, erst Angular setzt die 16 px der
     Marketing-Typografie — rem-Maße würden beim App-Start springen (CLS). */
  --sv-lesespalte: 672px;
  /* Wie weit Tabellen, Vergleiche und Kacheln nach links ausbrechen (nur Desktop). */
  --sv-ausbruch: 0px;
  box-sizing: border-box;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 16px 56px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "intro" "aside" "main";
  column-gap: 40px;
}
:is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-intro {
  grid-area: intro;
  width: 100%;
  max-width: var(--sv-lesespalte);
  margin: 0 auto 32px;
  min-width: 0;
}
:is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-aside {
  grid-area: aside;
  width: 100%;
  max-width: var(--sv-lesespalte);
  margin: 0 auto 32px;
  min-width: 0;
}
:is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-main {
  grid-area: main;
  width: 100%;
  max-width: var(--sv-lesespalte);
  margin: 0 auto;
  min-width: 0;
}
:is(.sv-site, app-public-shell) .sv-article-layout .prose-seo {
  margin-bottom: 0;
}
:is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-intro.prose-seo {
  margin-bottom: 40px;
}
/* Breite Bausteine: Tabellen, Vergleiche, Kachelraster. Am Handy volle Breite der Lesespalte. */
:is(.sv-site, app-public-shell) seo-content-block.sv-block-breit,
:is(.sv-site, app-public-shell) .sv-block-breit {
  display: block;
  box-sizing: border-box;
  width: calc(100% + var(--sv-ausbruch));
  margin-left: calc(-1 * var(--sv-ausbruch));
}
:is(.sv-site, app-public-shell) .sv-article-layout .prose-seo > seo-content-block.sv-block-breit + *,
:is(.sv-site, app-public-shell) .sv-article-layout .prose-seo > .sv-block-breit + * {
  margin-top: 1.25em;
}

/* ── Seitenleiste ─────────────────────────────────────────────────────── */
/* Spezifität (0,3,0) über `:is(.sv-site, app-public-shell) .sv-seo-static section { padding: 24px 0 }`, das im Vorrender sonst gewinnt. */
:is(.sv-site, app-public-shell) .sv-article-aside .sv-aside-card {
  box-sizing: border-box;
  border: 1px solid var(--sv-line);
  border-radius: 12px;
  background: #fff;
  padding: 20px;
  margin: 0 0 16px;
  font-family: var(--sv-body-font), sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: var(--sv-ink);
}
:is(.sv-site, app-public-shell) .sv-aside-titel {
  margin: 0 0 12px;
  font: 600 12px/1.4 var(--sv-heading-font), sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sv-muted);
}
:is(.sv-site, app-public-shell) .sv-article-toc.sv-aside-card {
  background: var(--sv-pale);
  padding: 20px;
  margin: 0 0 16px;
}
:is(.sv-site, app-public-shell) .sv-article-toc.sv-aside-card ol {
  margin: 0;
  padding-left: 20px;
  list-style: decimal;
  font-size: 15px;
  display: grid;
  gap: 6px;
}
:is(.sv-site, app-public-shell) .sv-article-toc.sv-aside-card a {
  color: var(--sv-navy);
  text-decoration: none;
}
:is(.sv-site, app-public-shell) .sv-article-toc.sv-aside-card a:hover {
  color: var(--sv-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}
:is(.sv-site, app-public-shell) .sv-aside-kennzahlen dl {
  margin: 0;
  display: grid;
  gap: 10px;
}
:is(.sv-site, app-public-shell) .sv-aside-kennzahlen dl > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--sv-line);
}
:is(.sv-site, app-public-shell) .sv-aside-kennzahlen dl > div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
:is(.sv-site, app-public-shell) .sv-aside-kennzahlen dt {
  font-size: 13px;
  line-height: 1.35;
  color: var(--sv-muted);
  min-width: 0;
}
:is(.sv-site, app-public-shell) .sv-aside-zusatz {
  display: block;
  font-size: 12px;
  color: var(--sv-muted);
  opacity: 0.85;
}
:is(.sv-site, app-public-shell) .sv-aside-kennzahlen dd {
  margin: 0;
  font: 600 16px/1.3 var(--sv-heading-font), sans-serif;
  color: var(--sv-navy);
  text-align: right;
  white-space: nowrap;
  flex-shrink: 0;
}
/* Fester Hinweis auf den kostenlosen Check: nur am Desktop in der Leiste,
   am Handy übernehmen die vorhandenen CTA-Blöcke im Artikel. */
/* Spezifität wie `.sv-article-aside .sv-aside-card` (0,3,0) und danach notiert,
   sonst überschreibt deren weißer Grund die dunkle Fläche (weiße Schrift auf Weiß). */
:is(.sv-site, app-public-shell) .sv-article-aside .sv-aside-cta {
  display: none;
  background: var(--sv-navy);
  border-color: var(--sv-navy);
  color: #fff;
}
:is(.sv-site, app-public-shell) .sv-aside-cta .sv-aside-titel {
  color: rgba(255, 255, 255, 0.72);
}
:is(.sv-site, app-public-shell) .sv-aside-cta-text {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.5;
  color: #fff;
}
:is(.sv-site, app-public-shell) .sv-aside-cta-knopf {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 10px;
  background: #fff;
  color: var(--sv-navy);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
}
:is(.sv-site, app-public-shell) .sv-aside-cta-knopf:hover {
  background: var(--sv-pale);
}
:is(.sv-site, app-public-shell) .sv-aside-cta-fuss {
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.72);
}

/* ── Kennzahl-Kacheln ─────────────────────────────────────────────────── */
/* Nur oben/unten: `margin-left` gehört `.sv-block-breit` (Ausbruch nach links). */
:is(.sv-site, app-public-shell) .sv-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin-top: 24px;
  margin-bottom: 24px;
}
:is(.sv-site, app-public-shell) .sv-stat-grid > seo-content-block {
  display: block;
}
:is(.sv-site, app-public-shell) .sv-stat-grid > seo-content-block > .sv-stat-tile {
  height: 100%;
}
:is(.sv-site, app-public-shell) .sv-stat-tile {
  box-sizing: border-box;
  padding: 20px;
  border-radius: 12px;
  background: var(--sv-pale);
  border: 1px solid var(--sv-line);
}
:is(.sv-site, app-public-shell) .sv-stat-wert {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font: 600 32px/1.1 var(--sv-heading-font), sans-serif;
  color: var(--sv-navy);
  font-variant-numeric: tabular-nums;
}
:is(.sv-site, app-public-shell) .sv-stat-zahl {
  position: relative;
  white-space: nowrap;
}
:is(.sv-site, app-public-shell) .sv-stat-einheit {
  font-size: 16px;
  font-weight: 600;
  color: var(--sv-blue);
}
:is(.sv-site, app-public-shell) .sv-stat-label {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--sv-ink);
}
:is(.sv-site, app-public-shell) .sv-stat-quelle {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--sv-muted);
}

/* ── Desktop: zwei Spalten, Leiste läuft mit, Bausteine brechen aus ──── */
@media (min-width: 1024px) {
  :is(.sv-site, app-public-shell) .sv-article-layout {
    /* Freier Rand links der Lesespalte: (Breite − Innenabstand − Spalten − Lücken) / 2.
       1128 px = 48 + 672 + 272 + 3 × 40 + rund 16 px Bildlaufleiste. */
    --sv-ausbruch: clamp(0px, calc((min(100vw, 1280px) - 1128px) / 2), 96px);
    grid-template-columns: minmax(0, 1fr) minmax(0, var(--sv-lesespalte)) 272px minmax(0, 1fr);
    grid-template-areas: ". intro aside ." ". main aside .";
    padding: 48px 24px 72px;
  }
  :is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-intro,
  :is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-main {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
  :is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-aside {
    max-width: none;
    margin: 0;
    position: sticky;
    /* Kopfzeile der Website ist 86 px hoch und klebt oben. */
    top: 104px;
    align-self: start;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    scrollbar-width: thin;
    padding-bottom: 4px;
  }
  :is(.sv-site, app-public-shell) .sv-article-aside .sv-aside-cta {
    display: block;
  }
}

/* ── Animationen, rein per CSS (Scroll-Timeline) ───────────────────────
   Nur Deckkraft und Versatz, keine Layoutverschiebung. Browser ohne
   `animation-timeline` zeigen alles sofort fertig. Wer Bewegung reduziert
   hat, bekommt keine. */
@property --sv-n {
  syntax: '<integer>';
  inherits: false;
  initial-value: 0;
}
@keyframes svArtikelEinblenden {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
@keyframes svZaehlen {
  from { --sv-n: 0; }
  to { --sv-n: var(--sv-ziel); }
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    :is(.sv-site, app-public-shell) .sv-article-layout :is(.prose-seo-block-table-wrapper, .prose-seo-block-callout, .prose-seo-block-kv, .prose-seo-block-quote, .sv-stat-tile) {
      animation: svArtikelEinblenden 1ms linear both;
      animation-timeline: view();
      /* Fertig, sobald das Element 160 px weit im Fenster ist — unabhängig von seiner Höhe. */
      animation-range: entry 0px entry 160px;
    }
    :is(.sv-site, app-public-shell) .sv-stat-zahl[data-zaehlen] {
      counter-reset: svzahl var(--sv-n);
      animation: svZaehlen 1ms linear both;
      animation-timeline: view();
      animation-range: entry 40px entry 240px;
    }
    :is(.sv-site, app-public-shell) .sv-stat-zahl[data-zaehlen]::before {
      content: counter(svzahl) / "";
      display: inline-block;
      /* Breite steht fest, damit der Zähler beim Hochlaufen nichts verschiebt. */
      min-width: calc(var(--sv-stellen, 1) * 1ch);
      text-align: right;
    }
    /* Der echte Wert bleibt für Vorlesen und Crawler im DOM, nur unsichtbar. */
    :is(.sv-site, app-public-shell) .sv-stat-zahl[data-zaehlen] .sv-stat-zahl-text {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      padding: 0;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
      border: 0;
    }
  }
}
@media print {
  :is(.sv-site, app-public-shell) .sv-article-layout > .sv-article-aside { position: static; max-height: none; }
  :is(.sv-site, app-public-shell) .sv-article-aside .sv-aside-cta { display: none; }
  :is(.sv-site, app-public-shell) .sv-article-layout * { animation: none !important; opacity: 1 !important; transform: none !important; }
  :is(.sv-site, app-public-shell) .sv-stat-zahl[data-zaehlen]::before { content: none; }
  :is(.sv-site, app-public-shell) .sv-stat-zahl[data-zaehlen] .sv-stat-zahl-text { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; }
}

/* ── Kopf des Artikels bündig mit der Lesespalte ───────────────────────
   Nur mit `sv-article-hero--raster` (www-Zweig; der Invest-Blog bleibt einspaltig).
   Unter 1024 px dieselbe Breite wie Intro und Hauptspalte (672 px plus
   Innenabstand), darüber dasselbe Vierspalten-Raster wie `.sv-article-layout`:
   Titel und Bild beginnen auf der Lesespalte und dürfen bis über die
   Seitenleiste reichen. */
:is(.sv-site, app-public-shell) .sv-article-hero--raster > div:first-child,
:is(.sv-site, app-public-shell) .sv-article-hero--raster .sv-article-heading,
:is(.sv-site, app-public-shell) .sv-article-hero--raster > div:not(:first-child),
:is(.sv-site, app-public-shell) .sv-article-hero--raster .sv-article-image {
  max-width: 704px;
}
@media (min-width: 1024px) {
  :is(.sv-site, app-public-shell) .sv-article-hero--raster > div:first-child,
  :is(.sv-site, app-public-shell) .sv-article-hero--raster .sv-article-heading,
  :is(.sv-site, app-public-shell) .sv-article-hero--raster > div:not(:first-child),
  :is(.sv-site, app-public-shell) .sv-article-hero--raster .sv-article-image {
    box-sizing: border-box;
    max-width: 1280px;
    padding-left: 24px;
    padding-right: 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 672px) 272px minmax(0, 1fr);
    column-gap: 40px;
  }
  :is(.sv-site, app-public-shell) .sv-article-hero--raster > div:first-child > *,
  :is(.sv-site, app-public-shell) .sv-article-hero--raster .sv-article-heading > *,
  :is(.sv-site, app-public-shell) .sv-article-hero--raster > div:not(:first-child) > *,
  :is(.sv-site, app-public-shell) .sv-article-hero--raster .sv-article-image > * {
    grid-column: 2 / 4;
    min-width: 0;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   Visuelle Bausteine der SEO-Artikel (30.10.2026): barChart, beforeAfter,
   steps, checklist. Angular (`seo-content-block.component.ts`) und Vorrender
   (`scripts/seo-content-block-renderer.mjs`) schreiben dasselbe Markup.
   Balken sind Inline-SVG (viewBox 0 0 100 10, Breite = Prozent der größten
   Zahl), die Werte stehen zusätzlich als Text daneben. Animation nur per
   CSS-Scroll-Timeline, `prefers-reduced-motion` schaltet sie ab.
   ══════════════════════════════════════════════════════════════════════════ */
:is(.sv-site, app-public-shell) .sv-chart {
  box-sizing: border-box;
  margin: 28px 0;
  padding: 20px 20px 16px;
  border: 1px solid var(--sv-line);
  border-radius: 12px;
  background: #fff;
  font-family: var(--sv-body-font), sans-serif;
  view-timeline-name: --sv-chart;
}
:is(.sv-site, app-public-shell) .sv-chart-titel,
:is(.sv-site, app-public-shell) .sv-visual-titel {
  margin: 0 0 12px;
  font: 600 17px/1.35 var(--sv-heading-font), sans-serif;
  color: var(--sv-navy);
}
:is(.sv-site, app-public-shell) .sv-chart-legende {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
  font-size: 14px;
  color: var(--sv-ink);
}
:is(.sv-site, app-public-shell) .sv-chart-legende li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
}
:is(.sv-site, app-public-shell) .sv-chart-farbe {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
}
/* Gemeinsame Spurbreiten für alle Balken eines Diagramms (Codex-Befund #4028):
   Die Wertspalte (`auto`) wird über Subgrid einmal für das ganze Diagramm
   bemessen. Sonst richtet sich jede Zeile nach ihrem eigenen Werttext, die
   SVG-Flächen werden verschieden breit und die Prozentskala stimmt nicht mehr. */
:is(.sv-site, app-public-shell) .sv-chart-zeilen {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  row-gap: 14px;
}
:is(.sv-site, app-public-shell) .sv-chart-zeile {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  row-gap: 4px;
}
:is(.sv-site, app-public-shell) .sv-chart-kopf {
  grid-column: 1 / -1;
}
:is(.sv-site, app-public-shell) .sv-chart-kopf {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 15px;
  line-height: 1.4;
  color: var(--sv-ink);
}
:is(.sv-site, app-public-shell) .sv-chart-delta {
  flex-shrink: 0;
  font: 600 14px/1.4 var(--sv-heading-font), sans-serif;
  color: var(--sv-green, #287d73);
}
:is(.sv-site, app-public-shell) .sv-chart-balken {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  align-items: center;
}
/* Ohne Subgrid: feste Wertspalte, damit die Balkenflächen trotzdem gleich breit sind. */
@supports not (grid-template-columns: subgrid) {
  :is(.sv-site, app-public-shell) .sv-chart-zeilen,
  :is(.sv-site, app-public-shell) .sv-chart-zeile {
    display: block;
  }
  :is(.sv-site, app-public-shell) .sv-chart-zeile + .sv-chart-zeile {
    margin-top: 14px;
  }
  :is(.sv-site, app-public-shell) .sv-chart-balken {
    grid-template-columns: minmax(0, 1fr) 132px;
    column-gap: 12px;
    margin-top: 4px;
  }
}
:is(.sv-site, app-public-shell) .sv-chart-svg {
  display: block;
  width: 100%;
  height: 14px;
  overflow: visible;
  background: var(--sv-pale);
  border-radius: 4px;
}
:is(.sv-site, app-public-shell) .sv-chart-wert {
  min-width: 88px;
  text-align: right;
  font: 600 14px/1.3 var(--sv-heading-font), sans-serif;
  color: var(--sv-navy);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
/* Reihenname nur für Vorlesen — sichtbar erklärt ihn die Legende. */
:is(.sv-site, app-public-shell) .sv-chart-reihe {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
:is(.sv-site, app-public-shell) .sv-chart-rect--0,
:is(.sv-site, app-public-shell) .sv-chart-rect--nachher {
  fill: var(--sv-blue);
  background: var(--sv-blue);
}
:is(.sv-site, app-public-shell) .sv-chart-rect--1 {
  fill: var(--sv-green, #287d73);
  background: var(--sv-green, #287d73);
}
:is(.sv-site, app-public-shell) .sv-chart-rect--vorher {
  fill: var(--sv-muted);
  background: var(--sv-muted);
  opacity: 0.55;
}
:is(.sv-site, app-public-shell) .sv-chart-quelle {
  margin: 14px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--sv-muted);
}

/* ── Schritt-Ablauf ─────────────────────────────────────────────────── */
:is(.sv-site, app-public-shell) .sv-steps,
:is(.sv-site, app-public-shell) .sv-checkliste {
  margin: 28px 0;
  font-family: var(--sv-body-font), sans-serif;
}
:is(.sv-site, app-public-shell) .sv-steps-liste {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
:is(.sv-site, app-public-shell) .sv-step {
  position: relative;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 14px;
  margin: 0;
  padding: 0 0 20px;
}
/* Verbindungslinie zwischen den Kreisen */
:is(.sv-site, app-public-shell) .sv-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 17px;
  top: 38px;
  bottom: 2px;
  width: 2px;
  background: var(--sv-line);
}
:is(.sv-site, app-public-shell) .sv-step-nr {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--sv-blue);
  color: #fff;
  font: 600 15px/1 var(--sv-heading-font), sans-serif;
}
:is(.sv-site, app-public-shell) .sv-step-inhalt {
  min-width: 0;
  padding-top: 6px;
}
:is(.sv-site, app-public-shell) .sv-step-titel {
  margin: 0 0 4px;
  font: 600 17px/1.4 var(--sv-heading-font), sans-serif;
  color: var(--sv-navy);
}
:is(.sv-site, app-public-shell) .sv-step-dauer {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--sv-pale);
  font: 500 12px/1.5 var(--sv-body-font), sans-serif;
  color: var(--sv-muted);
  vertical-align: 2px;
}
:is(.sv-site, app-public-shell) .sv-step-text,
:is(.sv-site, app-public-shell) .sv-checkliste-text {
  min-width: 0;
  color: var(--sv-ink);
}
:is(.sv-site, app-public-shell) .sv-step-text p,
:is(.sv-site, app-public-shell) .sv-checkliste-text p {
  margin: 0;
}

/* ── Checkliste ─────────────────────────────────────────────────────── */
:is(.sv-site, app-public-shell) .sv-checkliste {
  padding: 20px;
  border-radius: 12px;
  background: var(--sv-pale);
  border: 1px solid var(--sv-line);
}
:is(.sv-site, app-public-shell) .sv-checkliste-liste {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
:is(.sv-site, app-public-shell) .sv-checkliste-liste li {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  margin: 0;
  padding: 0;
  align-items: start;
}
:is(.sv-site, app-public-shell) .sv-check-icon {
  width: 22px;
  height: 22px;
  margin-top: 3px;
}
:is(.sv-site, app-public-shell) .sv-check-icon circle {
  fill: var(--sv-green, #287d73);
}
:is(.sv-site, app-public-shell) .sv-check-icon path {
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 640px) {
  :is(.sv-site, app-public-shell) .sv-chart {
    padding: 16px 14px 12px;
  }
  :is(.sv-site, app-public-shell) .sv-chart-wert {
    min-width: 72px;
    font-size: 13px;
  }
}

/* ── Animation: Balken wachsen beim Hereinscrollen, Schritte blenden ein ── */
@keyframes svBalken {
  from { transform: scaleX(0); }
  to { transform: none; }
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    :is(.sv-site, app-public-shell) .sv-chart-rect {
      transform-box: fill-box;
      transform-origin: left center;
      animation: svBalken 1ms linear both;
      animation-timeline: --sv-chart;
      animation-range: entry 10% cover 40%;
    }
    :is(.sv-site, app-public-shell) .sv-article-layout :is(.sv-step, .sv-checkliste-liste li, .sv-chart) {
      animation: svArtikelEinblenden 1ms linear both;
      animation-timeline: view();
      animation-range: entry 0px entry 120px;
    }
  }
}
@media print {
  :is(.sv-site, app-public-shell) .sv-chart-rect { animation: none !important; transform: none !important; }
}
