/*
 * StB te Heesen – Designsystem 2027 (v3: Basis v1, Logo-Seeblau, Plus Jakarta Sans)
 * Wird vom MU-Plugin stb-redesign-2027.php geladen (Body-Klasse .stb-2027).
 * Spezifität bewusst moderat: Einstellungen im Elementor-Panel (pro Element) überschreiben diese Defaults.
 */

:root {
  --stb-ink: #0F2340;
  --stb-navy: #14305D;
  --stb-blue: #3F82C4;
  --stb-link: #1D62A6;
  --stb-mist: #EEF4FA;
  --stb-mist-2: #F6F9FC;
  --stb-line: #D9E3EE;
  --stb-text: #2B3A50;
  --stb-muted: #56667C;
  --stb-sea: #3F82C4;
  --stb-sea-light: #A9CDEE;
  --stb-tint: #EAF3FB;
  --stb-cta: #14305D;
  --stb-cta-ink: #FFFFFF;
  --stb-cta-hover: #0F2340;
  --stb-white: #FFFFFF;

  --stb-font-display: "Manrope", "Figtree", system-ui, sans-serif;
  --stb-font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;

  --stb-max: 1200px;
  --stb-gutter: clamp(20px, 4vw, 40px);
  --stb-section-y: clamp(64px, 8vw, 112px);
  --stb-r-s: 10px;
  --stb-r-m: 14px;
  --stb-r-l: 18px;
  --stb-r-btn: 10px;
  --stb-sh-1: 0 1px 2px rgba(15, 35, 64, .05), 0 6px 20px rgba(15, 35, 64, .06);
  --stb-sh-2: 0 2px 4px rgba(15, 35, 64, .05), 0 18px 48px rgba(15, 35, 64, .13);
  --stb-ease: cubic-bezier(.2, .7, .2, 1);
}


/* ------------------------------------------------------------------ Basis */

body.stb-2027 {
  background: var(--stb-white);
  color: var(--stb-text);
  font-family: var(--stb-font-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.stb-2027 :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--stb-font-display);
  color: var(--stb-ink);
  letter-spacing: -0.015em;
  text-wrap: balance;
}

body.stb-2027 :where(p, li) { text-wrap: pretty; }
body.stb-2027 :where(a) { color: var(--stb-link); text-underline-offset: .18em; }
body.stb-2027 :where(a:hover) { color: var(--stb-navy); }

body.stb-2027 :focus-visible {
  outline: 3px solid var(--stb-blue);
  outline-offset: 3px;
  border-radius: 4px;
}

body.stb-2027 ::selection { background: #CFE3F6; color: var(--stb-ink); }

/* Überschriften-Skala für Elementor-Heading-Widgets (Panel-Einstellungen gewinnen) */
body.stb-2027 .elementor-widget-heading h1.elementor-heading-title {
  font-family: var(--stb-font-display);
  font-size: clamp(36px, 4.6vw, 58px);
  line-height: 1.16;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--stb-ink);
}
body.stb-2027 .elementor-widget-heading h2.elementor-heading-title {
  font-family: var(--stb-font-display);
  font-size: clamp(29px, 3.2vw, 42px);
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--stb-ink);
}
body.stb-2027 .elementor-widget-heading h3.elementor-heading-title {
  font-family: var(--stb-font-display);
  font-size: clamp(19px, 1.6vw, 22px);
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--stb-ink);
}
body.stb-2027 .elementor-widget-heading :is(h4, h5, h6).elementor-heading-title {
  font-family: var(--stb-font-body);
  font-size: 17px;
  line-height: 1.4;
  font-weight: 700;
  color: var(--stb-ink);
}
body.stb-2027 .elementor-widget-heading p.elementor-heading-title {
  font-family: var(--stb-font-body);
  font-size: 18px;
  font-weight: 500;
  color: var(--stb-text);
}

/* Fließtext in Text-Widgets */
body.stb-2027 .elementor-widget-text-editor {
  font-family: var(--stb-font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--stb-text);
}
body.stb-2027 .elementor-widget-text-editor :where(p) { margin: 0 0 .85em; }
body.stb-2027 .elementor-widget-text-editor :where(p:last-child, ul:last-child, ol:last-child) { margin-bottom: 0; }
body.stb-2027 .elementor-widget-text-editor :where(ul, ol) { margin: 0 0 1em; padding-left: 1.2em; }
body.stb-2027 .elementor-widget-text-editor :where(li) { margin: .3em 0; }
body.stb-2027 .elementor-widget-text-editor :where(strong) { color: var(--stb-ink); font-weight: 700; }

/* Elementor-Abstände innerhalb der neuen Container über Gap steuern */
:where(body.stb-2027) .e-con.stb-c {
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
}
body.stb-2027 .stb-c .elementor-widget:not(:last-child) { --kit-widget-spacing: 0px; }

/* ---------------------------------------------- Textmarker in Seeblau (Signatur) */

body.stb-2027 mark.stb-mark,
body.stb-2027 .stb-mark {
  color: inherit;
  background-color: transparent;
  background-image: linear-gradient(100deg,
    rgba(63, 130, 196, 0) 0%,
    rgba(63, 130, 196, .30) 1.5%,
    rgba(63, 130, 196, .20) 50%,
    rgba(63, 130, 196, .28) 97%,
    rgba(63, 130, 196, 0) 100%);
  background-repeat: no-repeat;
  background-size: 100% .42em;
  background-position: 0 86%;
  padding: 0 .08em;
  margin: 0 -.04em;
  border-radius: .12em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
body.stb-2027.stb-js mark.stb-mark.stb-mark--draw { background-size: 0% .42em; }
body.stb-2027.stb-js mark.stb-mark.stb-mark--draw.is-drawn {
  background-size: 100% .42em;
  transition: background-size 1.1s var(--stb-ease) .35s;
}
.stb-section--navy mark.stb-mark,
.stb-prefooter mark.stb-mark {
  background-image: linear-gradient(100deg, rgba(169, 205, 238, 0) 0%, rgba(169, 205, 238, .38) 2%, rgba(169, 205, 238, .30) 96%, rgba(169, 205, 238, 0) 100%);
}

/* ------------------------------------------------------------- Sektionen */

:where(body.stb-2027) .e-con.stb-section {
  --padding-top: var(--stb-section-y);
  --padding-bottom: var(--stb-section-y);
  --padding-left: var(--stb-gutter);
  --padding-right: var(--stb-gutter);
}
:where(body.stb-2027) .e-con.stb-section--tight {
  --padding-top: clamp(40px, 5vw, 64px);
  --padding-bottom: clamp(40px, 5vw, 64px);
}
:where(body.stb-2027) .e-con.stb-section--flush-top { --padding-top: 0px; }

body.stb-2027 .stb-section--mist { background-color: var(--stb-mist); }
body.stb-2027 .stb-section--soft { background-color: var(--stb-mist-2); }
body.stb-2027 .stb-section--navy {
  background-color: var(--stb-navy);
  color: #DCE7F3;
}
body.stb-2027 .stb-section--navy :is(h1, h2, h3, h4).elementor-heading-title,
body.stb-2027 .stb-section--navy .elementor-widget-text-editor strong { color: var(--stb-white); }
body.stb-2027 .stb-section--navy .elementor-widget-text-editor { color: #DCE7F3; }
body.stb-2027 .stb-section--navy a:not(.elementor-button) { color: #BFDDF7; }

/* Kopfbereich einer Sektion */
body.stb-2027 .elementor-widget-heading.stb-eyebrow .elementor-heading-title,
body.stb-2027 .stb-eyebrow p {
  font-family: var(--stb-font-body);
  font-size: 13px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--stb-blue);
}
body.stb-2027 .stb-section--navy .elementor-widget-heading.stb-eyebrow .elementor-heading-title,
body.stb-2027 .stb-prefooter .elementor-widget-heading.stb-eyebrow .elementor-heading-title { color: #9CC8EF; }

body.stb-2027 .stb-lead,
body.stb-2027 .stb-lead p {
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.6;
  color: var(--stb-text);
}
body.stb-2027 .stb-section--navy .stb-lead,
body.stb-2027 .stb-section--navy .stb-lead p { color: #DCE7F3; }

body.stb-2027 .stb-head { max-width: 760px; }
body.stb-2027 .stb-head--center { margin-inline: auto; text-align: center; align-items: center; }
body.stb-2027 .stb-head--center .elementor-widget { width: 100%; }

body.stb-2027 .stb-small,
body.stb-2027 .stb-small p { font-size: 15px; line-height: 1.55; color: var(--stb-muted); }

/* --------------------------------------------------------------- Buttons */

body.stb-2027 .stb-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55em;
  min-height: 52px;
  padding: 14px 26px;
  border-radius: var(--stb-r-btn);
  border: 2px solid transparent;
  font-family: var(--stb-font-body);
  font-size: 16.5px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-decoration: none;
  transition: background-color .2s var(--stb-ease), color .2s var(--stb-ease), border-color .2s var(--stb-ease), transform .2s var(--stb-ease), box-shadow .2s var(--stb-ease);
}
body.stb-2027 .stb-btn .elementor-button:hover { transform: translateY(-1px); }
body.stb-2027 .stb-btn .elementor-button:active { transform: translateY(0); }
body.stb-2027 .stb-btn .elementor-button .elementor-button-content-wrapper { gap: .55em; align-items: center; }
body.stb-2027 .stb-btn .elementor-button-icon svg { width: 1em; height: 1em; fill: currentColor; }

body.stb-2027 .stb-btn--primary .elementor-button {
  background: var(--stb-cta);
  color: var(--stb-cta-ink);
  box-shadow: 0 1px 2px rgba(15, 35, 64, .10), 0 8px 20px rgba(36, 112, 183, .20);
}
body.stb-2027 .stb-btn--primary .elementor-button:hover,
body.stb-2027 .stb-btn--primary .elementor-button:focus-visible {
  background: var(--stb-cta-hover);
  color: var(--stb-cta-ink);
}
/* Auf dunklem Grund: primärer Button hell */
body.stb-2027 :is(.stb-section--navy, .stb-prefooter) .stb-btn--primary .elementor-button { background: var(--stb-white); color: var(--stb-navy); box-shadow: 0 8px 22px rgba(0, 0, 0, .18); }
body.stb-2027 :is(.stb-section--navy, .stb-prefooter) .stb-btn--primary .elementor-button:hover { background: #E3EEF9; color: var(--stb-ink); }

body.stb-2027 .stb-btn--secondary .elementor-button {
  background: transparent;
  color: var(--stb-navy);
  border-color: rgba(20, 48, 93, .28);
}
body.stb-2027 .stb-btn--secondary .elementor-button:hover,
body.stb-2027 .stb-btn--secondary .elementor-button:focus-visible {
  border-color: var(--stb-navy);
  background: var(--stb-white);
  color: var(--stb-navy);
}

body.stb-2027 .stb-btn--navy .elementor-button {
  background: var(--stb-navy);
  color: var(--stb-white);
}
body.stb-2027 .stb-btn--navy .elementor-button:hover,
body.stb-2027 .stb-btn--navy .elementor-button:focus-visible { background: var(--stb-ink); color: var(--stb-white); }

body.stb-2027 .stb-btn--light .elementor-button {
  background: transparent;
  color: var(--stb-white);
  border-color: rgba(255, 255, 255, .45);
}
body.stb-2027 .stb-btn--light .elementor-button:hover,
body.stb-2027 .stb-btn--light .elementor-button:focus-visible { border-color: var(--stb-white); background: rgba(255, 255, 255, .08); color: var(--stb-white); }

body.stb-2027 .stb-btn--text .elementor-button {
  min-height: 0;
  padding: 4px 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--stb-link);
  font-weight: 700;
  box-shadow: none;
}
body.stb-2027 .stb-btn--text .elementor-button:hover { color: var(--stb-navy); transform: none; }
body.stb-2027 .stb-btn--text .elementor-button { white-space: normal; text-align: left; justify-content: flex-start; }
body.stb-2027 .stb-btn--text .elementor-button-text { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .28em; text-decoration-color: rgba(29, 98, 166, .3); }
body.stb-2027 .stb-btn--text .elementor-button:hover .elementor-button-text { text-decoration-color: currentColor; }

body.stb-2027 .stb-btn--arrow .elementor-button-text::after {
  content: "→";
  display: inline-block;
  margin-left: .45em;
  transition: transform .2s var(--stb-ease);
}
body.stb-2027 .stb-btn--arrow .elementor-button:hover .elementor-button-text::after { transform: translateX(3px); }

body.stb-2027 .stb-actions { flex-wrap: wrap; align-items: center; }

/* ------------------------------------------------------------------ Hero */

body.stb-2027 .stb-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(1200px 520px at 100% 0%, rgba(63, 130, 196, .10), rgba(63, 130, 196, 0) 60%),
    linear-gradient(180deg, var(--stb-mist-2), var(--stb-white) 70%);
}
:where(body.stb-2027) .e-con.stb-hero {
  --padding-top: clamp(40px, 6vw, 88px);
  --padding-bottom: clamp(48px, 6vw, 96px);
}
body.stb-2027 .stb-hero h1.elementor-heading-title {
  font-size: clamp(38px, 5.2vw, 66px);
  line-height: 1.13;
}
body.stb-2027 .stb-hero__media { position: relative; }
body.stb-2027 .stb-hero__img img,
body.stb-2027 .stb-photo img {
  width: 100%;
  border-radius: var(--stb-r-l);
  object-fit: cover;
  box-shadow: var(--stb-sh-2);
}
body.stb-2027 .stb-hero__img img { aspect-ratio: 5 / 4.3; object-position: 58% 40%; }

body.stb-2027 .stb-namecard {
  position: absolute;
  left: clamp(-28px, -2vw, -12px);
  bottom: 28px;
  width: auto;
  max-width: 300px;
  background: var(--stb-white);
  border-radius: var(--stb-r-m);
  box-shadow: var(--stb-sh-2);
}
:where(body.stb-2027) .e-con.stb-namecard {
  --padding-top: 16px;
  --padding-bottom: 16px;
  --padding-left: 20px;
  --padding-right: 22px;
  --row-gap: 2px;
}
body.stb-2027 .stb-namecard .elementor-heading-title { font-size: 18px !important; }
body.stb-2027 .stb-namecard p { font-size: 14.5px; line-height: 1.45; color: var(--stb-muted); margin: 0; }

/* Hinweis unter Hero-Buttons */
body.stb-2027 .stb-hint {
  font-size: 15px;
  line-height: 1.5;
  color: var(--stb-muted);
  max-width: 560px;
}
body.stb-2027 .stb-hint p { display: flex; gap: .6em; align-items: flex-start; margin: 0; }
body.stb-2027 .stb-hint p::before {
  content: "";
  flex: 0 0 18px;
  height: 18px;
  margin-top: .15em;
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233F82C4' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 11v6M12 7.5v.5'/%3E%3C/svg%3E");
}

/* Vertrauensleiste */
body.stb-2027 .stb-trust {
  border-top: 1px solid var(--stb-line);
}
:where(body.stb-2027) .e-con.stb-trust { --padding-top: 28px; }
body.stb-2027 .stb-trust .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 14px 34px; }
body.stb-2027 .stb-trust .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
body.stb-2027 .stb-trust .elementor-icon-list-item::after { display: none !important; }
body.stb-2027 .stb-trust .elementor-icon-list-text { font-weight: 600; color: var(--stb-ink); font-size: 15.5px; }

/* ---------------------------------------------------------------- Listen */

body.stb-2027 .stb-checks .elementor-icon-list-item { align-items: flex-start; }
body.stb-2027 .stb-checks .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child) { padding-bottom: 10px; }
body.stb-2027 .stb-checks .elementor-icon-list-icon {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  margin-top: 1px;
  border-radius: 50%;
  background: var(--stb-mist);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.stb-2027 .stb-checks .elementor-icon-list-icon svg { width: 11px !important; height: 11px; fill: var(--stb-blue); }
body.stb-2027 .stb-checks .elementor-icon-list-icon i { font-size: 11px; color: var(--stb-blue); }
body.stb-2027 .stb-checks .elementor-icon-list-text { padding-left: 12px; color: var(--stb-text); font-size: 17px; line-height: 1.55; }
body.stb-2027 .stb-section--navy .stb-checks .elementor-icon-list-icon { background: rgba(255, 255, 255, .1); }
body.stb-2027 .stb-section--navy .stb-checks .elementor-icon-list-icon svg { fill: var(--stb-sea-light); }
body.stb-2027 .stb-section--navy .stb-checks .elementor-icon-list-text { color: #DCE7F3; }
body.stb-2027 .stb-trust .elementor-icon-list-icon { background: var(--stb-white); box-shadow: inset 0 0 0 1px var(--stb-line); }

/* Chips (z. B. Branchen) */
body.stb-2027 ul.stb-chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body.stb-2027 ul.stb-chips li {
  margin: 0;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--stb-mist);
  color: var(--stb-navy);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}
body.stb-2027 .stb-section--mist ul.stb-chips li { background: var(--stb-white); }

/* Sprungnavigation */
body.stb-2027 ul.stb-jumps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
body.stb-2027 ul.stb-jumps li { margin: 0; }
body.stb-2027 ul.stb-jumps a {
  display: inline-block;
  padding: 8px 15px;
  border-radius: 999px;
  border: 1px solid var(--stb-line);
  background: var(--stb-white);
  color: var(--stb-navy);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: border-color .2s, background-color .2s;
}
body.stb-2027 ul.stb-jumps a:hover { border-color: var(--stb-blue); background: var(--stb-mist-2); }

/* ---------------------------------------------------------------- Karten */

body.stb-2027 .stb-card {
  background: var(--stb-white);
  border: 1px solid var(--stb-line);
  border-radius: var(--stb-r-m);
  transition: transform .25s var(--stb-ease), box-shadow .25s var(--stb-ease), border-color .25s var(--stb-ease);
}
:where(body.stb-2027) .e-con.stb-card {
  --padding-top: 28px;
  --padding-bottom: 28px;
  --padding-left: 26px;
  --padding-right: 26px;
  --row-gap: 12px;
  --justify-content: flex-start;
}
body.stb-2027 .stb-section--mist .stb-card { border-color: transparent; box-shadow: var(--stb-sh-1); }
body.stb-2027 a.stb-card { color: inherit; text-decoration: none; }
body.stb-2027 a.stb-card:hover,
body.stb-2027 a.stb-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: var(--stb-sh-2);
  border-color: rgba(63, 130, 196, .35);
}
body.stb-2027 .stb-card h3.elementor-heading-title { overflow-wrap: break-word; }
body.stb-2027 .stb-card .elementor-widget-text-editor { font-size: 16px; line-height: 1.6; color: var(--stb-muted); }
body.stb-2027 .stb-card__more { margin-top: auto; }
body.stb-2027 .stb-card__more p {
  margin: 0;
  padding-top: 6px;
  font-weight: 700;
  font-size: 15.5px;
  color: var(--stb-link);
}
body.stb-2027 .stb-card__more p::after { content: " →"; transition: margin .2s var(--stb-ease); }
body.stb-2027 a.stb-card:hover .stb-card__more p::after { margin-left: 4px; }

/* Icons in Karten */
body.stb-2027 .stb-icon .elementor-icon-wrapper { line-height: 0; text-align: left; }
body.stb-2027 .stb-icon .elementor-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--stb-mist);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: var(--stb-navy);
  transition: background-color .25s var(--stb-ease);
}
body.stb-2027 .stb-icon .elementor-icon svg { width: 22px; height: 22px; fill: var(--stb-navy); }
body.stb-2027 .stb-section--mist .stb-icon .elementor-icon { background: var(--stb-mist); }
body.stb-2027 a.stb-card:hover .stb-icon .elementor-icon { background: var(--stb-navy); }
body.stb-2027 a.stb-card:hover .stb-icon .elementor-icon svg { fill: var(--stb-white); }

/* Zielgruppen-Karten: größer, mit Akzentlinie */


/* ---------------------------------------------------------- Kosten-Box */

body.stb-2027 .stb-cost {
  background: var(--stb-white);
  border-radius: var(--stb-r-l);
  border: 1px solid var(--stb-line);
  position: relative;
}
:where(body.stb-2027) .e-con.stb-cost {
  --padding-top: clamp(26px, 3vw, 40px);
  --padding-bottom: clamp(26px, 3vw, 40px);
  --padding-left: clamp(22px, 3vw, 44px);
  --padding-right: clamp(22px, 3vw, 44px);
}
body.stb-2027 .stb-cost--inline { background: var(--stb-mist-2); }

/* -------------------------------------------------------- Hinweis-Boxen */

body.stb-2027 .stb-note {
  border-radius: var(--stb-r-m);
  background: var(--stb-mist);
}
:where(body.stb-2027) .e-con.stb-note {
  --padding-top: 22px;
  --padding-bottom: 22px;
  --padding-left: 24px;
  --padding-right: 24px;
  --row-gap: 8px;
}
body.stb-2027 .stb-note h3.elementor-heading-title,
body.stb-2027 .stb-note h4.elementor-heading-title { font-size: 19px; }
body.stb-2027 .stb-note .elementor-widget-text-editor { font-size: 16px; line-height: 1.6; }
body.stb-2027 .stb-note--marker { background: var(--stb-tint); }
body.stb-2027 .stb-note--white { background: var(--stb-white); border: 1px solid var(--stb-line); }

/* ---------------------------------------------------------------- Schritte */

body.stb-2027 .stb-steps { counter-reset: stb-step; }
body.stb-2027 .stb-step {
  counter-increment: stb-step;
  position: relative;
}
:where(body.stb-2027) .e-con.stb-step {
  --padding-left: 72px;
  --row-gap: 4px;
  --padding-bottom: 26px;
}
body.stb-2027 .stb-step::before {
  content: counter(stb-step);
  position: absolute;
  left: 0;
  top: -2px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--stb-font-display);
  font-size: 21px;
  font-weight: 700;
  color: var(--stb-white);
  background: var(--stb-cta);
  z-index: 1;
}
body.stb-2027 .stb-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 23px;
  top: 50px;
  bottom: 2px;
  width: 2px;
  background: linear-gradient(var(--stb-line), var(--stb-line));
}
body.stb-2027 .stb-section--navy .stb-step:not(:last-child)::after { background: rgba(255, 255, 255, .18); }
body.stb-2027 .stb-section--navy .stb-step::before { background: var(--stb-sea-light); color: var(--stb-navy); }
body.stb-2027 .stb-step h3.elementor-heading-title { font-size: 21px; }
body.stb-2027 .stb-step .elementor-widget-text-editor { font-size: 16.5px; }

/* Schritte horizontal (z. B. DATEV-Beispiel) */
body.stb-2027 .stb-steps--row .stb-step { background: var(--stb-white); border: 1px solid var(--stb-line); border-radius: var(--stb-r-m); }
:where(body.stb-2027) .e-con.stb-steps--row .stb-step,
:where(body.stb-2027) .stb-steps--row .e-con.stb-step {
  --padding-top: 84px;
  --padding-left: 26px;
  --padding-right: 26px;
  --padding-bottom: 28px;
}
body.stb-2027 .stb-steps--row .stb-step::before { left: 26px; top: 24px; }
body.stb-2027 .stb-steps--row .stb-step::after { display: none; }

/* -------------------------------------------------------------- Zitat */

body.stb-2027 .stb-quote .elementor-heading-title,
body.stb-2027 .stb-quote blockquote {
  font-family: var(--stb-font-display) !important;
  font-size: clamp(25px, 2.6vw, 34px) !important;
  line-height: 1.22 !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em;
  color: var(--stb-ink);
  margin: 0;
}
body.stb-2027 .stb-quote .elementor-heading-title::before {
  content: "“";
  display: block;
  font-size: 2.4em;
  line-height: .6;
  height: .42em;
  color: var(--stb-blue);
}
body.stb-2027 .stb-signature p { margin: 0; font-size: 15.5px; color: var(--stb-muted); }
body.stb-2027 .stb-signature strong { color: var(--stb-ink); }

/* -------------------------------------------------------------- Zeitstrahl */

body.stb-2027 .stb-timeline ol {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 2px solid var(--stb-line);
}
body.stb-2027 .stb-timeline li {
  position: relative;
  margin: 0;
  padding: 0 0 22px 26px;
}
body.stb-2027 .stb-timeline li::before {
  content: "";
  position: absolute;
  left: -7px;
  top: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--stb-white);
  border: 3px solid var(--stb-blue);
}
body.stb-2027 .stb-timeline li:first-child::before { background: var(--stb-sea); border-color: var(--stb-cta); }
body.stb-2027 .stb-timeline .stb-tl-date { display: block; font-size: 14px; font-weight: 700; letter-spacing: .04em; color: var(--stb-blue); text-transform: uppercase; }
body.stb-2027 .stb-timeline .stb-tl-title { display: block; font-family: var(--stb-font-display); font-weight: 700; font-size: 19px; color: var(--stb-ink); line-height: 1.3; }
body.stb-2027 .stb-timeline .stb-tl-text { display: block; color: var(--stb-muted); font-size: 15.5px; }

/* ------------------------------------------------------------ Akkordeon */

body.stb-2027 .stb-faq .e-n-accordion { gap: 10px; display: flex; flex-direction: column; }
body.stb-2027 .stb-faq .e-n-accordion-item {
  background: var(--stb-white);
  border: 1px solid var(--stb-line);
  border-radius: var(--stb-r-m);
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
body.stb-2027 .stb-faq .e-n-accordion-item[open] { border-color: rgba(63, 130, 196, .45); box-shadow: var(--stb-sh-1); }
body.stb-2027 .stb-faq .e-n-accordion-item-title {
  padding: 18px 22px;
  border: 0 !important;
  background: transparent !important;
  gap: 16px;
  justify-content: space-between;
}
body.stb-2027 .stb-faq .e-n-accordion-item-title-text,
body.stb-2027 .stb-faq .e-n-accordion-item-title-header :is(h3, h4, span, div) {
  font-family: var(--stb-font-body) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  color: var(--stb-ink) !important;
  letter-spacing: 0;
}
body.stb-2027 .stb-faq .e-n-accordion-item-title-icon {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--stb-mist);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.stb-2027 .stb-faq .e-n-accordion-item-title-icon svg { width: 12px; height: 12px; fill: var(--stb-navy) !important; }
body.stb-2027 .stb-faq .e-n-accordion-item-title-icon i { font-size: 12px; color: var(--stb-navy) !important; }
body.stb-2027 .stb-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--stb-navy); }
body.stb-2027 .stb-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg { fill: var(--stb-white) !important; }
body.stb-2027 .stb-faq .e-n-accordion-item > .e-con,
body.stb-2027 .stb-faq .e-n-accordion-item > [role="region"] {
  --padding-top: 0px;
  --padding-bottom: 20px;
  --padding-left: 22px;
  --padding-right: 22px;
  border: 0 !important;
}
body.stb-2027 .stb-faq .e-n-accordion-item .elementor-widget-text-editor { font-size: 16.5px; color: var(--stb-text); }
body.stb-2027 .stb-section--mist .stb-faq .e-n-accordion-item { border-color: transparent; }

/* -------------------------------------------------------- Seitenkopf */

body.stb-2027 .stb-pagehero {
  background:
    radial-gradient(900px 420px at 100% 0%, rgba(63, 130, 196, .11), rgba(63, 130, 196, 0) 62%),
    var(--stb-mist-2);
  border-bottom: 1px solid var(--stb-line);
}
:where(body.stb-2027) .e-con.stb-pagehero {
  --padding-top: clamp(32px, 4vw, 56px);
  --padding-bottom: clamp(44px, 5vw, 72px);
}
body.stb-2027 .stb-pagehero h1.elementor-heading-title { font-size: clamp(34px, 4.4vw, 56px); }
body.stb-2027 .stb-pagehero .stb-photo img { aspect-ratio: 4 / 3; max-height: 440px; }

/* Breadcrumbs (Rank Math) */
body.stb-2027 .rank-math-breadcrumb p,
body.stb-2027 .stb-breadcrumb p {
  margin: 0;
  font-size: 14px;
  color: var(--stb-muted);
}
body.stb-2027 .rank-math-breadcrumb a { color: var(--stb-muted); text-decoration: none; }
body.stb-2027 .rank-math-breadcrumb a:hover { color: var(--stb-link); text-decoration: underline; }
body.stb-2027 .rank-math-breadcrumb .separator { margin: 0 .45em; color: #9AA9BC; }
body.stb-2027 .rank-math-breadcrumb .last { color: var(--stb-ink); font-weight: 600; }

/* Leistungsblöcke auf /leistungen/ */
body.stb-2027 .stb-service { scroll-margin-top: 120px; border-top: 1px solid var(--stb-line); }
:where(body.stb-2027) .e-con.stb-service { --padding-top: clamp(36px, 4vw, 56px); --padding-bottom: 0px; }
body.stb-2027 .stb-service:first-child { border-top: 0; }
body.stb-2027 .stb-service h2.elementor-heading-title { font-size: clamp(26px, 2.5vw, 34px); hyphens: manual; overflow-wrap: break-word; }
body.stb-2027 .stb-grid > .e-con { min-width: 0; }
body.stb-2027 [id] { scroll-margin-top: 110px; }

/* ------------------------------------------------------------- Formular */

body.stb-2027 .stb-formcard {
  background: var(--stb-white);
  border-radius: var(--stb-r-l);
  box-shadow: var(--stb-sh-2);
  border: 1px solid var(--stb-line);
}
:where(body.stb-2027) .e-con.stb-formcard {
  --padding-top: clamp(26px, 3vw, 40px);
  --padding-bottom: clamp(26px, 3vw, 40px);
  --padding-left: clamp(20px, 3vw, 40px);
  --padding-right: clamp(20px, 3vw, 40px);
}
body.stb-2027 .elementor-form .elementor-field-group { margin-bottom: 16px; }
body.stb-2027 .elementor-form .elementor-field-label {
  font-family: var(--stb-font-body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--stb-ink);
  margin-bottom: 6px;
}
body.stb-2027 .elementor-form .elementor-field-textual {
  min-height: 50px;
  padding: 12px 16px;
  border: 1.5px solid var(--stb-line);
  border-radius: 12px;
  background: var(--stb-white);
  font-family: var(--stb-font-body);
  font-size: 16.5px;
  line-height: 1.45;
  color: var(--stb-ink);
  transition: border-color .2s, box-shadow .2s;
}
body.stb-2027 .elementor-form textarea.elementor-field-textual { min-height: 130px; }
body.stb-2027 .elementor-form .elementor-field-textual::placeholder { color: #8A99AD; }
body.stb-2027 .elementor-form .elementor-field-textual:focus {
  outline: none;
  border-color: var(--stb-blue);
  box-shadow: 0 0 0 4px rgba(63, 130, 196, .16);
}
body.stb-2027 .elementor-form .elementor-field-type-acceptance .elementor-field-subgroup label,
body.stb-2027 .elementor-form .elementor-field-option label { font-size: 15px; line-height: 1.5; color: var(--stb-text); }
body.stb-2027 .elementor-form .elementor-field-type-acceptance input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--stb-navy); }
body.stb-2027 .elementor-form .elementor-field-option { display: flex; gap: 10px; align-items: flex-start; }
body.stb-2027 .elementor-form .elementor-button[type="submit"] {
  width: 100%;
  min-height: 54px;
  border-radius: var(--stb-r-btn) !important;
  background: var(--stb-cta) !important;
  color: var(--stb-cta-ink) !important;
  font-family: var(--stb-font-body);
  font-size: 17px;
  font-weight: 700;
  border: 0;
  transition: background-color .2s;
}
body.stb-2027 .elementor-form .elementor-button[type="submit"]:hover { background: var(--stb-cta-hover) !important; }
body.stb-2027 .elementor-form .elementor-button[type="submit"] .elementor-button-text { color: inherit !important; }
body.stb-2027 .elementor-form .elementor-field-required .elementor-field-label::after { color: var(--stb-blue); }
body.stb-2027 .elementor-form .elementor-message { font-size: 15.5px; }

/* Kontaktkarte */
body.stb-2027 .stb-contact-list .elementor-icon-list-item { align-items: flex-start; }
body.stb-2027 .stb-contact-list .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child) { padding-bottom: 14px; }
body.stb-2027 .stb-contact-list .elementor-icon-list-icon {
  flex: 0 0 40px; width: 40px; height: 40px; border-radius: 12px; background: var(--stb-mist);
  display: inline-flex; align-items: center; justify-content: center;
}
body.stb-2027 .stb-contact-list .elementor-icon-list-icon svg { width: 16px !important; height: 16px; fill: var(--stb-navy); }
body.stb-2027 .stb-contact-list .elementor-icon-list-text { padding-left: 14px; font-size: 16.5px; line-height: 1.45; color: var(--stb-ink); padding-top: 9px; }
body.stb-2027 .stb-contact-list a .elementor-icon-list-text { color: var(--stb-link); font-weight: 600; }

/* Terminbuchung (bestehendes HTML-Widget) an Design anpassen */
body.stb-2027 .whd-termin {
  --whd-btn-bg: var(--stb-navy);
  --whd-btn-bg-hover: var(--stb-ink);
  --whd-accent: var(--stb-navy);
  --whd-text: var(--stb-text);
  --whd-radius: 10px;
  --whd-tooltip-bg: var(--stb-ink);
}

/* ------------------------------------------------------------ Bewertungen */

body.stb-2027 .stb-consent-trustindex__box {
  border-radius: var(--stb-r-m) !important;
  background: var(--stb-white) !important;
  border: 1px dashed #B9C9DB !important;
  color: var(--stb-text) !important;
  text-align: center;
  padding: 28px !important;
}
body.stb-2027 .stb-consent-trustindex__btn {
  border-radius: 999px !important;
  background: var(--stb-navy) !important;
  padding: .85rem 1.5rem !important;
}
body.stb-2027 .stb-consent-trustindex__btn:hover { background: var(--stb-ink) !important; }
body.stb-2027 .stb-badge img { max-width: 120px; border-radius: 12px; box-shadow: var(--stb-sh-1); }

/* -------------------------------------------------------- Beitragskarten */

body.stb-2027 .stb-posts .elementor-posts-container { --grid-column-gap: 24px; --grid-row-gap: 24px; }
body.stb-2027 .stb-posts .elementor-post__card {
  border-radius: var(--stb-r-m) !important;
  border: 1px solid var(--stb-line);
  box-shadow: none !important;
  background: var(--stb-white);
  transition: transform .25s var(--stb-ease), box-shadow .25s var(--stb-ease);
}
body.stb-2027 .stb-posts .elementor-post__card:hover { transform: translateY(-3px); box-shadow: var(--stb-sh-2) !important; }
body.stb-2027 .stb-posts .elementor-post__thumbnail img { transition: transform .5s var(--stb-ease); }
body.stb-2027 .stb-posts .elementor-post__card:hover .elementor-post__thumbnail img { transform: translate(-50%, -50%) scale(1.04); }
body.stb-2027 .stb-posts .elementor-post__text { padding: 0 24px !important; margin-top: 18px; }
body.stb-2027 .stb-posts .elementor-post__title,
body.stb-2027 .stb-posts .elementor-post__title a {
  font-family: var(--stb-font-display) !important;
  font-size: 19px !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;
  color: var(--stb-ink) !important;
  letter-spacing: -0.01em;
}
body.stb-2027 .stb-posts .elementor-post__excerpt p { font-size: 15.5px !important; line-height: 1.55; color: var(--stb-muted) !important; }
body.stb-2027 .stb-posts .elementor-post__read-more {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--stb-link) !important;
  text-transform: none !important;
}
body.stb-2027 .stb-posts .elementor-post__meta-data {
  padding: 14px 24px !important;
  border-top: 1px solid var(--stb-line) !important;
  font-size: 13.5px !important;
  color: var(--stb-muted) !important;
}
body.stb-2027 .stb-posts .elementor-post__badge {
  background: var(--stb-white) !important;
  color: var(--stb-navy) !important;
  font-family: var(--stb-font-body) !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: .02em;
  text-transform: none !important;
  border-radius: 999px !important;
  padding: 6px 12px !important;
  margin: 16px !important;
  box-shadow: var(--stb-sh-1);
}
body.stb-2027 .stb-posts .elementor-post__card .elementor-post__thumbnail__link { margin-bottom: 0 !important; }

/* Unlimited-Elements-Raster (Wissen & Aktuelles) – Plugin-Stile per ID, daher !important */
body.stb-2027 .ue_taxonomy { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; justify-content: flex-start !important; }
body.stb-2027 .ue_taxonomy .ue_taxonomy_item {
  background: var(--stb-white) !important;
  color: var(--stb-navy) !important;
  border: 1px solid var(--stb-line) !important;
  border-radius: 999px !important;
  padding: 8px 15px !important;
  margin: 0 !important;
  font-family: var(--stb-font-body) !important;
  font-size: 14.5px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  box-shadow: none !important;
  transition: border-color .2s, background-color .2s;
}
body.stb-2027 .ue_taxonomy .ue_taxonomy_item * { color: inherit !important; font: inherit !important; }
body.stb-2027 .ue_taxonomy .ue_taxonomy_item:hover { border-color: var(--stb-blue) !important; background: var(--stb-mist-2) !important; }
body.stb-2027 .ue_taxonomy .ue_taxonomy_item.uc-selected { background: var(--stb-navy) !important; border-color: var(--stb-navy) !important; color: var(--stb-white) !important; }
body.stb-2027 .ue_post_grid .ue_post_grid_item {
  background: var(--stb-white) !important;
  border: 1px solid var(--stb-line) !important;
  border-radius: var(--stb-r-m) !important;
  overflow: hidden;
  box-shadow: none !important;
  transition: transform .25s var(--stb-ease), box-shadow .25s var(--stb-ease);
}
body.stb-2027 .ue_post_grid .ue_post_grid_item:hover { transform: translateY(-3px); box-shadow: var(--stb-sh-2) !important; }
body.stb-2027 .ue_post_grid .uc_post_image img { aspect-ratio: 16 / 9; object-fit: cover; }
body.stb-2027 .uc_post_grid_style_one_wrap.ue_post_grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 24px !important; }
@media (max-width: 1024px) { body.stb-2027 .uc_post_grid_style_one_wrap.ue_post_grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 767px) { body.stb-2027 .uc_post_grid_style_one_wrap.ue_post_grid { grid-template-columns: 1fr !important; } }
body.stb-2027 .ue_post_grid .uc_content { background: transparent !important; padding: 20px 22px 22px !important; }
body.stb-2027 .ue_post_grid .ue-grid-item-category a {
  background: var(--stb-mist) !important;
  color: var(--stb-navy) !important;
  border-radius: 999px !important;
  padding: 4px 10px !important;
  font-family: var(--stb-font-body) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}
body.stb-2027 .ue_post_grid .uc_post_title,
body.stb-2027 .ue_post_grid .uc_post_title a,
body.stb-2027 .ue_post_grid .ue_p_title {
  font-family: var(--stb-font-display) !important;
  font-size: 19px !important;
  font-weight: 650 !important;
  line-height: 1.3 !important;
  color: var(--stb-ink) !important;
  letter-spacing: -0.01em;
}
body.stb-2027 .ue_post_grid .ue-grid-item-meta-data { font-size: 13.5px !important; color: var(--stb-muted) !important; }
body.stb-2027 .ue_post_grid .uc_more_btn { background: none !important; padding: 0 !important; border: 0 !important; color: var(--stb-link) !important; }
body.stb-2027 .ue_post_grid .uc_more_btn .uc_btn_txt { color: var(--stb-link) !important; font-family: var(--stb-font-body) !important; font-size: 15px !important; font-weight: 700 !important; text-transform: none !important; }
body.stb-2027 .archive_pagination a,
body.stb-2027 .archive_pagination span {
  min-width: 38px; height: 38px; display: inline-flex !important; align-items: center; justify-content: center;
  border-radius: 999px !important; border: 1px solid var(--stb-line) !important; background: var(--stb-white) !important;
  color: var(--stb-navy) !important; font-weight: 600 !important; font-size: 15px !important; margin: 3px !important; padding: 0 8px !important;
}
body.stb-2027 .archive_pagination .current { background: var(--stb-navy) !important; border-color: var(--stb-navy) !important; color: var(--stb-white) !important; }
body.stb-2027 .elementor-form input[type="file"] { font-size: 15px; padding: 10px; border: 1.5px dashed var(--stb-line); border-radius: 12px; width: 100%; background: var(--stb-mist-2); }

/* ----------------------------------------------------- Beitragsansicht */

body.stb-2027 .stb-article { max-width: 780px; margin-inline: auto; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content {
  font-size: 18px;
  line-height: 1.75;
  color: var(--stb-text);
}
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(h2) {
  font-size: clamp(25px, 2.4vw, 31px);
  line-height: 1.2;
  margin: 1.6em 0 .55em;
  color: var(--stb-ink);
}
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(h3) {
  font-size: clamp(20px, 1.9vw, 23px);
  line-height: 1.3;
  margin: 1.4em 0 .5em;
  color: var(--stb-ink);
}
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(h4) { font-size: 18px; margin: 1.2em 0 .4em; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(p) { margin: 0 0 1.05em; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(ul, ol) { margin: 0 0 1.2em; padding-left: 1.3em; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(li) { margin: .35em 0; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(li)::marker { color: var(--stb-blue); }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(blockquote) {
  margin: 1.5em 0;
  padding: 18px 24px;
  border-left: 3px solid var(--stb-sea);
  background: var(--stb-mist-2);
  border-radius: 0 var(--stb-r-s) var(--stb-r-s) 0;
}
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(table) {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  margin: 1.2em 0 1.6em;
  display: block;
  overflow-x: auto;
}
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(th, td) { border: 1px solid var(--stb-line); padding: 10px 12px; text-align: left; vertical-align: top; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(th) { background: var(--stb-mist); color: var(--stb-ink); }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(img) { border-radius: var(--stb-r-m); height: auto; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(.wp-block-group.has-background) { border-radius: var(--stb-r-m); }
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(details) {
  border: 1px solid var(--stb-line);
  border-radius: var(--stb-r-s);
  padding: 14px 18px;
  margin: 0 0 12px;
}
body.stb-2027 .stb-article .elementor-widget-theme-post-content :where(summary) { cursor: pointer; font-weight: 700; color: var(--stb-ink); }

body.stb-2027 .stb-article-head h1.elementor-heading-title { font-size: clamp(32px, 4vw, 50px); }
body.stb-2027 .stb-article-meta .elementor-icon-list-text,
body.stb-2027 .stb-article-meta .elementor-post-info__item { font-size: 15px; color: var(--stb-muted); }
body.stb-2027 .stb-article-meta .elementor-post-info__terms-list-item { color: var(--stb-link); font-weight: 600; }
body.stb-2027 .stb-article-image img { width: 100%; border-radius: var(--stb-r-l); aspect-ratio: 16 / 8.5; object-fit: cover; }
body.stb-2027 .stb-article-excerpt { font-size: 20px; line-height: 1.6; color: var(--stb-ink); font-weight: 500; }
body.stb-2027 .stb-author { border-top: 1px solid var(--stb-line); }
:where(body.stb-2027) .e-con.stb-author { --padding-top: 24px; }
body.stb-2027 .stb-author img { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; object-position: 50% 30%; }

/* ---------------------------------------------------- Rechtstexte (Prosa) */

body.stb-2027 .stb-prose-wrap { max-width: 820px; }
body.stb-2027 .stb-prose { font-size: 17px; line-height: 1.7; }
body.stb-2027 .stb-prose :where(h2) { font-size: clamp(23px, 2.2vw, 28px); line-height: 1.25; margin: 1.6em 0 .5em; }
body.stb-2027 .stb-prose :where(h3) { font-size: 20px; line-height: 1.3; margin: 1.4em 0 .45em; }
body.stb-2027 .stb-prose :where(h4, h5) { font-family: var(--stb-font-body); font-size: 17px; font-weight: 700; margin: 1.2em 0 .4em; }
body.stb-2027 .stb-prose :where(h2:first-child, h3:first-child, p:first-child) { margin-top: 0; }
body.stb-2027 .stb-prose a { overflow-wrap: anywhere; }

/* Archivseiten (Unlimited-Elements-Raster unverändert, nur Abstände) */
body.stb-2027 .stb-archive.elementor-section,
body.stb-2027 .elementor-section.stb-archive { padding-top: 48px; padding-bottom: 72px; }

/* Karte Kontaktseite */
body.stb-2027 .stb-mapwrap iframe { display: block; filter: saturate(.85); }

/* Porträt */
body.stb-2027 .stb-portrait img { aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 30%; }

/* -------------------------------------- Krypto-Hinweise (Template-Shortcode) */

body.stb-2027 .stb-krypto-box { margin: 0 0 1.6em; }
body.stb-2027 .stb-article .stb-krypto-box .elementor-heading-title { margin: 0 !important; }

/* ------------------------------------------------------------------ Header */

body.stb-2027 .elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 990;
}
body.stb-2027.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { body.stb-2027.admin-bar .elementor-location-header { top: 0; } }

body.stb-2027 .stb-topbar {
  background: var(--stb-ink);
  color: #C9D7E8;
  font-size: 14px;
  overflow: hidden;
  height: 40px;
}
:where(body.stb-2027) .e-con.stb-topbar {
  --padding-top: 0px;
  --padding-bottom: 0px;
  --padding-left: var(--stb-gutter);
  --padding-right: var(--stb-gutter);
  --min-height: 40px;
}
/* Desktop: Infozeile scrollt mit weg, die Header-Zeile bleibt oben kleben (kein Layoutsprung). */
@media (min-width: 1025px) {
  body.stb-2027 .elementor-location-header { top: -40px; }
  body.stb-2027.admin-bar .elementor-location-header { top: -8px; }
}
body.stb-2027 .stb-topbar .elementor-icon-list-items { display: flex; flex-wrap: nowrap; gap: 0 26px; }
body.stb-2027 .stb-topbar .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
body.stb-2027 .stb-topbar .elementor-icon-list-item::after { display: none !important; }
body.stb-2027 .stb-topbar .elementor-icon-list-text { color: #C9D7E8; font-size: 14px; padding-left: 8px; white-space: nowrap; }
body.stb-2027 .stb-topbar a .elementor-icon-list-text { color: var(--stb-white); font-weight: 600; }
body.stb-2027 .stb-topbar a:hover .elementor-icon-list-text { color: var(--stb-sea-light); }
body.stb-2027 .stb-topbar .elementor-icon-list-icon svg { width: 13px !important; height: 13px; fill: #9CC8EF; }
body.stb-2027 .stb-topbar .elementor-icon-list-icon i { font-size: 13px; color: #9CC8EF; }

body.stb-2027 .stb-header {
  background: rgba(255, 255, 255, .96);
  -webkit-backdrop-filter: saturate(160%) blur(10px);
  backdrop-filter: saturate(160%) blur(10px);
  border-bottom: 1px solid transparent;
  transition: box-shadow .3s var(--stb-ease), border-color .3s var(--stb-ease);
}
:where(body.stb-2027) .e-con.stb-header {
  --padding-top: 0px;
  --padding-bottom: 0px;
  --padding-left: var(--stb-gutter);
  --padding-right: var(--stb-gutter);
  --min-height: 84px;
}
body.stb-2027.stb-scrolled .stb-header { box-shadow: 0 6px 24px rgba(15, 35, 64, .08); border-bottom-color: var(--stb-line); }
body.stb-2027 .stb-logo { text-align: left; }
:where(body.stb-2027) .e-con.stb-header-right { --width: auto; --flex-grow: 1; --flex-wrap: nowrap; }
:where(body.stb-2027) .e-con.stb-header { --flex-wrap: nowrap; }
body.stb-2027 .stb-header > .e-con-inner > .stb-logo { flex: 0 0 auto; }
body.stb-2027 .stb-logo img { width: 190px; max-width: 46vw; height: auto; display: block; transition: width .3s var(--stb-ease); }
body.stb-2027.stb-scrolled .stb-logo img { width: 168px; }

/* Elementor-Pro-Menü */
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item {
  font-family: var(--stb-font-body);
  font-size: 15.5px;
  font-weight: 600;
  color: var(--stb-ink);
  padding: 10px 12px;
  border-radius: var(--stb-r-btn);
  transition: background-color .2s, color .2s;
}
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item:hover,
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item.highlighted,
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item:focus-visible { background: var(--stb-mist); color: var(--stb-navy); }
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li.current-menu-item:not(.menu-item-type-custom):not(.stb-menu-cta) > a.elementor-item,
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li.current-page-ancestor:not(.stb-menu-cta) > a.elementor-item,
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li.current-page-parent:not(.stb-menu-cta) > a.elementor-item { color: var(--stb-navy); box-shadow: inset 0 -2px 0 var(--stb-sea); border-radius: 0; }
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li.stb-menu-cta > a.elementor-item {
  background: var(--stb-cta);
  color: var(--stb-cta-ink);
  padding: 12px 22px;
  margin-left: 10px;
  border-radius: var(--stb-r-btn);
  box-shadow: none;
}
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li.stb-menu-cta > a.elementor-item:hover { background: var(--stb-cta-hover); color: var(--stb-cta-ink); }
body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li.stb-menu-desktop-hidden { display: none; }
body.stb-2027 .stb-nav .sub-arrow svg { width: .7em; height: .7em; fill: currentColor; opacity: .6; }
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-arrow { padding-left: 6px; }

body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu {
  min-width: 270px !important;
  padding: 8px;
  background: var(--stb-white);
  border-radius: var(--stb-r-m);
  border: 1px solid var(--stb-line);
  box-shadow: var(--stb-sh-2);
  margin-top: 6px !important;
}
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item {
  font-family: var(--stb-font-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--stb-text);
  padding: 10px 14px;
  border-radius: 10px;
  border: 0 !important;
  white-space: normal;
}
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover,
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item:focus-visible { background: var(--stb-mist); color: var(--stb-navy); }
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu .current-menu-item > a.elementor-sub-item:not(.elementor-item-anchor) { color: var(--stb-navy); font-weight: 700; background: none; }
/* Elementor markiert Sprunglinks beim Scrollen als „aktiv“ (dunkler Standard-Hintergrund) – neutralisieren */
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item.elementor-item-active,
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item.highlighted { background: none !important; color: var(--stb-text) !important; }
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu .current-menu-item > a.elementor-sub-item.elementor-item-active:not(.elementor-item-anchor) { color: var(--stb-navy) !important; }
body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item.elementor-item-active:hover { background: var(--stb-mist) !important; color: var(--stb-navy) !important; }
body.stb-2027 .stb-nav nav.elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active { color: var(--stb-text) !important; }

/* Mobile Navigation */
body.stb-2027 .stb-nav .elementor-menu-toggle {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: var(--stb-mist);
  color: var(--stb-ink);
  font-size: 22px;
}
body.stb-2027 .stb-nav .elementor-menu-toggle svg { fill: var(--stb-ink); width: 22px; height: 22px; }
body.stb-2027 .stb-nav .elementor-menu-toggle.elementor-active { background: var(--stb-navy); }
body.stb-2027 .stb-nav .elementor-menu-toggle.elementor-active svg { fill: var(--stb-white); }
body.stb-2027 .stb-nav nav.elementor-nav-menu--dropdown {
  background: var(--stb-white);
  border-top: 1px solid var(--stb-line);
  box-shadow: 0 24px 40px rgba(15, 35, 64, .16);
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  padding: 8px var(--stb-gutter) 18px;
}
body.stb-2027 .stb-nav nav.elementor-nav-menu--dropdown a.elementor-item,
body.stb-2027 .stb-nav nav.elementor-nav-menu--dropdown a.elementor-sub-item {
  font-family: var(--stb-font-body);
  font-size: 17px;
  font-weight: 600;
  color: var(--stb-ink);
  padding: 14px 6px;
  border-bottom: 1px solid var(--stb-mist) !important;
  background: none !important;
  justify-content: space-between;
}
body.stb-2027 .stb-nav nav.elementor-nav-menu--dropdown a.elementor-sub-item {
  font-weight: 500;
  font-size: 16px;
  padding-left: 18px;
  color: var(--stb-text);
}
body.stb-2027 .stb-nav nav.elementor-nav-menu--dropdown .sub-arrow {
  width: 40px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 10px; background: var(--stb-mist);
}
body.stb-2027 .stb-nav nav.elementor-nav-menu--dropdown li.stb-menu-cta > a.elementor-item {
  margin-top: 14px;
  justify-content: center;
  border-radius: var(--stb-r-btn);
  color: var(--stb-cta-ink) !important;
  background: var(--stb-cta) !important;
  border: 0 !important;
}

body.stb-2027 .stb-header-phone .elementor-button {
  width: 48px; height: 48px; min-height: 0; padding: 0;
  border-radius: 14px; background: var(--stb-mist); color: var(--stb-ink);
  display: inline-flex; align-items: center; justify-content: center;
}
body.stb-2027 .stb-header-phone .elementor-button-icon svg { width: 19px; height: 19px; fill: var(--stb-ink); }
body.stb-2027 .stb-header-phone .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ------------------------------------------------------------- Prefooter */

body.stb-2027 .stb-prefooter {
  position: relative;
  background-color: var(--stb-navy);
  background-image:
    linear-gradient(100deg, rgba(15, 35, 64, .97) 0%, rgba(20, 48, 93, .93) 48%, rgba(20, 48, 93, .72) 100%),
    var(--stb-prefooter-img, none);
  background-size: cover;
  background-position: center 62%;
  color: #DCE7F3;
}
body.stb-2027 .stb-prefooter h2.elementor-heading-title { color: var(--stb-white); font-size: clamp(30px, 3.6vw, 48px); }
body.stb-2027 .stb-prefooter .elementor-widget-text-editor { color: #DCE7F3; font-size: 18.5px; }
body.stb-2027 .stb-prefooter .stb-small,
body.stb-2027 .stb-prefooter .stb-small p { color: #AFC3DA; }
body.stb-2027.stb-no-prefooter .stb-prefooter { display: none; }

/* ------------------------------------------------------------------ Footer */

body.stb-2027 .stb-footer { background: var(--stb-ink); color: #B9C8DA; }
:where(body.stb-2027) .e-con.stb-footer {
  --padding-top: clamp(56px, 6vw, 80px);
  --padding-bottom: 28px;
  --padding-left: var(--stb-gutter);
  --padding-right: var(--stb-gutter);
}
body.stb-2027 .stb-footer .stb-logo img { width: 210px; }
body.stb-2027 .stb-footer h4.elementor-heading-title,
body.stb-2027 .stb-footer h3.elementor-heading-title {
  font-family: var(--stb-font-body) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #9CC8EF !important;
}
body.stb-2027 .stb-footer .elementor-widget-text-editor { color: #B9C8DA; font-size: 15.5px; }
body.stb-2027 .stb-footer .elementor-widget-text-editor strong { color: var(--stb-white); }
body.stb-2027 .stb-footer a { color: #E4ECF6; text-decoration: none; }
body.stb-2027 .stb-footer a:hover { color: var(--stb-white); text-decoration: underline; }
body.stb-2027 .stb-footer .elementor-icon-list-item { margin: 0 !important; }
body.stb-2027 .stb-footer .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child) { padding-bottom: 9px; }
body.stb-2027 .stb-footer .elementor-icon-list-text { color: #E4ECF6; font-size: 15.5px; line-height: 1.45; }
body.stb-2027 .stb-footer .elementor-icon-list-icon svg { fill: #9CC8EF; width: 14px !important; }
body.stb-2027 .stb-footer-links .elementor-icon-list-text { color: #C9D7E8; }
body.stb-2027 .stb-footer a:hover .elementor-icon-list-text { color: var(--stb-white); }
body.stb-2027 .stb-footer .stb-btn--light .elementor-button { min-height: 44px; padding: 10px 18px; font-size: 15px; }
body.stb-2027 .stb-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); }
:where(body.stb-2027) .e-con.stb-footer-bottom { --padding-top: 22px; }
body.stb-2027 .stb-footer-bottom .elementor-widget-text-editor,
body.stb-2027 .stb-footer-bottom .elementor-widget-text-editor p { font-size: 14px; color: #8EA3BC; margin: 0; }
body.stb-2027 .stb-footer-bottom a { color: #B9C8DA; }

/* -------------------------------------------------- Mobile Aktionsleiste */

.stb-actionbar { display: none; }
@media (max-width: 767px) {
  body.stb-2027 .stb-actionbar {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    z-index: 980;
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 8px;
    padding: 8px;
    border-radius: 20px;
    background: rgba(15, 35, 64, .94);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 14px 34px rgba(15, 35, 64, .3);
    transform: translateY(140%);
    transition: transform .35s var(--stb-ease);
  }
  body.stb-2027.stb-actionbar-on .stb-actionbar { transform: translateY(0); }
  body.stb-2027 .stb-actionbar a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    border-radius: 14px;
    font-family: var(--stb-font-body);
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
  }
  body.stb-2027 .stb-actionbar .stb-actionbar__call { background: rgba(255, 255, 255, .1); color: var(--stb-white); }
  body.stb-2027 .stb-actionbar .stb-actionbar__cta { background: var(--stb-white); color: var(--stb-navy); }
  body.stb-2027 .stb-actionbar svg { width: 18px; height: 18px; fill: currentColor; }
  body.stb-2027.stb-actionbar-on #BorlabsCookieBox ~ .stb-actionbar { z-index: 980; }
  /* reCAPTCHA-Logo nicht hinter der Aktionsleiste verstecken */
  body.stb-2027 .grecaptcha-badge { transition: bottom .25s ease; }
  body.stb-2027.stb-actionbar-on .grecaptcha-badge { bottom: 92px !important; }
  body.stb-2027 { padding-bottom: 0; }
  body.stb-2027 .stb-footer-bottom { padding-bottom: 84px; }
  body.stb-2027 .stb-footer-grid > .stb-fcol-wide { grid-column: 1 / -1; }
  body.stb-2027 .stb-footer .stb-footer-links .elementor-icon-list-text { font-size: 15px; }
}


/* ------------------------------------------- Leistungen in drei Gruppen-Karten */

:where(body.stb-2027) .e-con.stb-svcgroup { --padding-top: 30px; --padding-bottom: 12px; --padding-left: 30px; --padding-right: 30px; --row-gap: 0px; }
body.stb-2027 .stb-svcgroup { box-shadow: var(--stb-sh-1); border-color: transparent; }
:where(body.stb-2027) .e-con.stb-svcgroup__head { --padding-bottom: 20px; }
body.stb-2027 .stb-svcgroup__head .stb-icon { margin-bottom: 8px; }
body.stb-2027 .stb-svcgroup h3.elementor-heading-title { font-size: 21px; }
body.stb-2027 .stb-svcgroup__sub p { margin: 0; font-size: 15.5px; color: var(--stb-muted); }
body.stb-2027 .stb-svcrow { position: relative; border-top: 1px solid var(--stb-line); color: inherit; text-decoration: none; }
:where(body.stb-2027) .e-con.stb-svcrow { --padding-top: 18px; --padding-bottom: 18px; --row-gap: 4px; }
body.stb-2027 .stb-svcrow h4.elementor-heading-title {
  font-family: var(--stb-font-display);
  font-size: 17.5px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--stb-ink);
  hyphens: manual;
  overflow-wrap: break-word;
  transition: color .2s;
}
body.stb-2027 .stb-svcrow h4.elementor-heading-title::after {
  content: "→";
  display: inline-block;
  margin-left: .4em;
  color: var(--stb-link);
  transition: transform .2s var(--stb-ease);
}
body.stb-2027 .stb-svcrow .elementor-widget-text-editor { font-size: 15.5px; line-height: 1.5; color: var(--stb-muted); }
body.stb-2027 a.stb-svcrow:hover h4.elementor-heading-title,
body.stb-2027 a.stb-svcrow:focus-visible h4.elementor-heading-title { color: var(--stb-link); }
body.stb-2027 a.stb-svcrow:hover h4.elementor-heading-title::after { transform: translateX(4px); }

/* Gruppenüberschrift auf der Leistungsseite */
body.stb-2027 .stb-group-label p { margin: 0; display: flex; align-items: center; gap: 14px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--stb-blue); }
body.stb-2027 .stb-group-label p::after { content: ""; flex: 1; height: 1px; background: var(--stb-line); }

/* Checklisten sauber ausrichten */
body.stb-2027 .stb-checks .elementor-icon-list-item { align-items: flex-start !important; }
body.stb-2027 .stb-checks .elementor-icon-list-icon,
body.stb-2027 .stb-checks .elementor-icon-list-text { align-self: flex-start !important; }

/* Kachel als Fläche (Checkliste, Stellenanzeige) */
body.stb-2027 .stb-card--panel { box-shadow: none; }

/* Trustindex-Widget an das Designsystem angleichen */
body.stb-2027 .stb-reviews .ti-widget,
body.stb-2027 .stb-reviews .ti-widget * { font-family: var(--stb-font-body) !important; }
body.stb-2027 .stb-reviews .ti-widget .ti-inner { border-radius: var(--stb-r-m) !important; box-shadow: var(--stb-sh-1) !important; border: 0 !important; background: var(--stb-white) !important; }
body.stb-2027 .stb-reviews .ti-widget .ti-name { font-family: var(--stb-font-display) !important; font-weight: 700 !important; color: var(--stb-ink) !important; }
body.stb-2027 .stb-reviews .ti-widget .ti-review-content { color: var(--stb-text) !important; font-size: 15.5px !important; line-height: 1.55 !important; }

/* Kassenpflicht-Übersicht (MU-Plugin mit Inline-Stilen) */
body.stb-2027 .stb-kassenpflicht-hub {
  font-family: var(--stb-font-body) !important;
  max-width: calc(var(--stb-max) + 2 * var(--stb-gutter)) !important;
  padding: clamp(40px, 5vw, 64px) var(--stb-gutter) clamp(44px, 5vw, 72px) !important;
  background: var(--stb-mist-2);
  box-shadow: 0 0 0 100vmax var(--stb-mist-2);
  clip-path: inset(0 -100vmax);
  margin-bottom: clamp(44px, 5vw, 64px) !important;
}
body.stb-2027 .stb-kassenpflicht-hub p:first-child { font-size: 13px !important; letter-spacing: .14em !important; font-weight: 700 !important; color: var(--stb-blue) !important; }
body.stb-2027 .stb-kassenpflicht-hub h1 { font-family: var(--stb-font-display) !important; font-weight: 700 !important; font-size: clamp(34px, 4.4vw, 56px) !important; line-height: 1.16 !important; color: var(--stb-ink) !important; letter-spacing: -0.025em; }
body.stb-2027 .stb-kassenpflicht-hub p { font-size: 18px !important; color: var(--stb-text) !important; }
body.stb-2027 .stb-kassenpflicht-list { font-family: var(--stb-font-body) !important; max-width: calc(var(--stb-max) + 2 * var(--stb-gutter)) !important; padding: 0 var(--stb-gutter) clamp(64px, 7vw, 104px) !important; }
body.stb-2027 .stb-kassenpflicht-list > div { gap: 24px !important; }
body.stb-2027 .stb-kassenpflicht-list article { border: 1px solid var(--stb-line) !important; border-radius: var(--stb-r-m); background: var(--stb-white) !important; transition: transform .25s var(--stb-ease), box-shadow .25s var(--stb-ease); }
body.stb-2027 .stb-kassenpflicht-list article:hover { transform: translateY(-3px); box-shadow: var(--stb-sh-2); }
body.stb-2027 .stb-kassenpflicht-list article p:first-child { color: var(--stb-muted) !important; font-weight: 600 !important; }
body.stb-2027 .stb-kassenpflicht-list h2 { font-family: var(--stb-font-display) !important; font-size: 19px !important; font-weight: 700 !important; line-height: 1.3 !important; }
body.stb-2027 .stb-kassenpflicht-list h2 a { color: var(--stb-ink) !important; }
body.stb-2027 .stb-kassenpflicht-list p { color: var(--stb-muted) !important; }
body.stb-2027 .stb-kassenpflicht-list article p:last-child a { background: none !important; color: var(--stb-link) !important; padding: 0 !important; font-weight: 700 !important; }
body.stb-2027 .stb-kassenpflicht-list article p:last-child a::after { content: " →"; }



/* ======================================================= Überarbeitung 12.10. */

/* Breadcrumbs nur ab Ebene 3 (Klasse setzt das MU-Plugin) */
body.stb-2027.stb-crumbs-off .stb-breadcrumb { display: none !important; }

/* Hero-Bild Startseite: Gespräch mit Geschäftspartner */
body.stb-2027 .stb-hero__img--biz img { object-position: 62% 35%; }

/* SVG-Linien-Icons */
body.stb-2027 .stb-svgicon .elementor-icon-wrapper { line-height: 0; text-align: left; }
body.stb-2027 .stb-svgicon .elementor-icon { font-size: 30px; color: var(--stb-navy); line-height: 0; }
body.stb-2027 .stb-svgicon .elementor-icon svg { width: 1em; height: 1em; fill: none !important; stroke: currentColor; }
body.stb-2027 .stb-svgicon--round .elementor-icon {
  width: 44px; height: 44px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--stb-tint); font-size: 21px;
}

/* Vorteils-Leiste unter dem Hero */
body.stb-2027 .stb-proof {
  background: var(--stb-line);
  border: 1px solid var(--stb-line);
  border-radius: var(--stb-r-l);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 35, 64, .04), 0 18px 40px -22px rgba(15, 35, 64, .22);
}
:where(body.stb-2027) .e-con.stb-proof__item { --padding-top: 26px; --padding-bottom: 26px; --padding-left: 22px; --padding-right: 18px; --gap: 14px; --column-gap: 14px; }
body.stb-2027 .stb-proof__item { background: var(--stb-white); }
body.stb-2027 .stb-proof__item > .stb-svgicon { flex: 0 0 auto; width: auto; }
:where(body.stb-2027) .e-con.stb-proof__text { --width: auto; --flex-grow: 1; --flex-shrink: 1; }
body.stb-2027 .stb-proof h3.elementor-heading-title { font-size: 16.5px; line-height: 1.3; letter-spacing: -0.01em; white-space: nowrap; }
@media (max-width: 1180px) and (min-width: 1025px) { body.stb-2027 .stb-proof h3.elementor-heading-title { white-space: normal; } }
body.stb-2027 .stb-proof .elementor-widget-text-editor { font-size: 15px; line-height: 1.5; color: var(--stb-muted); }

/* Leistungs-Panel: sechs gleich große Felder, feine Linien */
body.stb-2027 .stb-panel {
  background: var(--stb-line);
  border: 1px solid var(--stb-line);
  border-radius: var(--stb-r-l);
  overflow: hidden;
}
body.stb-2027 .stb-cell {
  position: relative;
  background: var(--stb-white);
  color: inherit;
  text-decoration: none;
  transition: background-color .25s var(--stb-ease);
}
:where(body.stb-2027) .e-con.stb-cell { --padding-top: 34px; --padding-bottom: 34px; --padding-left: 32px; --padding-right: 56px; --justify-content: flex-start; }
body.stb-2027 .stb-cell .stb-svgicon { margin-bottom: 10px; }
body.stb-2027 .stb-cell h3.elementor-heading-title { font-size: 20px; line-height: 1.25; letter-spacing: -0.01em; transition: color .2s; }
body.stb-2027 .stb-cell .elementor-widget-text-editor { font-size: 15.5px; line-height: 1.55; color: var(--stb-muted); }
body.stb-2027 .stb-cell::after {
  content: "";
  position: absolute;
  top: 34px;
  right: 30px;
  width: 18px;
  height: 18px;
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314305D' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  opacity: .3;
  transition: opacity .25s var(--stb-ease), transform .25s var(--stb-ease);
}
body.stb-2027 a.stb-cell:hover,
body.stb-2027 a.stb-cell:focus-visible { background: #F8FAFD; }
body.stb-2027 a.stb-cell:hover::after,
body.stb-2027 a.stb-cell:focus-visible::after { opacity: 1; transform: translateX(4px); }
body.stb-2027 a.stb-cell:hover h3.elementor-heading-title { color: var(--stb-navy); }
body.stb-2027 .stb-cell--text h3.elementor-heading-title { font-size: 18px; }
:where(body.stb-2027) .e-con.stb-cell--text { --padding-top: 28px; --padding-bottom: 28px; }
body.stb-2027 .stb-cell--text::after { top: 30px; }

/* Kostenzeile unter dem Panel */
body.stb-2027 .stb-costbar { background: var(--stb-white); border: 1px solid var(--stb-line); border-radius: var(--stb-r-m); }
:where(body.stb-2027) .e-con.stb-costbar { --padding-top: 20px; --padding-bottom: 20px; --padding-left: 28px; --padding-right: 28px; }
body.stb-2027 .stb-costbar .elementor-widget-text-editor { font-size: 16px; color: var(--stb-muted); }
body.stb-2027 .stb-costbar .elementor-widget-text-editor strong { color: var(--stb-ink); margin-right: 6px; }
body.stb-2027 .stb-costbar .elementor-widget-button { flex: 0 0 auto; }

/* Leistungsseite: Detailzeilen */
body.stb-2027 .stb-details { border-bottom: 1px solid var(--stb-line); }
body.stb-2027 .stb-detail { border-top: 1px solid var(--stb-line); scroll-margin-top: 120px; }
:where(body.stb-2027) .e-con.stb-detail { --padding-top: 48px; --padding-bottom: 48px; }
body.stb-2027 .stb-detail h2.elementor-heading-title { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.2; hyphens: manual; overflow-wrap: break-word; }
body.stb-2027 .stb-detail > .e-con:first-child .elementor-widget-text-editor:not(.stb-rhythm) { color: var(--stb-muted); }
body.stb-2027 .stb-rhythm p { margin: 0; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--stb-blue); }
body.stb-2027 .stb-detail .stb-checks .elementor-icon-list-text { font-size: 16.5px; }

@media (max-width: 1024px) {
  :where(body.stb-2027) .e-con.stb-proof__item { --padding-top: 22px; --padding-bottom: 22px; --padding-left: 22px; --padding-right: 20px; }
}
@media (max-width: 767px) {
  :where(body.stb-2027) .e-con.stb-cell { --padding-top: 26px; --padding-bottom: 26px; --padding-left: 24px; --padding-right: 52px; }
  body.stb-2027 .stb-cell::after { top: 28px; right: 22px; }
  :where(body.stb-2027) .e-con.stb-detail { --padding-top: 34px; --padding-bottom: 34px; }
  :where(body.stb-2027) .e-con.stb-costbar { --padding-left: 20px; --padding-right: 20px; }
}

/* ------------------------------------------------------------ Responsiv */

/* Laptop: Menü kompakter, damit es einzeilig bleibt */
@media (min-width: 1025px) and (max-width: 1259px) {
  body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item { font-size: 14px; padding: 10px 7px; }
  body.stb-2027 .stb-nav .elementor-nav-menu--main .sub-arrow { padding-left: 3px; }
  body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li.stb-menu-cta > a.elementor-item { padding: 10px 16px; margin-left: 6px; }
  body.stb-2027 .stb-logo img,
  body.stb-2027.stb-scrolled .stb-logo img { width: 150px; }
  :where(body.stb-2027) .e-con.stb-header-right { --gap: 0px; --column-gap: 0px; }
}
@media (min-width: 1025px) and (max-width: 1100px) {
  body.stb-2027 .stb-nav .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item { font-size: 13.5px; padding: 10px 5px; }
  :where(body.stb-2027) .e-con.stb-header { --padding-left: 20px; --padding-right: 20px; }
}

@media (max-width: 1024px) {
  body.stb-2027 .stb-namecard { left: 16px; bottom: 16px; }
  body.stb-2027 .stb-hero__img img { aspect-ratio: 16 / 11; }
}

@media (max-width: 767px) {
  body.stb-2027 { font-size: 16.5px; }
  body.stb-2027 .elementor-widget-text-editor { font-size: 16.5px; }
  body.stb-2027 .stb-btn:not(.stb-header-phone) .elementor-button { width: 100%; }
  body.stb-2027 .stb-btn--text .elementor-button { width: auto; }
  body.stb-2027 .stb-actions > .elementor-widget-button { width: 100%; }
  body.stb-2027 .stb-actions > .elementor-widget-button.stb-btn--text { width: auto; }
  body.stb-2027 .stb-namecard { position: relative; left: auto; bottom: auto; margin: -36px 16px 0; max-width: none; }
  body.stb-2027 .stb-hero__img img { aspect-ratio: 4 / 3; }
  body.stb-2027 .stb-trust .elementor-icon-list-items { gap: 12px 20px; }
  body.stb-2027 .stb-trust .elementor-icon-list-text { font-size: 15px; }
  :where(body.stb-2027) .e-con.stb-card { --padding-left: 22px; --padding-right: 22px; --padding-top: 24px; --padding-bottom: 24px; }
  body.stb-2027 .stb-faq .e-n-accordion-item-title { padding: 16px 16px; }
  body.stb-2027 .stb-faq .e-n-accordion-item > .e-con,
  body.stb-2027 .stb-faq .e-n-accordion-item > [role="region"] { --padding-left: 16px; --padding-right: 16px; }
  :where(body.stb-2027) .e-con.stb-header { --min-height: 70px; }
  body.stb-2027 .stb-logo img { width: 150px; }
  body.stb-2027.stb-scrolled .stb-logo img { width: 140px; }
  body.stb-2027 .stb-pagehero .stb-photo img { aspect-ratio: 16 / 10; }
  :where(body.stb-2027) .e-con.stb-step { --padding-left: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  body.stb-2027 *,
  body.stb-2027 *::before,
  body.stb-2027 *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  body.stb-2027.stb-js mark.stb-mark.stb-mark--draw { background-size: 100% .42em; }
}

@media print {
  .stb-actionbar, .stb-topbar, .elementor-location-header, .stb-prefooter { display: none !important; }
}

/* Startseite: Namenskarte unter Christoph (rechts im Gesprächsfoto) */
body.stb-2027 .stb-hero__media:has(.stb-hero__img--biz) .stb-namecard { left: auto; right: clamp(-28px, -2vw, -12px); }
@media (max-width: 1024px) {
  body.stb-2027 .stb-hero__media:has(.stb-hero__img--biz) .stb-namecard { left: auto; right: 16px; }
}
@media (max-width: 767px) {
  body.stb-2027 .stb-hero__media:has(.stb-hero__img--biz) .stb-namecard { right: auto; margin-left: auto; max-width: 300px; }
}

/* Fachbeiträge: Tabellen mit Rahmen und Rechenzeilen (z. B. Kleinunternehmerregelung) */
body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table {
  margin: 1.2em 0 1.6em; overflow-x: auto; border: 1px solid var(--stb-line); border-radius: var(--stb-r-m);
}
body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table table { display: table; width: 100%; margin: 0; border-collapse: collapse; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table :is(th, td) { border: 0; border-bottom: 1px solid var(--stb-line); padding: 12px 16px; line-height: 1.5; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table tbody tr:last-child td { border-bottom: 0; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table th { font-weight: 700; }
body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table td:first-child { width: 46%; font-weight: 600; color: var(--stb-ink); }
body.stb-2027 .stb-article .elementor-widget-theme-post-content p.stb-calc {
  background: var(--stb-mist); border-radius: var(--stb-r-s); padding: 12px 16px;
  font-weight: 600; color: var(--stb-ink); font-variant-numeric: tabular-nums;
}
@media (max-width: 767px) {
  body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table :is(th, td) { padding: 10px 12px; font-size: 15px; }
  body.stb-2027 .stb-article .elementor-widget-theme-post-content figure.stb-table td:first-child { width: 42%; }
}

/* Startseite: Duisburg-Foto (Innenhafen) mit Bildnachweis und Namenskarte mit Porträt */
body.stb-2027 .stb-hero__img--city img { object-position: 50% 50%; }
body.stb-2027 .stb-namecard--avatar { padding: 12px 18px 12px 12px; }
body.stb-2027 .stb-namecard__avatar { flex: 0 0 auto; width: 52px !important; }
body.stb-2027 .stb-namecard__avatar img { width: 52px !important; height: 52px !important; aspect-ratio: 1; object-fit: cover; object-position: 50% 20%; border-radius: 50% !important; box-shadow: none !important; }
body.stb-2027 .stb-photo-credit {
  position: absolute; top: 12px; right: 12px; z-index: 2; width: auto !important; max-width: calc(100% - 24px);
}
body.stb-2027 .stb-photo-credit p {
  margin: 0; padding: 3px 8px; border-radius: 6px; background: rgba(15, 35, 64, .55);
  color: rgba(255, 255, 255, .9); font-size: 11px; line-height: 1.4;
}
body.stb-2027 .stb-photo-credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
body.stb-2027 .stb-namecard--avatar { max-width: 360px; }
@media (max-width: 767px) {
  body.stb-2027 .stb-hero__media:has(.stb-photo-credit) { display: flex; flex-direction: column; }
  body.stb-2027 .stb-photo-credit { position: static; order: 3; align-self: flex-end; margin: 10px 16px 0; max-width: none; }
  body.stb-2027 .stb-photo-credit p { background: none; padding: 0; color: var(--stb-muted); font-size: 11px; text-align: right; }
  body.stb-2027 .stb-namecard--avatar { max-width: none; }
}
body.stb-2027 .e-con.stb-namecard--avatar { --flex-direction: row; flex-direction: row !important; flex-wrap: nowrap; }
@media (max-width: 767px) {
  body.stb-2027 .stb-photo-credit { width: calc(100% - 32px) !important; align-self: auto; }
}
@media (max-width: 767px) {
  body.stb-2027 .stb-photo-credit p { white-space: nowrap; font-size: 10.5px; }
}
@media (max-width: 340px) {
  body.stb-2027 .stb-photo-credit p { white-space: normal; }
}

/* Namenskarte: größeres rundes Porträt (helles Einzelfoto) */
body.stb-2027 .stb-namecard__avatar { width: 76px !important; }
body.stb-2027 .stb-namecard__avatar img { width: 76px !important; height: 76px !important; object-position: 50% 30%; }
body.stb-2027 .stb-namecard--avatar { padding: 12px 22px 12px 12px; gap: 16px; }
@media (max-width: 767px) {
  body.stb-2027 .stb-namecard__avatar { width: 64px !important; }
  body.stb-2027 .stb-namecard__avatar img { width: 64px !important; height: 64px !important; }
}
