/*
 * paladinum – Auftritt · Gestaltungs- und Conversion-Korrekturen
 * Greift NUR ergänzend über die Elementor-Ausgabe. Rückweg: Plugin deaktivieren.
 * CI: Navy #182036 · Petrol #245375 (kein Gold – das ist Gewerbe Academy).
 */

/* ---------- 1. Einblendungen: kurz statt zäh ----------------------------- */
/* Elementor blendet mit 1,25 s ein; nach dem Entfernen der Verzögerungen
   (siehe PHP) reicht eine halbe Sekunde, damit es „lebt", ohne zu warten. */
.elementor-element.animated,
.elementor-section.animated,
.e-con.animated {
  animation-duration: .55s !important;
}
@media (prefers-reduced-motion: reduce) {
  .elementor-invisible { visibility: visible !important; }
  .elementor-element.animated,
  .elementor-section.animated,
  .e-con.animated { animation: none !important; }
}

/* ---------- 2. Startseite: Luft raus, Inhalt rein ------------------------ */
/* Acht Sektionen tragen 160 px Innenabstand oben und unten – auf 1440er
   Bildschirmen steht der Inhalt damit in der unteren Hälfte, darüber Leere.
   96 px halten den Rhythmus, ohne dass fünf leere Bildschirme entstehen.
   Nur Desktop: die Tablet-/Mobil-Abstände von Elementor bleiben. */
@media (min-width: 1025px) {
  body.home .elementor-top-section[data-id="57cc2c9"],
  body.home .elementor-top-section[data-id="26f96f5"],
  body.home .elementor-top-section[data-id="5bbfc4ff"],
  body.home .elementor-top-section[data-id="6d2af3c2"],
  body.home .elementor-top-section[data-id="39d27a9"],
  body.home .elementor-top-section[data-id="685b332"],
  body.home .elementor-top-section[data-id="6be689e2"],
  body.home .elementor-top-section[data-id="7be5bf2"] {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
  }
}

/* ---------- 3. Kontrast: Knöpfe in Petrol statt Hellblau ----------------- */
/* Weiß auf #31A4F8 erreicht 2,69:1 (WCAG verlangt 4,5:1). Die Knöpfe holen
   ihre Farbe aus der Elementor-Globalfarbe f20b69c – die Variable wird hier
   nur im Knopf-Kontext auf Petrol umgebogen (7,9:1). Icons, Unterstreichungen
   und Akzente behalten das Hellblau. */
.elementor-widget-jet-button,
.elementor-widget-button,
.elementor-widget-form .elementor-button {
  --e-global-color-f20b69c: #245375;
}
/* Erstgespräch-Paar auf der Startseite: das graue (Privatkunden, 4,3:1) wird
   wie das Firmenkunden-Pendant gefüllt und weiß beschriftet. */
.elementor-element-9085e8e .jet-button__plane-normal, .elementor-element-9085e8e .jet-button__instance,
.elementor-element-64a9d0 .jet-button__plane-normal, .elementor-element-64a9d0 .jet-button__instance,
.elementor-element-49e40485 .jet-button__plane-normal, .elementor-element-49e40485 .jet-button__instance {
  background-color: #245375 !important;
}
.elementor-element-9085e8e .jet-button__label, .elementor-element-9085e8e .jet-button__icon,
.elementor-element-64a9d0 .jet-button__label, .elementor-element-64a9d0 .jet-button__icon,
.elementor-element-49e40485 .jet-button__label, .elementor-element-49e40485 .jet-button__icon {
  color: #fff !important;
}
/* Fachseiten-Autorenbox: Kleinlabels.
   KORREKTUR 20.08.2026: Der Wert #7b8399 wurde hier mit "4,9:1" begruendet.
   Gegen den tatsaechlichen Grund der Box (#1a2a50) sind es aber 3,70:1 —
   die alte Rechnung ging von einem anderen Hintergrund aus. #a8b2c8 liefert
   gemessene 6,62:1 auf demselben Grund. */
.p4au-label { color: #a8b2c8 !important; }
/* Sparten-Hub: Zähl-Chip weiß auf Hellblau */
#p4sp .p4sp-chip .p4sp-zahl { background: #245375 !important; color: #fff !important; }

/* ---------- 4. Kopfbereich: Logo ohne Leuchtschein ----------------------- */
/* Der dreifache weiße drop-shadow war ein Behelf, damit das navyfarbene Logo
   auf dem dunklen Kopf überhaupt zu sehen ist. Ohne Schein verschwindet es.
   Stattdessen: einfarbig weiß (brightness 0 + invert) – so setzen dunkle
   Premium-Seiten ihre Wortmarke; die Bilddatei bleibt unverändert. */
.elementor-2391 .elementor-element.elementor-element-612458a img,
.elementor-2391 .elementor-element.elementor-element-29944a img,
.elementor-182 .elementor-element.elementor-element-4880bcd8 img {
  filter: brightness(0) invert(1) !important;
}

/* ---------- 5. Video-Mockup ---------------------------------------------- */
/* Quadratisch geschnitten, Poster sichtbar bis das Video spielt. */
.elementor-widget-video video.elementor-video[poster] { max-width: 100%; }
.elementor-widget-video video.elementor-video[poster] {
  aspect-ratio: 1 / 1;
  height: auto;
  background: #fff;
  object-fit: cover;
  /* Das Weiß im Video ist nicht exakt das Weiß der Sektion – multiply lässt
     die Kante verschwinden, das Smartphone bleibt unverändert. */
  mix-blend-mode: multiply;
}

/* ---------- 6. Termin-/Anruf-Leiste (mobil) ------------------------------ */
.p4cta {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9990;
  display: none;
  gap: 8px;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: rgba(24, 32, 54, .96);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: 0 -6px 24px rgba(0, 0, 0, .25);
  font-family: 'Montserrat', system-ui, sans-serif;
}
@media (max-width: 1024px) {
  .p4cta { display: flex; }
  body { padding-bottom: 68px; }
  /* Fingerabdruck-Knopf des Cookie-Banners über die Leiste heben */
  .rcb-icon-shortcode, [id^="rcb-"] .rcb-banner-fixed-button, .real-cookie-banner-fixed-button, .rcb-fixed-button { bottom: 80px !important; }
}
.p4cta__btn {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 10px 12px;
  border: 0;
  border-radius: 10px;
  font: 600 15px/1.1 'Montserrat', system-ui, sans-serif;
  letter-spacing: .01em;
  cursor: pointer;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
}
.p4cta__btn--termin { background: #fff; color: #182036 !important; }
.p4cta__btn--tel { background: #245375; color: #fff !important; }
.p4cta__btn:focus-visible { outline: 3px solid #9ec5e8; outline-offset: 2px; }
.p4cta__sheet {
  position: absolute;
  left: 12px; right: 12px; bottom: calc(100% + 8px);
  background: #fff;
  color: #182036;
  border-radius: 14px;
  padding: 14px 14px 8px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
}
.p4cta__det { flex: 1 1 0; display: flex; }
.p4cta__det > summary { list-style: none; width: 100%; }
.p4cta__det > summary::-webkit-details-marker { display: none; }
.p4cta__det[open] > summary.p4cta__btn--termin { background: #e8eef7; }
.p4cta__det[open] > summary.p4cta__btn--tel { background: #1a3d57; }
.p4cta__frage { margin: 0 0 8px; font-size: 13px; color: #55607a; }
.p4cta__sheet a {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  padding: 12px 8px; margin: 0 -8px;
  border-top: 1px solid #e6e9f0;
  color: #182036 !important; font-weight: 600; font-size: 16px; text-decoration: none !important;
}
.p4cta__sheet a small { font-weight: 500; color: #55607a; font-size: 13px; white-space: nowrap; }
.p4cta__sheet a:active { background: #f2f5fa; }

/* ---------- 7. Startseite: Hero kompakter, Partnerband darunter ----------- */
/* Der Hero-Container hatte eine Mindesthöhe von ~87 vh; mit Kopfbereich lag
   sein Ende auf jedem Bildschirm unter dem Fold. Ohne Mindesthöhe, Bild und
   Google-Karte ~12 % kleiner, passt das Partnerband in den ersten Bildschirm
   (1440×900: Kopf 129 + Hero ≈ 600 + Band ≈ 110). Nur Desktop. */
@media (min-width: 1025px) {
  body.home .elementor-top-section[data-id="482e8371"] > .elementor-container {
    min-height: 0 !important;
  }
  body.home .elementor-element-eca09f0 {
    max-width: 88%;
    margin-left: auto;
    margin-right: auto;
  }
  body.home .elementor-element-d0a98ac { zoom: .86; }
}
.p4partner {
  position: relative;
  z-index: 2;
  padding: 4px 0 8px;
  overflow: hidden;
  scroll-margin-top: 140px;
}
/* Die Scroll-Pfeil-Sektion darunter zog sich mit margin-top −43 px über das
   Band und fing die Hover-Ereignisse der Logos ab. */
body.home .elementor-top-section[data-id="a2cbed2"] { margin-top: 0 !important; }
.p4partner__label {
  margin: 0 0 16px;
  text-align: center;
  font: 600 12px/1.2 'Montserrat', system-ui, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .5);
}
.p4partner__mask {
  -webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent);
}
.p4partner__track {
  display: flex;
  width: max-content;
  animation: p4marquee 44s linear infinite;
}
.p4partner__row {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 56px;
  padding: 0 28px;
  margin: 0;
  list-style: none;
}
.p4partner__row li { display: flex; align-items: center; flex-shrink: 0; margin: 0; }
/* Zwei Bilder je Logo, deckungsgleich in einer Rasterzelle: hellgrau (weiße
   Fassung mit Deckkraft) als Standard, Original in Farbe beim Hover – wie das
   Logo-Band der Gewerbe Academy, nur auf dunklem Grund. Keine Karte, keine
   Kachel (Entscheidung Mauritz 18.08.2026). */
.p4partner__logo {
  display: grid;
  place-items: center;
  padding: 10px 6px;
  box-sizing: content-box;
}
.p4partner__logo img {
  grid-area: 1 / 1;
  display: block;
  position: static !important;
  width: auto !important;
  max-width: none !important;
  transition: opacity .3s ease;
}
.p4partner__logo .p4partner__w { opacity: .62; }
.p4partner__logo .p4partner__c { opacity: 0; }
.p4partner__logo:hover .p4partner__w { opacity: 0; }
.p4partner__logo:hover .p4partner__c { opacity: 1; }
@keyframes p4marquee { to { transform: translateX(-50%); } }
@media (max-width: 767px) {
  .p4partner__row { gap: 36px; padding: 0 18px; }
  .p4partner__logo { transform: scale(.85); }
}
@media (prefers-reduced-motion: reduce) {
  .p4partner__track { animation: none; width: auto; }
  .p4partner__mask { -webkit-mask-image: none; mask-image: none; }
  .p4partner__row { flex-wrap: wrap; justify-content: center; row-gap: 20px; }
  .p4partner__row[aria-hidden] { display: none; }
}

/* ---------- 8. Blocksy-Titelbalken auf Seiten mit eigener Überschrift ------ */
/* /partner/ (3161, leitet jetzt um) und /servicehonorar-entscheidung/ (3598)
   zeigten über dem eigenen Titel noch den dunklen Theme-Titelbalken – der
   „doppelte Header". Die H1 bleibt im DOM (Screenreader, SEO), nur unsichtbar. */
.page-id-3161 .hero-section[data-type="type-1"],
.page-id-3598 .hero-section[data-type="type-1"] {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ---------- 9. Rezensionen: Trustindex-Kopf auf dunklem Grund ------------- */
/* Das Widget übernimmt das quadratische Google-Profilbild (navy, beschnitten)
   und setzt Name und Zähler schwarz – auf #212121 unlesbar. Profilbild →
   Wortmarke weiß, Texte hell. Der Rest des Widgets (weiße Karten) bleibt. */
body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-profile-img {
  width: auto !important; max-width: none !important; flex: 0 0 auto;
  margin: 0 !important;
}
body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-profile-img img {
  content: url("https://paladinum.de/wp-content/uploads/2022/10/paladinum-logo-RGB.png");
  filter: brightness(0) invert(1);
  width: 128px !important;
  min-width: 128px !important;
  height: auto !important;
  max-width: none !important;
  border-radius: 0 !important;
  object-fit: contain;
}
/* Gemessen 18.08.2026: Die Kopfspalte des Widgets ist 25 % breit (308 px bei
   1230 px). 140 px Wortmarke plus Abstand ließen den Details 133 px – der
   221-px-Knopf „Eine Bewertung schreiben" ragte 68 px unter die erste Karte,
   der Zähler wurde abgeschnitten. Deshalb: Wortmarke ÜBER den Details statt
   daneben, Zeilen dürfen umbrechen, Knopf nie breiter als die Spalte. Auf
   schmalen Bildschirmen stellt Trustindex selbst um (ti-col-1), dort bleibt
   die Zeile wie sie ist. */
@media (min-width: 768px) {
  body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer { padding-right: 20px !important; box-sizing: border-box; }
  body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px;
  }
  body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-profile-details {
    width: 100%; max-width: 100%; flex: 0 0 auto !important;
    white-space: normal !important; padding-top: 0 !important;
  }
  body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-rating-text,
  body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-rating-text .nowrap { white-space: normal !important; }
  body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-header-write-btn-container { width: 100%; }
  body .elementor-widget-shortcode .ti-widget.ti-goog .ti-footer .ti-header-write-btn {
    display: inline-block; max-width: 100%; box-sizing: border-box;
    white-space: normal !important; text-align: center; line-height: 1.3 !important;
  }
}
.ti-widget.ti-goog .ti-footer .ti-name,
.ti-widget.ti-goog .ti-footer .ti-profile-details,
.ti-widget.ti-goog .ti-footer .ti-profile-details * {
  color: #fff !important;
}
.ti-widget.ti-goog .ti-footer .ti-profile-details .ti-rating-text,
.ti-widget.ti-goog .ti-footer .ti-profile-details .ti-rating-text * {
  color: rgba(255, 255, 255, .78) !important;
}
.ti-widget.ti-goog .ti-footer .ti-header-write-btn,
.ti-widget.ti-goog .ti-footer .ti-header-write-btn * { color: #182036 !important; }

/* ---------- 10. Formulare: Datenschutz-Link erkennbar --------------------- */
/* Der Link im Einwilligungstext hatte weder Farbe noch Unterstreichung. */
.elementor-widget-form .elementor-field-option label a,
.elementor-widget-form .elementor-field-type-acceptance label a {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  font-weight: 600;
}
.elementor-widget-form .elementor-field-option label a:hover,
.elementor-widget-form .elementor-field-type-acceptance label a:hover { opacity: .8; }

/* ---------- 11. Kopfleiste über allem (außer Cookie-Banner/CTA-Leiste) ------ */
/* Die JetSticky-Kopfzeile lief mit z-index 7 – Hotspot-Knöpfe und Slider-
   Punkte (z-index 8–10) schoben sich beim Scrollen über das Menü. */
.elementor-location-header .jet-sticky-section,
.elementor-location-header .elementor-sticky--active { z-index: 900 !important; }

/* ---------- 12. /unternehmen/: kein Brotkrumen-Balken über dem Hero ------- */
/* Die Registerseiten behalten ihre Brotkrume; auf der Firmenkunden-Übersicht
   wirkte der Balken wie ein zweiter Kopf. */
.page-id-1805 #p4bc { display: none !important; }

/* ---------- 13. /privatpersonen/: Abstände + Kartenraster ------------------ */
@media (min-width: 1025px) {
  .page-id-1657 .elementor-top-section[data-id="d9a1c2b"] { padding-bottom: 16px !important; }
  .page-id-1657 .elementor-top-section[data-id="4a96422f"] { padding-top: 96px !important; }
  /* Die Google-Bewertungskarte hängt (per PHP umgehängt) in der rechten
     Spalte unter der Animation – mit etwas Luft, damit sie „darunter hängt"
     und nicht daran klebt. Die Spalte ist oben ausgerichtet; die Textspalte
     links bleibt vertikal zentriert. */
  .page-id-1657 .elementor-element-2be450f + .elementor-element-8773943 { margin-top: 28px; }
}
.page-id-1657 .elementor-top-section[data-id="0eb4dcb"] { padding: 0 !important; }
/* Die alte Bildersektion bleibt im DOM (Rückweg: Plugin aus), wird nicht gezeigt. */
.page-id-1657 .elementor-top-section[data-id="d850579"] { display: none !important; }

.p4pk {
  padding: 32px 0 96px;
  scroll-margin-top: 140px;
  font-family: 'Montserrat', system-ui, sans-serif;
  color: #fff;
}
.p4pk__wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.p4pk__h2 {
  margin: 0 0 14px;
  font-size: clamp(30px, 3.6vw, 44px);
  font-weight: 700;
  line-height: 1.15;
  color: #fff;
}
.p4pk__lead { margin: 0 0 40px; max-width: 820px; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,.78); }
.p4pk__lead strong { color: #fff; }
.p4pk__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.p4pk__card {
  position: relative;
  display: flex; flex-direction: column;
  padding: 30px 30px 26px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
  border: 1px solid rgba(255,255,255,.1);
  transition: transform .25s, border-color .25s, background-color .25s;
}
.p4pk__card:hover { transform: translateY(-3px); border-color: rgba(49,164,248,.55); }
.p4pk__icon {
  width: 56px; height: 56px; margin-bottom: 18px;
  display: grid; place-items: center;
  border-radius: 16px;
  background: rgba(58, 175, 214, .16); color: #3aafd6;
  transition: background-color .25s, transform .25s;
}
.p4pk__card:hover .p4pk__icon { background: rgba(58, 175, 214, .26); transform: scale(1.04); }
.p4pk__icon svg { width: 32px; height: 32px; display: block; }
.p4pk__icon .a { fill: currentColor; opacity: .35; }
.p4pk__icon .b { fill: currentColor; }
.p4pk__h3 { margin: 0 0 8px; font-size: 22px; font-weight: 700; line-height: 1.25; color: #fff; }
.p4pk__text { margin: 0 0 16px; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.72); }
.p4pk__list { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 9px; }
.p4pk__list li { position: relative; padding-left: 26px; font-size: 15px; line-height: 1.45; color: rgba(255,255,255,.9); }
.p4pk__list li::before {
  content: ""; position: absolute; left: 0; top: 4px;
  width: 15px; height: 15px; border-radius: 50%;
  background: rgba(49,164,248,.18);
  box-shadow: inset 0 0 0 1.5px #31A4F8;
}
.p4pk__list li::after {
  content: ""; position: absolute; left: 4.5px; top: 8px;
  width: 6px; height: 3.5px; border-left: 1.8px solid #31A4F8; border-bottom: 1.8px solid #31A4F8; transform: rotate(-45deg);
}
.p4pk__link {
  margin-top: auto; align-self: flex-start;
  font-size: 15px; font-weight: 600; color: #fff !important; text-decoration: none !important;
  border-bottom: 1.5px solid rgba(255,255,255,.35); padding-bottom: 2px;
  transition: border-color .2s;
}
.p4pk__link:hover { border-color: #31A4F8; }
@media (max-width: 767px) {
  .p4pk { padding: 16px 0 64px; }
  .p4pk__grid { grid-template-columns: 1fr; gap: 16px; }
  .p4pk__card { padding: 24px 22px 22px; }
}

/* ---------- 14. Markierung: sichtbar statt weiß auf weiß ------------------ */
/* Theme/Elementor lieferten ::selection mit transparentem Grund und weißer
   Schrift – markierter Text (Telefonnummer, Mail) verschwand. */
::selection { background: rgba(36, 83, 117, .85); color: #fff; }
::-moz-selection { background: rgba(36, 83, 117, .85); color: #fff; }

/* ---------- 15. Fachseiten/Ratgeber: ein Kopf statt zwei ------------------- */
/* Auf Seiten mit Brotkrume (#p4bc) verschwindet der dunkle Blocksy-Titelbalken
   (H1 bleibt im DOM); die Brotkrume rückt unter die Kopfleiste. */
body:has(#p4bc) .hero-section[data-type="type-1"] {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
body:has(#p4bc) .ct-container-full[data-vertical-spacing*="top"],
body:has(#p4bc) .ct-container[data-vertical-spacing*="top"] { padding-top: 10px !important; }
body:has(#p4bc) #p4bc { margin-top: 0 !important; }
/* Zweiter Anlauf (18.08.2026): Der Titelbalken war weg, aber die Brotkrume
   selbst kam als 46 px hoher Navy-Balken über die volle Breite – direkt unter
   der Kopfzeile wirkte auch sie wie eine zweite Leiste. Jetzt ist sie eine
   schlichte Textzeile ohne Grund und Rand, auf Kartenbreite eingerückt. */
#p4bc {
  background: transparent !important;
  border-bottom: 0 !important;
}
#p4bc ol {
  width: min(1290px, 100%) !important;
  padding: 10px 24px 14px !important;
  font-size: 12.5px;
  color: rgba(255,255,255,.5);
}
#p4bc a { color: rgba(255,255,255,.62); }
#p4bc a:hover { color: #fff; }
#p4bc [aria-current] { color: rgba(255,255,255,.9); font-weight: 600; }

/* ---------- 16. Kontaktabschnitt: Kästen und Formular weich ---------------- */
/* Die zwei Kontaktkästen waren Spalten mit 1-px-Grau-Rahmen und eckig; das
   Formular hatte 3-px-Ecken. Jetzt: weiße Karten, 18 px Radius, weicher
   Schatten – wie die Karten der übrigen Abschnitte. Gilt überall dort, wo eine
   Sektion Kontaktkästen (Icon-Box) und ein Formular enthält. */
.elementor-top-section:has(.elementor-widget-form) .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-icon-box) {
  border: 0 !important;
  background: #fff !important;
  border-radius: 18px;
  box-shadow: 0 10px 34px rgba(24, 32, 54, .08);
  padding: 30px 26px !important;
}
.elementor-widget-form .elementor-form-fields-wrapper .elementor-field-textual {
  border: 1.5px solid #d9e2ec !important;
  border-radius: 12px !important;
  background: #fff !important;
  min-height: 48px;
  padding: 10px 16px !important;
  color: #182036 !important;
  transition: border-color .2s, box-shadow .2s;
}
.elementor-widget-form .elementor-form-fields-wrapper .elementor-field-textual:focus {
  border-color: #245375 !important;
  box-shadow: 0 0 0 3px rgba(36, 83, 117, .18) !important;
  outline: none;
}
.elementor-widget-form .elementor-form-fields-wrapper textarea.elementor-field-textual { min-height: 150px; }
.elementor-widget-form .elementor-field-group { margin-bottom: 4px; }
.elementor-widget-form .elementor-button {
  border-radius: 12px !important;
  padding: 14px 32px !important;
  font-weight: 700 !important;
  letter-spacing: .01em;
}
/* Formular selbst als Karte (dort, wo Elementor ihm schon einen weißen Grund gibt) */
.elementor-widget-form .elementor-widget-container { border-radius: 20px !important; }

/* ---------- 17. Hauptmenü: ruhiger Hover, sichtbarer Standort ------------- */
/* Befund (18.08.2026): Im Elementor-Custom-CSS der Kopfzeile (post-2391.css)
   liegt eine Regelgruppe „Hover-Linie sauber neu erzeugen": Sie schaltet das
   ::after der Menüpunkte hart aus (display:none !important, transform:none
   !important) und beim Überfahren hart ein (display:block, 8 px unter dem
   Text, #2ea8e5) – ohne Übergang. Ergebnis: Die Linie ploppt unter dem Wort
   auf und verschwindet wieder, dazu der 0,12-s-Farbwechsel. Und die Regel
   „aktiven Menüpunkt neutralisieren" setzt jeden aktuellen Punkt zurück auf
   Weiß – deshalb sah man nirgends, wo man ist. Dazu kommt: Das Menü besteht
   aus benutzerdefinierten Links, WordPress markiert nur /unternehmen/ und
   /privatpersonen/ selbst als aktuell, keine Fachseite, kein Register.
   Hier: dieselbe Idee, aber sauber – ein 2-px-Strich als ::after, immer
   vorhanden, wächst mit transform von links (nichts springt), Hellblau
   #31A4F8; der Punkt der aktuellen Seite (Body-Klasse p4-kontext-* aus dem
   PHP) trägt Strich und Farbe dauerhaft. Alles !important mit höherer
   Spezifität, weil die Regeln in post-2391.css ebenfalls !important tragen –
   sie bleiben stehen, greifen aber nicht mehr. */
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link {
  position: relative !important;
  border: 0 !important;
  transition: color .22s ease !important;
}

/* Schriftgrad: 16 px passten nicht mehr.
   Gemessen am 24.08.2026 auf /lehrer/ bei 1920 px Fensterbreite: Der
   Menücontainer ist 806 px breit, die sechs Punkte brauchten bei 16 px/600
   zusammen 830 px. JetMenu läuft mit `--roll-up` und klappt das Überzählige
   still in ein „···" — sichtbar war deshalb weder „FAQ" (display:none) noch,
   dass überhaupt etwas fehlt.
   Einzelbreiten bei 16 px: Home 80 · Firmenkunden 151 · Privatkunden 140 ·
   Lehrer & Beamte 167 · Kundenstimmen 168 · FAQ verborgen · „···" 43.
   Der neue Sammelpunkt „Öffentlicher Dienst" ist breiter als „Lehrer &
   Beamte", der Platz wird also noch knapper — deshalb 14 px. Das Padding
   (5 px je Seite) bleibt, es skaliert nicht mit.
   ⚠️ Wer hier wieder hochgeht, bekommt das „···" zurück, nicht einen
   Umbruch — der Fehler ist dann erneut unsichtbar. Nach jeder Änderung am
   Menü nachzählen, ob alle Punkte `display:flex` tragen. */
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link {
  font-size: 14px !important;
  letter-spacing: -.1px !important;
}
/* Sicherheitsnetz: Sollte das Roll-up-Skript trotz des gewonnenen Platzes
   noch einen Punkt einklappen, holt diese Regel ihn zurück und blendet das
   „···" aus. Ein leicht gedrängtes Menü ist besser als ein Menüpunkt, der
   unsichtbar fehlt.
   ⚠️ JetMenu versteckt NICHT über eine Klasse, sondern setzt das Attribut
   `hidden="hidden"` am <li> — am 24.08.2026 am DOM abgelesen. Eine Regel auf
   `.jet-menu-hidden-item` o. ä. läuft ins Leere. Das Sammelelement ist
   `li.jet-responsive-menu-available-items`.
   Erst ab 1400 px, weil dort nachweislich Platz ist (Container 806 px,
   sechs Punkte bei 14 px rund 730 px). Darunter darf das Roll-up arbeiten. */
@media (min-width: 1400px) {
  /* ⚠️ `:not(.jet-responsive-menu-available-items)` ist Pflicht, nicht Zierde.
     Das „···"-Sammelelement trägt selbst `.jet-menu-item` UND `hidden`.
     Ohne den Ausschluss blendet diese Regel es wieder ein — am 25.08.2026
     genau so gemessen: 42 × 38 px sichtbar, obwohl leer. Und der Ausschluss
     gehört HIERHIN, nicht in eine zweite Regel daneben: beide hätten dieselbe
     Spezifität (0,4,0), das Ergebnis hinge an der Quelltextreihenfolge. */
  .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item[hidden]:not(.jet-responsive-menu-available-items) {
    display: flex !important;
  }
  .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item.jet-responsive-menu-available-items {
    display: none !important;
  }
}

/* ---------- 17b. Aufklappmenü „Öffentlicher Dienst" ----------------------- */
/* Gemessen 25.08.2026: JetMenu liefert das Untermenü mit `background:#fff` —
   auf der schwarzen Kopfzeile ein weißer Kasten, der wie ein Fehler aussieht.
   Hier ein dunkles Panel in der Farbwelt der Leiste, mit einer Erklärzeile je
   Eintrag. Die Zeilen kommen per ::after aus dem CSS statt aus dem WP-Menü:
   WordPress' Menübeschreibung („description") gibt JetMenu in dieser
   Widget-Einstellung nicht aus, und ein zweites Feld im Menü zu pflegen, das
   niemand im Backend sieht, geht beim nächsten Umbau verloren. */
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .jet-sub-menu {
  background: linear-gradient(160deg, #141c2e 0%, #182036 100%) !important;
  border: 1px solid rgba(111, 207, 236, .16) !important;
  border-radius: 14px !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .45) !important;
  padding: 8px !important;
  min-width: 320px !important;
  overflow: hidden;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .jet-sub-menu > .jet-menu-item {
  border: 0 !important;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .jet-sub-menu > .jet-menu-item > a {
  display: block !important;
  padding: 13px 16px !important;
  border-radius: 10px !important;
  background: transparent !important;
  color: #eaf2fb !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  transition: background .2s ease, color .2s ease !important;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .jet-sub-menu > .jet-menu-item > a:hover {
  background: rgba(111, 207, 236, .12) !important;
  color: #fff !important;
}
/* Erklärzeile je Ziel. Der Selektor hängt am href, nicht an der Reihenfolge —
   ein umsortiertes Menü darf die Zeilen nicht vertauschen. */
.elementor-2391 .elementor-element-c1ef6ed .jet-menu .jet-sub-menu > .jet-menu-item > a::after {
  display: block;
  margin-top: 3px;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.45;
  color: #9db4cf;
  white-space: normal;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu .jet-sub-menu > .jet-menu-item > a[href$="paladinum.de/lehrer/"]::after {
  content: "Beihilfe, Dienstunfähigkeit, Pension";
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu .jet-sub-menu > .jet-menu-item > a[href*="paladinum-soldatenservice.de"]::after {
  content: "Eigener Auftritt für Bundeswehrangehörige ↗";
  color: #6fcfec;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu .jet-sub-menu > .jet-menu-item > a[href*="paladinum-soldatenservice.de"]:hover::after {
  color: #9fe0f5;
}
/* Der Elternpunkt bleibt markiert, solange das Untermenü offen ist —
   sonst springt der Strich beim Hinuntergleiten weg. */
body.p4-kontext-oedienst .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item.jet-current-menu-ancestor > .top-level-link {
  color: #31A4F8 !important;
}
body.p4-kontext-oedienst .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item.jet-current-menu-ancestor > .top-level-link::after {
  transform: scaleX(1) !important;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item:hover > .top-level-link {
  border: 0 !important;
  color: #fff !important;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link::after,
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link:hover::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 5px !important; right: 5px !important; bottom: 4px !important;
  width: auto !important;
  height: 2px !important;
  border-radius: 2px;
  background: #31A4F8 !important;
  opacity: 1 !important;
  transform: scaleX(0) !important;
  transform-origin: left center;
  transition: transform .28s cubic-bezier(.4, 0, .2, 1) !important;
  pointer-events: none;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item:hover > .top-level-link::after,
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link:hover::after {
  transform: scaleX(1) !important;
}
/* Aktueller Bereich: Firmenkunden (Register, Fachseiten, /unternehmen/),
   Privatkunden (/privatpersonen/, Ratgeber, Servicehonorar), Startseite.
   „Kundenstimmen" und „FAQ" sind Anker der Startseite – dort ist nur „Home"
   markiert. */
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item.jet-current-menu-item > .top-level-link,
body.p4-kontext-firmen .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href$="paladinum.de/unternehmen/"],
body.p4-kontext-privat .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href$="paladinum.de/privatpersonen/"],
body.p4-kontext-oedienst .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href$="paladinum.de/oeffentlicher-dienst/"],
body.p4-kontext-home .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href="https://paladinum.de/"] {
  color: #31A4F8 !important;
}
.elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item.jet-current-menu-item > .top-level-link::after,
body.p4-kontext-firmen .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href$="paladinum.de/unternehmen/"]::after,
body.p4-kontext-privat .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href$="paladinum.de/privatpersonen/"]::after,
body.p4-kontext-oedienst .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href$="paladinum.de/oeffentlicher-dienst/"]::after {
  transform: scaleX(1) !important;
}
/* ⚠️ Die Startseiten-Regel steht bewusst NICHT in der Liste darüber, sondern
   hier allein: sie trifft `[href="https://paladinum.de/"]`, und dieser Punkt
   ist auf JEDER Seite vorhanden. Zusammengefasst mit den anderen wäre sie
   identisch spezifisch, das Verhalten hinge dann an der Quelltextreihenfolge. */
body.p4-kontext-home .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href="https://paladinum.de/"]::after {
  transform: scaleX(1) !important;
}

/* Der Bereich „Öffentlicher Dienst" darf NICHT zusätzlich „Firmenkunden"
   markieren. Das PHP liefert dafür seit 24.08.2026 einen eigenen Kontext; die
   Regel hier ist der zweite Riegel, falls die Body-Klasse einmal ausfällt
   (etwa weil ein Plugin `body_class` überschreibt). Ohne sie leuchteten auf
   /lehrer/ zwei Punkte gleichzeitig. */
body.p4-kontext-oedienst .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link[href$="paladinum.de/unternehmen/"] {
  color: #f0f0f0 !important;
}
body.p4-kontext-oedienst .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item:not(:hover) > .top-level-link[href$="paladinum.de/unternehmen/"]::after {
  transform: scaleX(0) !important;
}
@media (prefers-reduced-motion: reduce) {
  .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link,
  .elementor-2391 .elementor-element-c1ef6ed .jet-menu > .jet-menu-item > .top-level-link::after { transition: none !important; }
}

/* ---------- 18. Sparten-Block über dem Fußbereich ------------------------ */
/* Gemessen 19.08.2026: Der Elementor-Fußbereich trägt 19 Links und keinen
   einzigen auf eine Fachseite. Der Block ergänzt 27 – alle 23 Register-
   einträge plus die vier Privatkunden-Ratgeber – damit jede Seite von jeder
   erreichbar ist.

   Farben aus der Umgebung übernommen statt neu gesetzt: Grund #181818 (body),
   Text #f0f0f0, Schrift Montserrat, Links 14 px, Überschriften als Versalien-
   Kicker – so wie „RECHTLICHES" im bestehenden Fußbereich, nur kleiner, weil
   sechs Spalten nebeneinander stehen.

   Kein JavaScript: WP Rocket hält Skripte bis zur ersten Interaktion zurück,
   ein aufklappbarer Block wäre bis dahin unbedienbar. Das Raster fällt
   stattdessen von sechs über drei auf zwei Spalten. */
#p4fuss {
  background: #181818;
  border-top: 1px solid rgba(240, 240, 240, .12);
  font-family: Montserrat, sans-serif;
  padding: 44px 24px 8px;
}
.p4fuss-innen {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  /* auto-fit statt fester Spaltenzahl: Die Zahl der Spalten haengt davon ab,
     welche Registerarten belegt und veroeffentlicht sind. Mit repeat(6, …)
     bliebe eine Luecke, sobald eine Spalte leer ist oder dazukommt. */
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  gap: 28px 24px;
}
.p4fuss-titel {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #7fb4e0;
}
.p4fuss-liste { margin: 0; padding: 0; list-style: none; }
.p4fuss-liste li { margin: 0 0 9px; }
.p4fuss-liste a,
.p4fuss-hier {
  font-size: 13.5px;
  line-height: 1.45;
  text-decoration: none;
  display: inline-block;
  /* „Betriebsunterbrechungsversicherung" ist 34 Zeichen und schob sich ohne
     das hier in die Nachbarspalte. hyphens greift, weil <html lang="de">
     gesetzt ist; overflow-wrap fängt den Rest. */
  hyphens: auto;
  overflow-wrap: break-word;
  max-width: 100%;
}
.p4fuss-liste a {
  color: rgba(240, 240, 240, .82);
  border-bottom: 1px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
.p4fuss-liste a:hover,
.p4fuss-liste a:focus-visible {
  color: #fff;
  border-bottom-color: rgba(127, 180, 224, .7);
}
.p4fuss-liste a:focus-visible { outline: 2px solid #9ec5e8; outline-offset: 3px; }
/* Die Seite, auf der der Block steht: sichtbar, aber nicht anklickbar. */
.p4fuss-hier { color: #fff; font-weight: 600; }

@media (max-width: 1100px) {
  .p4fuss-innen { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 20px; }
}
@media (max-width: 640px) {
  #p4fuss { padding: 32px 18px 4px; }
  .p4fuss-innen { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
  .p4fuss-titel { font-size: 11px; margin-bottom: 9px; }
  .p4fuss-liste a, .p4fuss-hier { font-size: 13px; }
  .p4fuss-liste li { margin-bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .p4fuss-liste a { transition: none; }
}


/* ── Knopfbeschriftungen, die auf hellen Grundfarben standen (20.08.2026) ──
   Zwei Elementor-Knoepfe trugen weisse Schrift auf hellen Markenfarben:
     38db98f  weiss auf #31a4f8 (Akzentblau)  = 2,69:1
     aef8a03  weiss auf #ff9900 (Orange)      = 2,14:1  <- Absenden-Knopf
   Beide bleiben in ihrer Farbe; nur die Schrift wird dunkel gesetzt. Das
   erhaelt die Signalwirkung und bringt 6,00:1 bzw. 7,55:1. */
.elementor-element-38db98f .elementor-button,
.elementor-element-38db98f .elementor-button-text,
.elementor-element-38db98f .elementor-button-icon,
.elementor-element-aef8a03 .elementor-button,
.elementor-element-aef8a03 .elementor-button-text,
.elementor-element-aef8a03 .elementor-button-icon,
.elementor-element-aef8a03 button[type="submit"],
.elementor-element-aef8a03 input[type="submit"] {
  color: #182036 !important;
}
