:root {
  --cnvs-themecolor: #254C80;
  --cnvs-themecolor-rgb: 33, 76, 128
  --c-ground: #FFFFFF;
  --c-ground-2: #F1F4F8;
  --c-ink: #14213D;
  --c-muted: #4A5568;
  --c-accent: var(--cnvs-themecolor);
  --c-line: #D5DAE1;
  --c-navy-deep: #1B3556;
  --space-1: 4px; --space-2: 8px; --space-3: 16px; --space-4: 24px;
  --space-5: 40px; --space-6: 64px; --space-7: 96px; --space-8: 140px;
  --band: 96px; --band-compact: 56px; --gutter: 32px;
  --fs-display: 4rem; --fs-h1: 3.25rem; --fs-h2: 2.25rem; --fs-h3: 1.25rem;
  --fs-lead: 1.25rem; --fs-body: 1.0625rem; --fs-small: 0.9375rem; --fs-label: 0.875rem;
  --radius-s: 4px; --radius-m: 8px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --cnvs-heading-color: #212529;
  --cnvs-body-color: #4C555D;
  --cnvs-body-font: "Open Sans Light", sans-serif;
  --cnvs-primary-font: "Open Sans Light", sans-serif;
  --bs-body-font-size: 16px;
  --cnvs-font-size-body: 16px;
  --cnvs-line-height-content: 1.65;
  --bs-border-radius: 4px;
}
body { color: var(--cnvs-body-color); font-size: var(--fs-body); line-height: 1.65; }
h1, h2, h3 { font-family: "Open Sans Light", sans-serif; color: var(--c-ink); text-wrap: balance; letter-spacing: -0.01em; font-weight: 300; }
a:focus-visible, button:focus-visible, .cx-tile:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }
.mb-header { --cnvs-header-bg: #fff; border-bottom: 1px solid var(--c-line); }
.mb-header #header-wrap { background: #fff; }
.mb-header .menu-link { color: var(--c-ink); font-size: var(--fs-small); font-weight: 500; }
.mb-header .menu-item:hover > .menu-link { color: var(--c-accent); }
.mb-btn, .mb-btn:hover { background: var(--c-accent); color: #fff; border-radius: var(--radius-s); font-size: var(--fs-label); font-weight: 600; text-shadow: none; }
.mb-btn-light, .mb-btn-light:hover { background: #fff; color: var(--c-accent); border-radius: var(--radius-s); font-size: var(--fs-label); font-weight: 600; padding: 0 var(--space-4); min-height: 48px; line-height: 48px; text-shadow: none; }
.mb-btn-light { transition: transform 160ms var(--ease-out); }
.mb-btn-light:active, .mb-btn:active { transform: scale(0.97); }
.section { margin: 0; padding: var(--band) 0; }
.mb-h2 { font-size: var(--fs-h2); font-weight: 600; line-height: 1.2; margin: 0 0 var(--space-3); }
.mb-lead { font-size: var(--fs-lead); line-height: 1.55; color: var(--c-muted); max-width: 60ch; margin: 0 0 var(--space-6); }

/* hero */
.mb-hero-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 560px; }
.mb-hero-copy { background: var(--c-accent); display: flex; align-items: center; justify-content: flex-end; padding: var(--space-6) var(--space-5); }
.mb-hero-inner { max-width: 560px; width: 100%; }
.mb-hero-copy h1 { color: #fff; font-size: var(--fs-h1); font-weight: 700; line-height: 1.1; margin: 0 0 var(--space-4); }
.mb-hero-copy h1 span { display: block; font-weight: 500; font-size: 0.55em; line-height: 1.3; margin-top: var(--space-3); color: #fff; }
.mb-hero-copy p { color: #fff; font-size: var(--fs-lead); line-height: 1.55; max-width: 46ch; margin: 0 0 var(--space-5); }
.mb-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.mb-link-light, .mb-link-light:hover { color: #fff; text-decoration: underline; font-weight: 500; }
.mb-hero-photo { position: relative; overflow: hidden; background: var(--c-ground-2); }
.mb-hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 20%; }

/* facts */
.mb-facts { background: var(--c-ground-2); padding: var(--band-compact) 0; }
.mb-bignum { font-size: var(--fs-display); font-weight: 700; line-height: 1; color: var(--c-accent); }
.mb-bignum-label { color: var(--c-muted); font-size: var(--fs-small); margin: var(--space-2) 0 0; }
.mb-facts-list { margin: 0; }
.mb-facts-list > div { display: grid; grid-template-columns: 160px 1fr; gap: var(--space-3); padding: var(--space-3) 0; border-top: 1px solid var(--c-line); }
.mb-facts-list dt { font-size: var(--fs-label); font-weight: 600; color: var(--c-accent); text-transform: none; }
.mb-facts-list dd { margin: 0; }

/* services bento */
.mb-services { background: var(--c-ground); }
.cx-bento { display: grid; gap: var(--gutter); grid-template-columns: 1fr; }
.cx-bento .cx-tile { position: relative; display: flex; flex-direction: column; justify-content: flex-start; min-height: 240px; padding: var(--space-5); border-radius: var(--radius-m); background: var(--c-ground-2); color: var(--c-ink); transition: transform 300ms var(--ease-out), background-color 300ms var(--ease-out); }
.cx-bento .cx-tile > i { font-size: 1.75rem; color: var(--c-accent); margin-bottom: var(--space-3); }
.cx-bento .cx-tile h3 { font-size: var(--fs-h3); font-weight: 600; margin: 0 0 var(--space-2); }
.cx-bento .cx-tile p { margin: 0; color: var(--c-muted); font-size: var(--fs-body); }
.cx-bento .cx-tile .cx-tile-more { margin-top: var(--space-3); color: var(--c-ink); }
.cx-bento .cx-tile:first-child { background: var(--c-accent); }
.cx-bento .cx-tile:first-child, .cx-bento .cx-tile:first-child h3, .cx-bento .cx-tile:first-child p, .cx-bento .cx-tile:first-child > i, .cx-bento .cx-tile:first-child .cx-tile-more { color: #fff; }
@media (min-width: 992px) {
  .cx-bento { grid-template-columns: repeat(3, 1fr); }
  .cx-bento .cx-w2 { grid-column: span 2; }
  .cx-bento .cx-tile .cx-tile-more { opacity: 0; max-height: 0; overflow: hidden; margin-top: 0; transition: opacity 250ms var(--ease-out), max-height 300ms var(--ease-out), margin 300ms var(--ease-out); }
}
@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
  .cx-bento .cx-tile:hover { transform: translateY(-3px); }
}
@media (min-width: 992px) {
  .cx-bento .cx-tile:hover .cx-tile-more, .cx-bento .cx-tile:focus .cx-tile-more, .cx-bento .cx-tile:first-child .cx-tile-more { opacity: 1; max-height: 12em; margin-top: var(--space-3); }
}

/* profile */
.mb-profile { background: var(--c-ground-2); }
.mb-tags { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.mb-tags li { border: 1px solid var(--c-accent); color: var(--c-accent); border-radius: var(--radius-s); padding: var(--space-1) var(--space-3); font-size: var(--fs-label); font-weight: 500; background: #fff; }
.mb-prose p { font-family: "Open Sans Light", sans-serif; font-size: var(--fs-body); line-height: 1.7; max-width: 68ch; margin: 0 0 var(--space-4); }
.mb-prose .mb-lang { font-family: "Open Sans Light", sans-serif; font-size: var(--fs-small); color: var(--c-muted); }

/* certs */
.mb-certs { background: var(--c-ground); }
.mb-certs .mb-h2 { margin-bottom: var(--space-6); }
.mb-cert-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; border-bottom: 1px solid var(--c-line); }
.mb-cert-grid li { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-4); border-top: 1px solid var(--c-line); }
.mb-cert-grid i { color: var(--c-accent); font-size: 1.5rem; margin-bottom: var(--space-2); }
.mb-cert-grid span { font-size: var(--fs-label); font-weight: 600; color: var(--c-muted); }
.mb-cert-grid strong { font-size: var(--fs-body); font-weight: 600; line-height: 1.35; }
@media (min-width: 768px) { .mb-cert-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .mb-cert-grid { grid-template-columns: repeat(5, 1fr); } .mb-cert-grid li:not(:nth-child(5n+1)) { border-left: 1px solid var(--c-line); } }

/* contact */
.mb-contact { background: var(--c-accent); --cnvs-contrast-100: #fff; }
.mb-contact .mb-h2, .mb-contact .mb-lead, .mb-contact label, .mb-contact .mb-dsgvo, .mb-contact .mb-contact-list, .mb-contact .mb-contact-list a { color: #fff; }
.mb-contact .mb-lead { margin-bottom: var(--space-5); }
.mb-contact-list { list-style: none; margin: 0 0 var(--space-5); padding: 0; }
.mb-contact-list li { display: flex; gap: var(--space-3); align-items: center; padding: var(--space-2) 0; font-size: var(--fs-lead); }
.mb-contact-list a { text-decoration: underline; }
.mb-dsgvo { font-size: var(--fs-small); display: flex; gap: var(--space-2); max-width: 44ch; }
.mb-form .form-control { height: 48px; border: 1px solid var(--c-line); border-radius: var(--radius-m); background: #fff; color: var(--c-ink); font-size: var(--fs-body); }
.mb-form textarea.form-control { height: auto; }
.mb-form .form-group { margin-bottom: var(--space-4); }
.mb-form label { font-size: var(--fs-label); font-weight: 600; margin-bottom: var(--space-2); }

/* footer */
#footer.mb-footer { --cnvs-footer-bg: var(--c-navy-deep); }
.mb-footer .footer-widgets-wrap { padding: var(--band-compact) 0; }
.mb-footer .mb-foot-name { font-size: clamp(1.5rem, 4.2vw, 3rem); font-weight: 700; line-height: 1.15; color: #fff; margin: 0 0 var(--space-5); }
#footer .footer-widgets-wrap a { color: #fff; text-decoration: underline; }
#footer .footer-widgets-wrap p { color: #fff; margin: 0; font-size: var(--fs-small); }
.mb-seal { width: 104px; height: 104px; border: 1px solid #fff; border-radius: 50%; display: grid; place-content: center; text-align: center; color: #fff; outline: 1px solid rgba(255,255,255,.5); outline-offset: 4px; }
.mb-seal i { font-size: 1.5rem; }
.mb-seal span { font-size: 0.75rem; font-weight: 600; line-height: 1.2; letter-spacing: 0.04em; }
#footer #copyrights { color: #fff; background: rgba(0,0,0,.25); }
#footer #copyrights a { color: #fff; text-decoration: underline; }

@media (max-width: 991.98px) {
  :root { --band: 48px; --gutter: 16px; --fs-display: 3rem; --fs-h1: 2.25rem; --fs-h2: 1.75rem; }
  .mb-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .mb-hero-copy { padding: var(--space-6) var(--space-4); justify-content: flex-start; }
  .mb-hero-photo { aspect-ratio: 3 / 2; }
  .mb-header #header-wrap { background: #fff; }
}
@media (max-width: 575.98px) {
  .mb-facts-list > div { grid-template-columns: 1fr; gap: var(--space-1); }
  .cx-bento .cx-tile { min-height: 0; padding: var(--space-4); }
}
.mb-hero { background: var(--c-accent); }
.mb-hero .mb-hero-copy h1 span { color: #fff !important; }
.cx-bento .cx-tile { min-height: 0; }
@media (max-width: 1199.98px) {
  #header .header-misc { display: none; }
  .mb-header .menu-container { gap: 0; }
}
.mb-figure-row { display: flex; align-items: center; gap: var(--space-5); margin-top: var(--space-6); padding: var(--space-5); background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-m); }
.mb-figure-num { font-size: var(--fs-display); font-weight: 700; line-height: 1; color: var(--c-accent); margin: 0; }
.mb-figure-text { font-size: var(--fs-lead); color: var(--c-muted); max-width: 56ch; margin: 0; }
.mb-certs-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-6); }
.mb-certs-head .mb-h2 { margin: 0; }
.mb-certs-head .mb-figure-num { font-size: 5rem; }
.mb-certs .mb-certs-head + .mb-cert-grid { margin-top: 0; }
.mb-foot-lead { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-5); padding-bottom: var(--space-5); margin-bottom: var(--space-5); border-bottom: 1px solid rgba(255,255,255,.3); }
.mb-foot-lead .mb-foot-name { flex: 1 1 100%; margin: 0; }
#footer .footer-widgets-wrap a.mb-foot-phone { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 600; text-decoration: none; }
#footer .footer-widgets-wrap a.mb-btn-light { color: var(--c-accent); text-decoration: none; }
#footer .footer-widgets-wrap p.mb-foot-brand { font-weight: 600; margin: 0 0 var(--space-4); }
@media (max-width: 767.98px) { .mb-figure-row { flex-direction: column; align-items: flex-start; } }
.mb-contact .button.mb-btn-light:hover, .mb-contact .button.mb-btn-light:focus-visible, .mb-hero .button.mb-btn-light:hover, .mb-hero .button.mb-btn-light:focus-visible { background: var(--c-ground-2); color: var(--c-ink); }
.cx-bento .cx-tile { min-height: 0; justify-content: center; }
/* ── legal pages ── */
.mb-legal-hero { background: var(--c-accent); padding: var(--band-compact) 0; }
.mb-legal-hero h1 { color: #fff; font-size: var(--fs-h1); font-weight: 700; line-height: 1.1; margin: 0 0 var(--space-2); }
.mb-legal-hero p { color: #fff; font-size: var(--fs-lead); margin: 0; }
.section.mb-legal { background: var(--c-ground); padding: var(--band) 0; }
.mb-legal-body { max-width: 68ch; }
.mb-legal-card { background: var(--c-ground-2); border: 1px solid var(--c-line); border-radius: var(--radius-m); padding: var(--space-5); }
.mb-legal-card h2 { font-size: var(--fs-h3); font-weight: 600; margin: 0 0 var(--space-3); }
.mb-legal-card p { margin: 0 0 var(--space-3); font-size: var(--fs-small); }
.mb-legal-card a { color: var(--c-accent); text-decoration: underline; }
.mb-legal-body h2 { font-size: var(--fs-h3); font-weight: 600; margin: var(--space-5) 0 var(--space-2); }
.mb-legal-body h2:first-child { margin-top: 0; }
.mb-legal-body p { font-family: "Open Sans Light", sans-serif; line-height: 1.7; margin: 0 0 var(--space-3); }
.mb-legal-body a { color: var(--c-accent); text-decoration: underline; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---- inline overrides ---- */
:where(img[width][height]){height:auto}

:is(.content-wrap,.section):has([data-cx]){overflow-x:clip;overflow-y:visible}