/* Conversion layer (release9): hero, quote wizard, trust strip, CTA band, sticky mobile bar. */
:root {
  --vbr-blue: #216eb6;
  --vbr-blue-dark: #185592;
  --vbr-navy: #0f2d4d;
  --vbr-ink: #172b4d;
  --vbr-muted: #4a5a6a;
  --vbr-line: #dfe6ee;
  --vbr-soft: #f3f7fb;
  --vbr-ok: #1f8a4c;
  --vbr-radius: 14px;
  --vbr-font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Header: filled primary CTA + visible phone number. */
.navbar-desktop .navbar-action.vbr-cta-primary {
  background: var(--vbr-blue) !important; color: #fff !important; border-color: var(--vbr-blue) !important;
  font-weight: 600; white-space: nowrap;
}
.navbar-desktop .navbar-action.vbr-cta-primary:hover { background: var(--vbr-blue-dark) !important; }
.navbar-desktop .vbr-action-wrap { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 24px; }
.navbar-desktop .vbr-action-wrap .navbar-action { position: static !important; font-size: 18px !important; padding: 14px 22px !important; border-radius: 10px !important; }
.vbr-header-phone { display: inline-flex; align-items: center; gap: 8px; font: 700 17px/1 var(--vbr-font); color: var(--vbr-ink) !important; text-decoration: none !important; white-space: nowrap; }
.vbr-header-phone svg { width: 18px; height: 18px; color: var(--vbr-blue); }
.vbr-header-phone:hover { color: var(--vbr-blue) !important; }
@media (max-width: 1100px) { .vbr-header-phone { display: none; } }

/* Shared buttons. */
.vbr-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  min-height: 48px; padding: 0 22px; border-radius: 10px; border: 2px solid transparent;
  font: 600 16px/1.2 var(--vbr-font); text-decoration: none !important; cursor: pointer;
  transition: background .15s, color .15s, border-color .15s, transform .15s;
}
.vbr-btn:focus-visible, .vbr-quote :focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }
.vbr-btn--primary { background: var(--vbr-blue); color: #fff !important; }
.vbr-btn--primary:hover { background: var(--vbr-blue-dark); }
.vbr-btn--ghost { background: #fff; color: var(--vbr-blue) !important; border-color: var(--vbr-blue); }
.vbr-btn--ghost:hover { background: var(--vbr-soft); }
.vbr-btn--glass { background: rgba(255,255,255,.12); color: #fff !important; border-color: rgba(255,255,255,.55); }
.vbr-btn--glass:hover { background: rgba(255,255,255,.22); }
.vbr-btn svg { width: 18px; height: 18px; flex: none; }

/* Home hero. */
.vbr-hero {
  position: relative; isolation: isolate; overflow: hidden; color: #fff; font-family: var(--vbr-font);
  padding: 150px 24px 64px; background: var(--vbr-navy);
}
.vbr-hero__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.vbr-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(100deg, rgba(10,31,56,.94) 0%, rgba(15,45,77,.86) 45%, rgba(24,58,110,.55) 100%);
}
.vbr-hero__inner {
  max-width: 1200px; margin: 0 auto; display: grid; gap: 48px;
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, 440px); align-items: center;
}
.vbr-eyebrow { margin: 0 0 14px; font: 700 13px/1.4 var(--vbr-font); letter-spacing: .14em; text-transform: uppercase; color: #9cc8f2; }
.vbr-hero h1 {
  margin: 0 0 18px; font: 800 clamp(32px, 4.4vw, 54px)/1.08 var(--vbr-font); letter-spacing: -.015em;
  color: #fff !important; text-transform: none !important;
}
.vbr-hero__lead { margin: 0 0 22px; max-width: 40em; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,.88); }
.vbr-checks { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 10px; }
.vbr-checks li { position: relative; padding-left: 32px; font-size: 16px; line-height: 1.5; color: #fff; }
.vbr-checks li::before {
  content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%;
  background: var(--vbr-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/14px no-repeat;
}
.vbr-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 26px; }
.vbr-hero__proof { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 14px; color: rgba(255,255,255,.8); }
.vbr-hero__proof img { height: 58px; width: auto; border-radius: 6px; background: #fff; }

/* Quote wizard card. */
.vbr-quote {
  position: relative; background: #fff; color: var(--vbr-ink); border-radius: var(--vbr-radius);
  box-shadow: 0 24px 60px rgba(4,20,40,.35); padding: 26px 26px 20px; font-family: var(--vbr-font); text-align: left;
}
.vbr-quote__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.vbr-quote__title { margin: 0 !important; font: 800 22px/1.2 var(--vbr-font) !important; color: var(--vbr-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
.vbr-quote__step { font-size: 13px; color: var(--vbr-muted); white-space: nowrap; }
.vbr-quote__bar { height: 4px; border-radius: 4px; background: var(--vbr-line); margin-bottom: 18px; overflow: hidden; }
.vbr-quote__bar i { display: block; height: 100%; width: 33.34%; background: var(--vbr-blue); transition: width .25s; }
.vbr-quote fieldset { border: 0; margin: 0 0 14px; padding: 0; min-width: 0; }
.vbr-quote legend { padding: 0; margin: 0 0 12px; font: 600 15px/1.4 var(--vbr-font); color: var(--vbr-ink); }
.vbr-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vbr-tile { position: relative; display: block; margin: 0; cursor: pointer; }
.vbr-tile input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.vbr-tile span {
  display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 10px 12px; border: 1.5px solid var(--vbr-line);
  border-radius: 10px; font: 600 14px/1.25 var(--vbr-font); color: var(--vbr-ink); transition: border-color .15s, background .15s;
}
.vbr-tile svg { width: 22px; height: 22px; flex: none; color: var(--vbr-blue); }
.vbr-tile:hover span { border-color: #9cc3ea; }
.vbr-tile input:checked + span { border-color: var(--vbr-blue); background: var(--vbr-soft); box-shadow: inset 0 0 0 1px var(--vbr-blue); }
.vbr-tile input:focus-visible + span { outline: 3px solid #ffbf47; outline-offset: 2px; }
.vbr-field { display: block; margin: 0 0 12px; }
.vbr-field > span { display: block; margin-bottom: 5px; font: 600 13px/1.3 var(--vbr-font); color: var(--vbr-muted); }
.vbr-field input, .vbr-field select {
  width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px 12px; border: 1.5px solid var(--vbr-line); border-radius: 10px;
  font: 16px/1.3 var(--vbr-font); color: var(--vbr-ink); background: #fff;
}
.vbr-field input:focus, .vbr-field select:focus { border-color: var(--vbr-blue); outline: none; box-shadow: 0 0 0 3px rgba(33,110,182,.18); }
.vbr-field input[aria-invalid="true"] { border-color: #c0392b; }
.vbr-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vbr-unit { position: relative; }
.vbr-unit input { padding-right: 42px; }
.vbr-unit::after { content: "m²"; position: absolute; right: 12px; bottom: 13px; color: var(--vbr-muted); font-size: 15px; pointer-events: none; }
.vbr-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.45; color: var(--vbr-muted); margin: 4px 0 10px; }
.vbr-consent input { width: 18px; height: 18px; margin: 1px 0 0; flex: none; accent-color: var(--vbr-blue); }
.vbr-consent a { color: var(--vbr-blue) !important; }
.vbr-quote__nav { display: flex; gap: 10px; }
.vbr-quote__nav .vbr-btn { flex: 1; }
.vbr-quote__nav .vbr-back { flex: 0 0 auto; padding: 0 16px; }
.vbr-quote__error { min-height: 1.2em; margin: 0 0 8px; font-size: 13px; color: #c0392b; }
.vbr-quote__note { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--vbr-muted); }
.vbr-quote__note svg { width: 15px; height: 15px; flex: none; margin-top: 1px; color: var(--vbr-ok); }
.vbr-quote__done { text-align: center; padding: 10px 0; }
.vbr-quote__done .vbr-quote__done-title { margin: 8px 0; font: 800 20px/1.3 var(--vbr-font); color: var(--vbr-ink); text-transform: none; }
.vbr-quote__done p { color: var(--vbr-muted); font-size: 15px; line-height: 1.5; }
/* Progressive enhancement: without JS every step is visible and the form posts via mailto. */
.vbr-quote.is-js [data-step][hidden], .vbr-quote [hidden] { display: none !important; }
.js .vbr-quote:not(.is-js) fieldset[data-step]:not([data-step="1"]), .js .vbr-quote:not(.is-js) .vbr-submit { display: none; }
.vbr-quote:not(.is-js) .vbr-quote__nav .vbr-next, .vbr-quote:not(.is-js) .vbr-back, .vbr-quote:not(.is-js) .vbr-quote__bar, .vbr-quote:not(.is-js) .vbr-quote__step { display: none; }

/* Trust strip under the home hero. */
.vbr-trust { background: #fff; border-bottom: 1px solid var(--vbr-line); font-family: var(--vbr-font); }
.vbr-trust ul { max-width: 1200px; margin: 0 auto; padding: 22px 24px; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.vbr-trust li { display: flex; align-items: center; gap: 12px; color: var(--vbr-ink); font-size: 14px; line-height: 1.35; }
.vbr-trust strong { display: block; font-size: 22px; line-height: 1.1; color: var(--vbr-blue); }
.vbr-trust svg { width: 30px; height: 30px; flex: none; color: var(--vbr-blue); }

/* Hero CTA on inner pages (inserted after the page H1). */
.vbr-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: inherit; margin: 18px 0 6px; font-family: var(--vbr-font); }
.elementor-widget-heading .vbr-hero-cta { justify-content: center; }

/* Quote band before the footer on every page except home. */
.vbr-band { background: linear-gradient(135deg, #0f2d4d, #174a80); color: #fff; font-family: var(--vbr-font); padding: 64px 24px; scroll-margin-top: 90px; }
.vbr-band__inner { max-width: 1200px; margin: 0 auto; display: grid; gap: 44px; grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); align-items: center; }
.vbr-band__inner > div > h2 { margin: 0 0 14px; font: 800 clamp(28px, 3.2vw, 40px)/1.15 var(--vbr-font); color: #fff !important; text-transform: none !important; }
.vbr-band__inner > div > p { font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.88); margin: 0 0 20px; }
.vbr-steps { list-style: none; counter-reset: s; margin: 0 0 26px; padding: 0; display: grid; gap: 12px; }
.vbr-steps li { counter-increment: s; position: relative; padding-left: 44px; min-height: 30px; line-height: 1.45; display: flex; align-items: center; }
.vbr-steps li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.14); display: grid; place-items: center; font-weight: 700; }
.vbr-contact-alt { display: flex; flex-wrap: wrap; gap: 12px; }
#angebot { scroll-margin-top: 90px; }

/* Sticky mobile action bar (replaces the rotated "Rückrufservice" flag). */
section.flags, .mobile-flag-container { display: none !important; }
.vbr-mbar { display: none; }
@media (max-width: 900px) {
  .vbr-mbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; display: grid; grid-template-columns: 1fr 1fr 1.7fr; gap: 8px;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--vbr-line);
    box-shadow: 0 -6px 20px rgba(15,45,77,.12); font-family: var(--vbr-font);
  }
  .vbr-mbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 50px; border-radius: 10px; font: 600 12.5px/1.1 var(--vbr-font); text-decoration: none !important; color: var(--vbr-ink) !important; background: var(--vbr-soft); }
  .vbr-mbar a svg { width: 20px; height: 20px; color: var(--vbr-blue); }
  .vbr-mbar a.is-primary { background: var(--vbr-blue); color: #fff !important; flex-direction: row; font-size: 14.5px; gap: 6px; white-space: nowrap; }
  .vbr-mbar a.is-primary svg { color: #fff; }
  body { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
  .vbr-hero { padding: 110px 18px 40px; }
  .vbr-hero__inner, .vbr-band__inner { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .vbr-hero__inner > div:first-child { display: flex; flex-direction: column; }
  .vbr-hero__actions { order: 3; margin-bottom: 20px; }
  .vbr-hero__actions .vbr-btn { flex: 1 1 100%; }
  .vbr-hero__lead { order: 4; font-size: 16px; }
  .vbr-checks { order: 5; margin-bottom: 20px; }
  .vbr-hero__proof { order: 6; }
  .vbr-hero h1 { order: 2; }
  .vbr-eyebrow { order: 1; }
  .vbr-trust ul { grid-template-columns: 1fr 1fr; padding: 18px; }
  .vbr-band { padding: 48px 18px; }
  .vbr-quote { padding: 20px 16px 16px; }
}
@media (max-width: 480px) {
  .vbr-tile span { flex-direction: column; align-items: flex-start; gap: 6px; font-size: 13.5px; padding: 10px; }
  .vbr-row { grid-template-columns: 1fr; gap: 0; }
}

/* Captured release-fix CSS breaks words anywhere on mobile; not wanted inside the conversion layer. */
.vbr-hero *, .vbr-trust *, .vbr-band *, .vbr-quote *, .vbr-mbar * { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual; }
.vbr-hero__lead, .vbr-band__inner > div > p { hyphens: auto; }
.navbar-desktop .vbr-action-wrap .navbar-action { font-family: var(--vbr-font) !important; font-weight: 600 !important; }
.vbr-trust { position: relative; z-index: 1; }
.vbr-trust + section { margin-top: 0 !important; padding-top: 40px; }

/* One accent colour: the legacy base theme is red (#cc1414), the live site partly overrides it with blue. */
:root { --bs-primary: #216eb6; --bs-primary-rgb: 33, 110, 182; }
a { color: var(--vbr-blue); }
.slider-container .infobox-slide .btn, .slider-container .infobox-slide:hover .infobox-slide-content,
.slider-container .swiper-button-next:hover, .slider-container .swiper-button-prev:hover { background-color: var(--vbr-blue) !important; }
#header .header-wrapper .navbar-desktop .navbar-menu-toggler-action { background-color: var(--vbr-blue); }
footer a[href*="kessler"] { color: inherit !important; }
.vbr-staging-page h3 { overflow-wrap: normal !important; word-break: normal !important; hyphens: auto; }
.vbr-staging-page [style*="grid-template-columns"] h3 { font-size: clamp(20px, 1.7vw, 26px) !important; }

form a { text-decoration: underline; }

/* Menu overlay was 83% translucent: page text bled through the links. */
#header .desktop-menu { background-color: var(--vbr-navy) !important; height: 100dvh; min-height: 100dvh; }
body:has(.desktop-menu.open) .vbr-header-phone, body:has(.desktop-menu.open) .vbr-header-phone svg { color: #fff !important; }

/* Release7 visual defects. */
.elementor-counter .elementor-counter-number-wrapper { color: var(--vbr-blue) !important; -webkit-text-fill-color: var(--vbr-blue); }
footer .elementor-button { background: #fff !important; color: var(--vbr-blue) !important; border-radius: 10px; font-weight: 600; }
footer .elementor-button[href*="whatsapp"] { background: transparent !important; color: #fff !important; box-shadow: inset 0 0 0 2px #fff; }
.content .vbr-quote { margin-top: 8px; box-shadow: 0 10px 30px rgba(15,45,77,.12); }
.elementor-button-link .elementor-button-text { color: inherit; }
.elementor-element .elementor-button.elementor-button-link[href="/kontakt/"] { background: var(--vbr-blue); color: #fff; }


/* Footer (Elementor 65): keep 4 columns down to tablet, left-align lists, shrink the mascot. */
@media (min-width: 768px) {
  .elementor-65 .elementor-element-546cefe > .elementor-container { flex-wrap: nowrap; }
  .elementor-65 .elementor-element-546cefe > .elementor-container > .elementor-column { width: auto !important; flex: 1 1 0; min-width: 0; }
  .elementor-65 .elementor-element-546cefe .elementor-icon-list-text { overflow-wrap: anywhere; }
  .elementor-65 .elementor-element-546cefe > .elementor-container > .elementor-column:last-child { flex: 0 0 120px; }
}
.elementor-65 :is(.elementor-element-546cefe, .elementor-element-feee4f2) .elementor-nav-menu a { text-align: left !important; padding-left: 0 !important; padding-right: 0 !important; }
.elementor-65 .elementor-element-aa017e4 img { max-width: min(120px, 100%) !important; height: auto; }
@media (max-width: 767px) {
  .elementor-65 :is(.elementor-element-546cefe, .elementor-element-feee4f2) .elementor-nav-menu :is(a, button) { text-align: center !important; }
  .elementor-65 .elementor-element-164dd00 .vbr-linkbtn { width: 100%; margin: 0; }
  .elementor-65 .elementor-element-aa017e4 img { max-width: 96px; }
}

/* Font Awesome Pro (fal + Pro-only glyphs) → Free 5 solid equivalents. */
.fal { font-family: "Font Awesome 5 Free"; font-weight: 900; }
.fa-phone-plus:before { content: "\f095"; }
.fa-rocket-launch:before { content: "\f135"; }

/* Inner-page photo heroes: navy overlay + white type instead of black text on a washed-out photo. */
.vbr-subhero > .elementor-background-overlay { background: linear-gradient(120deg, rgba(15,45,77,.9), rgba(23,74,128,.72)) !important; opacity: 1 !important; }
.vbr-subhero .elementor-heading-title, .vbr-subhero .elementor-widget-text-editor, .vbr-subhero p { color: #fff !important; }
.vbr-subhero .elementor-widget-heading:not(:has(h1)) .elementor-heading-title { color: #9cc7f0 !important; letter-spacing: .08em; }

/* Karriere: the desktop 100px right margin on the job column squeezed it to 60% width on phones. */
@media (max-width: 767px) {
  .elementor-18 .elementor-element-39b4e67 > .elementor-widget-wrap { margin-right: 0 !important; }
}
.elementor-18 .elementor-element-39b4e67 .elementor-heading-title { overflow-wrap: normal !important; word-break: normal !important; hyphens: manual; }

/* Beratung band (footer): compact, so it doesn't stack a second full-height CTA under the quote band. */
.elementor-65 .elementor-element-b1dc274 { padding-top: 28px !important; padding-bottom: 28px !important; }
.elementor-65 .elementor-element-b1dc274 h2.elementor-heading-title { font-size: clamp(20px, 2.2vw, 26px) !important; line-height: 1.3 !important; }
.elementor-65 .elementor-element-b1dc274 .elementor-widget-text-editor { font-size: 16px; margin-bottom: 10px !important; }
.elementor-65 .elementor-element-72d8b9d img { max-width: 96px !important; height: auto !important; aspect-ratio: 1; object-fit: cover; }
@media (max-width: 767px) {
  .elementor-65 .elementor-element-b1dc274 .elementor-widget-wrap { gap: 0 10px; }
  .elementor-65 .elementor-element-b1dc274 .elementor-widget-wrap > * { margin-bottom: 8px !important; }
  .elementor-65 .elementor-element-72d8b9d img { max-width: 72px !important; }
  .elementor-65 :is(.elementor-element-29cb6d36, .elementor-element-2eef6dc) .elementor-button { padding-top: 10px !important; padding-bottom: 10px !important; }
  .elementor-65 :is(.elementor-element-29cb6d36, .elementor-element-2eef6dc) .elementor-button-content-wrapper { justify-content: center; width: 100%; }
  .elementor-65 :is(.elementor-element-29cb6d36, .elementor-element-2eef6dc) .elementor-button-text { flex-grow: 0; }
}

/* "So finden Sie uns": Google profile, route and a click-to-load map. */
.vbr-find { background: var(--vbr-soft, #f3f7fb); font-family: var(--vbr-font); padding: 56px 24px; }
.vbr-find__inner { max-width: 1200px; margin: 0 auto; display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); align-items: center; }
.vbr-find h2 { margin: 0 0 12px; font: 800 clamp(26px, 3vw, 36px)/1.15 var(--vbr-font); color: var(--vbr-navy, #0f2d4d) !important; text-transform: none !important; }
.vbr-find__addr { margin: 0 0 20px; font-size: 17px; line-height: 1.6; color: #33475b; }
.vbr-find__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.vbr-map { min-height: 300px; border-radius: 14px; overflow: hidden; background: #dfe8f1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; color: #33475b; font-size: 14px; line-height: 1.5; }
.vbr-map p { margin: 0; max-width: 34ch; }
.vbr-map.is-loaded { padding: 0; }
.vbr-map iframe { width: 100%; height: 340px; border: 0; display: block; }
@media (max-width: 900px) { .vbr-find__inner { grid-template-columns: minmax(0, 1fr); gap: 24px; } .vbr-find { padding: 44px 18px; } }
.vbr-hero__proof a { display: inline-flex; border-radius: 8px; }
.vbr-hero__proof a:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }

/* Quote form honeypot: off-screen for humans, still in the DOM for bots. */
.vbr-quote .vbr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
/* Footer "Cookie-Einstellungen" is a <button> (Complianz hook) that must look like the neighbouring links. */
.vbr-linkbtn { background: none !important; border: 0 !important; padding: 0; margin: 0 10px; font: inherit; line-height: 20px; color: inherit; cursor: pointer; text-align: inherit; }
.vbr-linkbtn:hover { text-decoration: underline; }

/* ---- Release12 ---- */
/* One typeface: the captured CSS asks for Jost/DM Sans/Roboto (Slab), none of which load any more, so browsers fell back to
   Arial/Times next to our system-font sections. Icon fonts are left alone. */
:root { --e-global-typography-primary-font-family: var(--vbr-font); --e-global-typography-secondary-font-family: var(--vbr-font);
  --e-global-typography-text-font-family: var(--vbr-font); --e-global-typography-accent-font-family: var(--vbr-font); --bs-body-font-family: var(--vbr-font); --bs-font-sans-serif: var(--vbr-font); }
body, body :where(h1, h2, h3, h4, h5, h6, p, a, li, dt, dd, span, strong, em, label, button, input, select, textarea, summary, td, th, div):not([class*="fa-"]):not([class*="eicon"]):not(.fa):not(.fas):not(.far):not(.fab):not(.fal) { font-family: var(--vbr-font) !important; }

/* Pages outside the build (Impressum, Datenschutz, Cookie-Richtlinie) rendered in the shell. */
.vbr-doc { max-width: 860px; margin: 0 auto; padding: 120px 20px 64px; color: #1f2d3d; font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.vbr-doc h1 { font: 800 clamp(28px, 4vw, 40px)/1.15 var(--vbr-font); color: var(--vbr-navy); margin: 0 0 24px; text-transform: none; }
.vbr-doc h2 { font-size: 22px; line-height: 1.3; margin: 36px 0 10px; color: var(--vbr-navy); }
.vbr-doc h3, .vbr-doc h4, .vbr-doc h5 { font-size: 18px; line-height: 1.35; margin: 26px 0 8px; color: var(--vbr-navy); }
.vbr-doc p, .vbr-doc li { font-size: 16px; }
.vbr-doc a { color: var(--vbr-blue); text-decoration: underline; }
.vbr-doc table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.vbr-doc img, .vbr-doc iframe, .vbr-doc video { max-width: 100%; height: auto; }
.vbr-doc .elementor-section, .vbr-doc .elementor-container, .vbr-doc .elementor-column, .vbr-doc .elementor-widget-wrap { width: 100% !important; max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 767px) { .vbr-doc { padding-top: 96px; } }
.vbr-doc > .elementor, .vbr-doc .elementor-section:first-child, .vbr-doc .elementor-section:first-child > .elementor-container { margin-top: 0 !important; padding-top: 0 !important; }
.vbr-doc .elementor-widget-wrap { padding-top: 0 !important; }

/* Extra copy on Kontakt / Karriere / Branchen. */
.vbr-more { max-width: 1200px; margin: 0 auto; padding: 56px 24px; font-family: var(--vbr-font); color: #1f2d3d; }
.vbr-more h2 { font: 800 clamp(24px, 2.6vw, 32px)/1.2 var(--vbr-font); color: var(--vbr-navy) !important; margin: 0 0 16px; text-transform: none !important; }
.vbr-more h2:not(:first-child) { margin-top: 40px; }
.vbr-more p { font-size: 17px; line-height: 1.6; max-width: 70ch; }
.vbr-more a { color: var(--vbr-blue); text-decoration: underline; }
.vbr-more__grid { display: grid; gap: 40px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.vbr-hours { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 0 0 14px; font-size: 17px; }
.vbr-hours dt { font-weight: 700; }
.vbr-hours dd { margin: 0; }
.vbr-linklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.vbr-linklist a { display: inline-block; padding: 6px 0; font-size: 17px; }
.vbr-more details { border-bottom: 1px solid #dce6ef; padding: 14px 0; max-width: 820px; }
.vbr-more summary { font-weight: 700; font-size: 17px; cursor: pointer; }
.vbr-more details p { margin: 10px 0 0; }
.vbr-checks--dark li { color: #1f2d3d !important; }
.vbr-steps { padding-left: 22px; font-size: 17px; line-height: 1.6; }
.vbr-steps li { display: list-item !important; margin-bottom: 6px; }

/* Job application form messages. */
.vbr-apply .vbr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.vbr-apply__msg { flex-basis: 100%; margin: 12px 0 0; font-weight: 600; color: #a61b1b; }
.vbr-apply__msg:empty { display: none; }
.vbr-apply__done { padding: 8px 0; outline: none; }
.vbr-apply__done-title { font: 800 22px/1.3 var(--vbr-font); color: var(--vbr-navy); margin: 0 0 8px; }

/* Process cards: long German nouns were hyphenated mid-word in the 4-column desktop layout. */
.vb-staging-page [style*="grid-template-columns"] h3 { hyphens: manual !important; -webkit-hyphens: manual !important; font-size: clamp(18px, 1.45vw, 22px) !important; }

/* Accessibility: footer headings were keyboard-inaccessible scroll regions; small tap targets; links in text need more than colour. */
.elementor-65 .elementor-widget-heading, .elementor-65 .elementor-widget-container { overflow: visible !important; }
.elementor-65 .elementor-element-164dd00 .elementor-item, .elementor-65 .vbr-linkbtn { display: inline-block; padding-top: 6px !important; padding-bottom: 6px !important; min-height: 24px; }
nav[aria-label="Breadcrumb"] a { display: inline-block; padding: 4px 0; }
.content p a:not(.vbr-btn):not(.elementor-button), .vb-staging-page p a:not(.vbr-btn), form label a, .vbr-apply .elementor-field-option a, .vbr-apply .elementor-field-subgroup a { text-decoration: underline; }

/* City pages: districts / business parks as tag lists, services in columns. */
.vbr-tags { list-style: none; padding: 0; margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 8px; }
.vbr-tags li { background: var(--vbr-soft); border: 1px solid #dce6ef; border-radius: 999px; padding: 6px 14px; font-size: 15px; line-height: 1.3; color: #1f2d3d; }
.vbr-linklist--cols { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); column-gap: 24px; margin-bottom: 16px; }
/* Bottom footer row: the agency credit column is gone, so the legal menu gets the full width (no wrap on desktop). */
.elementor-65 .elementor-element-feee4f2 > .elementor-container > .elementor-column:first-child { width: 100% !important; max-width: 100% !important; flex: 1 1 100%; }
.elementor-65 .elementor-element-feee4f2 > .elementor-container > .elementor-column:not(:first-child):not(:has(*:not(.elementor-widget-wrap):not(.elementor-column-wrap))) { display: none; }
@media (min-width: 768px) { .elementor-65 .elementor-element-164dd00 .elementor-nav-menu > li > :is(a, button) { white-space: nowrap; } }
