.elementor-kit-6{--e-global-color-primary:#6342FA;--e-global-color-secondary:#42FAA8;--e-global-color-text:#6242F9;--e-global-color-accent:#42F9A8;--e-global-color-099a6d8:#FA5C42;--e-global-color-ba135c0:#FFFFFF;--e-global-color-16fa8dc:#F2E305;--e-global-color-9df6e51:#05DBF2;--e-global-typography-primary-font-family:"tt-commons-pro";--e-global-typography-primary-font-size:100px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.05em;--e-global-typography-secondary-font-family:"tt-commons-pro";--e-global-typography-secondary-font-size:35px;--e-global-typography-secondary-font-weight:300;--e-global-typography-secondary-line-height:40px;--e-global-typography-text-font-family:"tt-commons-pro";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.25em;--e-global-typography-accent-font-family:"tt-commons-pro";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-line-height:1.25em;--e-global-typography-61b108e-font-family:"tt-commons-pro";--e-global-typography-61b108e-font-size:50px;--e-global-typography-61b108e-font-weight:700;--e-global-typography-61b108e-line-height:1.1em;--e-global-typography-b52d578-font-family:"tt-commons-pro";--e-global-typography-b52d578-font-size:35px;--e-global-typography-b52d578-font-weight:400;--e-global-typography-b52d578-line-height:1.15em;--e-global-typography-1b11fa3-font-family:"tt-commons-pro";--e-global-typography-1b11fa3-font-size:30px;--e-global-typography-1b11fa3-font-weight:700;--e-global-typography-1b11fa3-line-height:1.15em;--e-global-typography-55e6ae5-font-family:"tt-commons-pro";--e-global-typography-55e6ae5-font-size:30px;--e-global-typography-55e6ae5-font-weight:400;--e-global-typography-55e6ae5-line-height:1.15em;--e-global-typography-98a24ea-font-family:"tt-commons-pro-thin";--e-global-typography-98a24ea-font-size:70px;--e-global-typography-98a24ea-line-height:80px;--e-global-typography-f691fa8-font-family:"tt-commons-pro";--e-global-typography-f691fa8-font-size:35px;--e-global-typography-f691fa8-font-weight:300;--e-global-typography-f691fa8-line-height:40px;}.elementor-kit-6 a{color:var( --e-global-color-primary );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1600px;}.e-con{--container-max-width:1600px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1366px){.elementor-kit-6{--e-global-typography-primary-font-size:80px;--e-global-typography-secondary-font-size:35px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:16px;--e-global-typography-61b108e-font-size:40px;--e-global-typography-b52d578-font-size:28px;--e-global-typography-1b11fa3-font-size:25px;--e-global-typography-55e6ae5-font-size:25px;--e-global-typography-98a24ea-font-size:50px;--e-global-typography-f691fa8-font-size:35px;}}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-primary-font-size:50px;--e-global-typography-secondary-font-size:30px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:18px;--e-global-typography-61b108e-font-size:25px;--e-global-typography-b52d578-font-size:20px;--e-global-typography-98a24ea-font-size:40px;--e-global-typography-f691fa8-font-size:30px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-primary-font-size:50px;--e-global-typography-secondary-font-size:35px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:16px;--e-global-typography-61b108e-font-size:41px;--e-global-typography-b52d578-font-size:16px;--e-global-typography-1b11fa3-font-size:25px;--e-global-typography-98a24ea-font-size:30px;--e-global-typography-98a24ea-line-height:40px;--e-global-typography-f691fa8-font-size:24px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */.steps ol { list-style: none; counter-reset: s; padding: 0; margin: 0; }
.steps li { counter-increment: s; position: relative; padding-left: 68px; margin-bottom: 32px; }
.steps li::before {
  content: counter(s);
  position: absolute; left: 0; top: 0;
  width: 44px; height: 44px; border-radius: 999px;
  background: #6342fa; color: #fff; font-weight: 700;
  font-size: 22px; line-height: 1;
  padding-top: 4px;
  box-sizing: border-box;
  display: flex; align-items: center; justify-content: center;
}
.steps strong { color: #6342fa; }
@media (max-width: 767px) {
  .steps li { padding-left: 56px; }
  .steps li::before { width: 36px; height: 36px; font-size: 18px; }
}

.elementor-widget-text-editor a {
  text-decoration: underline;
  text-decoration-color: #42faa8;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

/* Buttons: optische Mitte. Das Widget-Padding steht auf 12 oben / 10 unten,
   ein Pixel Ausgleich stellt die Schrift exakt mittig. */
.elementor-button .elementor-button-content-wrapper {
  position: relative;
  top: -1px;
}

/* Kachel-Labels: Wortmarken statt Ziffern, damit längere Wörter nicht an die Kachelkante stoßen. */
.kachel-label .elementor-heading-title { font-size: 76px !important; }
@media (max-width: 1366px) {
  .kachel-label .elementor-heading-title { font-size: 62px !important; }
}
@media (max-width: 1024px) {
  .kachel-label .elementor-heading-title { font-size: 30px !important; }
}
@media (max-width: 767px) {
  .kachel-label .elementor-heading-title { font-size: 50px !important; }
}

/* Tablet: H3 unter der H2 halten (H2 ist dort 25px). */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-widget-heading h3.elementor-heading-title { font-size: 22px !important; line-height: 1.25 !important; }
}
/* Mobil: H3 unter der H2 halten (H2 ist dort 41px). */
@media (max-width: 767px) {
  .elementor-widget-heading h3.elementor-heading-title { font-size: 28px !important; line-height: 1.2 !important; }
}

/* Mobil und Tablet: Größen, die für Desktop gesetzt sind, zurücknehmen.
   Kicker und Sublines stehen als div, greifen also keine Kit-Regel ab. */
@media (max-width: 1024px) {
  .elementor-widget-heading:not(.kachel-label):not(.abbinder-titel):not(.footer-claim) div.elementor-heading-title {
    font-size: 20px;
    line-height: 1.35;
  }
  .elementor-widget-heading.footer-claim div.elementor-heading-title { font-size: 26px; line-height: 1.25; }
  .elementor-element-eb0f37f .elementor-widget-container {
    font-size: 18px;
    line-height: 1.5;
  }
}

/* Großer Fließtext (globaler Stil 55e6ae5, Desktop 30px): auf kleinen Schirmen auf Lesegröße.
   Hero-Sublines hängen am selben Stil, bleiben aber über die Regel darüber bei 20px. */
@media (max-width: 1024px) { .elementor-kit-6 { --e-global-typography-55e6ae5-font-size: 20px; } }
@media (max-width: 767px)  { .elementor-kit-6 { --e-global-typography-55e6ae5-font-size: 16px; } }

/* Mobil: Textblöcke ohne Kachelhintergrund bündig zum Seitenrand (20px statt 30px). */
@media (max-width: 767px) {
  .elementor-element-a1c4299 > .elementor-widget-wrap,
  .elementor-element-a1c4299 { padding-left: 0 !important; padding-right: 0 !important; }
}
/* Ausbildung zur MFA: der Textblock liegt eine Ebene höher, deshalb hier der fehlende Rand. */
@media (max-width: 767px) {
  .elementor-element-d67e6b9 > .e-con-inner,
  .elementor-element-00be6aa > .e-con-inner { padding-left: 10px; padding-right: 10px; }
}

/* Kacheltexte auf volle Kachelbreite. Die Kachel steht auf flex-start, sonst schrumpfen die Widgets auf Wortbreite. */
@media (max-width: 767px) {
  .elementor-element-ecdeb97, .elementor-element-7fe87af, .elementor-element-23c3b54 { align-items: stretch; }
}

/* Lange Komposita wie „Weiterbildungsverbund" laufen auf Mobil sonst aus dem Bild.
   Die Seite steht auf lang="de", deshalb trennt der Browser nach deutschen Regeln. */
@media (max-width: 1024px) {
  h1, h2, h3, h4, .elementor-heading-title, .elementor-widget-text-editor {
    hyphens: auto;
    -webkit-hyphens: auto;
    /* Erst ab 14 Zeichen trennen, sonst zerlegt der Browser auch „weiterkommen". */
    hyphenate-limit-chars: 14 5 4;
    -webkit-hyphenate-limit-chars: 14 5 4;
    overflow-wrap: break-word;
  }
}

/* Faktenkacheln auf „Ausbildung zur MFA": Label und Text waren auf Mobil zu klein für die Kachelfläche. */
@media (max-width: 767px) {
  .fakten-kachel .elementor-heading-title { font-size: 26px !important; line-height: 1.15; }
  .fakten-kachel .elementor-widget-text-editor,
  .fakten-kachel .elementor-widget-text-editor p { font-size: 18px !important; line-height: 1.45; }
}

/* Verlinkte Partner-Überschriften sichtbar machen, sonst erkennt niemand, dass die Kachel weiterführt. */
.elementor-widget-heading .elementor-heading-title a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: #42faa8;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.elementor-widget-heading .elementor-heading-title a:hover { text-decoration-color: currentColor; }
/* Tablet: dort standen Label und Text beide auf 20 px, ohne Hierarchie. */
@media (min-width: 768px) and (max-width: 1024px) {
  .fakten-kachel .elementor-heading-title { font-size: 24px !important; line-height: 1.15; }
  .fakten-kachel .elementor-widget-text-editor,
  .fakten-kachel .elementor-widget-text-editor p { font-size: 18px !important; line-height: 1.45; }
}

/* Buttons ohne eigene Textfarbe erbten Weiß. Auf Gelb und Mint war das praktisch unlesbar.
   Niedrige Spezifität mit Absicht: Jeder Button mit eigener Farbeinstellung behält seine. */
.elementor-button { color: #6342fa; }
.elementor-button:hover, .elementor-button:focus { color: #ffffff; background-color: #6342fa; }

/* FAQ: Der MFA-Block hängt am großen Fließtextstil und stand mit 30 px neben 16 px großen Ärzte-Antworten. */
.faq-block, .faq-block p, .faq-block li { font-size: 16px !important; line-height: 1.5 !important; }

/* Hero-Bild Tablet: Das Bild-Widget hatte keine Breite und schrumpfte auf die
   intrinsische Breite des quadratischen Motivs. Rechts blieben 42 bis 183 px leer,
   links nur 10. Jetzt füllt es die Restbreite, Desktop bleibt unberührt. */
@media (min-width:768px) and (max-width:1024px){
  .elementor-element-3380f50 { width:auto; flex:1 1 0%; max-width:none; }
  .elementor-element-3380f50 img,
  .elementor-element-4698eaa img { width:100% !important; }
}

/* Seitenränder: Der Header steht links und rechts auf 50 px, die Inhaltsabschnitte
   standen gemischt auf 10, 50 und 100 px. Die regulären Abschnitte ziehen jetzt
   bündig zum Logo und zum Menü. Abbinder (190f24f) und Footer (34c4208) behalten
   ihre eigenen Werte. Mobil bleibt es bei den knappen 10 px. */
@media (min-width:768px){
  .page-content > .elementor > .elementor-element.e-con { padding-left:50px; padding-right:50px; }
  .page-content > .elementor > .elementor-element.elementor-element-190f24f { padding-left:100px; padding-right:100px; }
  .page-content > .elementor > .elementor-element.elementor-element-34c4208 { padding-left:0; padding-right:0; }
}

/* Burger früher: Das Menü brauchte bis 1310 px die volle Breite und brach in
   zwei Zeilen um. Elementor bietet für das Menü-Widget nur den Tablet-Punkt
   (1024) an, deshalb hier die Umschaltung bis 1320 px verlängert. */
@media (min-width:1025px) and (max-width:1320px){
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main { display:none !important; }
  .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle { display:flex !important; }
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown { display:block !important; }
}

/* Fluide Überschriften: Die globalen Textstile sprangen in harten Stufen
   (100 / 80 / 50 px) und blieben im Laptop-Bereich konstant bei 80 px, was bei
   1025 bis 1150 px viel zu groß war. Zwei Stufen liefen mobil sogar wieder
   hoch (secondary 30 auf 35, 61b108e 25 auf 41). Jetzt skaliert alles linear
   zwischen Tablet und Desktop; die Desktop-Werte bleiben unverändert. */
.elementor-kit-6 {
  --e-global-typography-primary-font-size: clamp(46px, 11.54vw - 66.2px, 100px);
  --e-global-typography-98a24ea-font-size: clamp(30px, 7.21vw - 33.8px, 70px);
  --e-global-typography-61b108e-font-size: clamp(25px, 6.01vw - 36.5px, 50px);
  --e-global-typography-secondary-font-size: clamp(20px, 2.16vw + 3.85px, 35px);
  --e-global-typography-b52d578-font-size: clamp(16px, 3.6vw - 16.9px, 35px);
  --e-global-typography-f691fa8-font-size: clamp(22px, 1.2vw + 17.7px, 35px);
}

/* Header sticky: bleibt oben stehen, blendet beim Runterscrollen aus und kommt beim
   Hochscrollen zurück. Die Klassen mp-header--hidden und mp-header--scrolled setzt das
   Skript unter Elementor > Individueller Code ("MedPlus Header: Ein- und Ausblenden").
   Fällt das Skript aus, bleibt der Header einfach dauerhaft sichtbar. */
.elementor-location-header { position:sticky; top:0; z-index:999; background:#fff; transition:transform .3s ease, box-shadow .3s ease; }
body.admin-bar .elementor-location-header { top:32px; }
@media (max-width:782px){ body.admin-bar .elementor-location-header { top:46px; } }
@media (max-width:600px){ body.admin-bar .elementor-location-header { top:0; } }
.elementor-location-header.mp-header--scrolled { box-shadow:0 2px 16px rgba(0,0,0,.08); }
.elementor-location-header.mp-header--hidden { transform:translateY(-110%); box-shadow:none; }
@media (prefers-reduced-motion:reduce){ .elementor-location-header { transition:none; } }
/* Offenes Burger-Menü: Der Header steht fest, deshalb scrollt die Liste in sich.
   Sonst sind bei aufgeklappten Untermenüs die unteren Einträge nicht erreichbar. */
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { max-height:calc(100vh - 100px) !important; max-height:calc(100dvh - 100px) !important; overscroll-behavior:contain; }

/* Bildrahmen: Bild-Widgets bleiben quadratisch, egal welches Format die Datei hat.
   Das Bild füllt den Rahmen und wird beschnitten (cover), nicht verzerrt.
   Ausgenommen sind die Hero-Bilder (3380f50, 4698eaa), sie haben eigene Höhen in Elementor.
   Ausschnitt verschieben: im Widget unter Erweitert > CSS-Klassen fokus-links, fokus-rechts,
   fokus-oben oder fokus-unten eintragen. Soll ein Bild sein eigenes Format behalten: Klasse bild-frei. */
.elementor-widget-image:not(.elementor-element-3380f50):not(.elementor-element-4698eaa):not(.bild-frei) img:not([src$=".svg"]) { aspect-ratio:1/1; object-fit:cover; }
.elementor-widget-image.fokus-links img { object-position:left center; }
.elementor-widget-image.fokus-rechts img { object-position:right center; }
.elementor-widget-image.fokus-oben img { object-position:center top; }
.elementor-widget-image.fokus-unten img { object-position:center bottom; }

/* Videoblöcke (Zitat mit Video, Klasse mp-video am Video-Widget): Hochformat 9:16,
   Ecken wie bei den Bildern. Das Standbild steht vor dem Abspielen im Rahmen. */
.mp-video .elementor-wrapper { border-radius:24px; overflow:hidden; }
.mp-video video { display:block; width:100%; height:auto; aspect-ratio:9/16; object-fit:cover; border-radius:24px; }
/* Videoblöcke Tablet: Mit 28 % wäre das Video dort nur rund 190 px breit. */
@media (min-width:768px) and (max-width:1024px){ .elementor-widget-video.mp-video { width:40% !important; max-width:40% !important; } }

/* Footer-Spalten (Vorlage 172, Container 2d7c070): Zwischen 1025 und 1110 px lief die Spalte „Rechtliches" über den Rand,
   weil die Spalten unter ihre Wortbreite schrumpfen durften. Jetzt wird keine Spalte schmaler als ihr längstes Wort,
   und der Spaltenabstand wächst im Laptop-Bereich fließend von 32 px (bei 1025) auf 80 px (bei 1366).
   Der Elementor-Wert „Abstände" am Container (Laptop 80 px) wird in diesem Bereich überschrieben. */
@media (min-width:1025px){ .elementor-location-footer .elementor-element.elementor-element-2d7c070 > .elementor-widget { min-width:min-content; } }
@media (min-width:1025px) and (max-width:1366px){ .elementor-location-footer.elementor-172 .elementor-element.elementor-element-2d7c070 { --gap:80px clamp(32px, calc(32px + (100vw - 1025px) * 0.14), 80px); } }

/* Buttons, besuchte Links: Elementor setzt :visited auf Weiß. Auf Mint oder Gelb war die Schrift dann kaum lesbar.
   Niedrig spezifiziert, damit Widgets mit eigener Textfarbe weiter gewinnen. */
.elementor-button:visited { color: #6342fa; }
.elementor-button:visited:hover, .elementor-button:visited:focus { color: #ffffff; }/* End custom CSS */