/*
 * 123Doc.hu — Ergänzungs-CSS für den statischen Klon.
 * Ersetzt Verhalten, das im Original von Elementor-JS kam:
 * Popup-Overlay, Mobilmenü, Dropdown-Hover, eicon-Ersatz, Sprachumschalter.
 */

/* ---------- Popups ------------------------------------------------------ */

[data-elementor-type="popup"] {
  display: none;
}

[data-elementor-type="popup"].dpopup-open {
  display: flex;
  position: fixed;
  top: 0;            /* statt inset:0 — auch von altem Safari (<14.1) verstanden */
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .55);
  overflow-y: auto;
  padding: 20px;
  animation: dpopup-fade .3s ease;
}

[data-elementor-type="popup"].dpopup-open > .elementor-section-wrap,
[data-elementor-type="popup"].dpopup-open > .e-con,
[data-elementor-type="popup"].dpopup-open > div {
  max-height: 90vh;
  overflow-y: auto;
  max-width: min(720px, 100%);
  background: #fff;
  border-radius: 10px;
}

body.dpopup-scroll-lock {
  overflow: hidden;
}

/* Consent-Popup verdeckt ausführen (Original-Klasse) */
body.division-dsgvo-popup-hidden [data-elementor-id="1339"] {
  visibility: hidden;
}

@keyframes dpopup-fade {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: none; }
}

/* ---------- eicon-Ersatz (Menü/Schließen als Inline-SVG) --------------- */

.eicon-menu-bar::before,
.eicon-close::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask: var(--dicon) center / contain no-repeat;
  mask: var(--dicon) center / contain no-repeat;
}

.eicon-menu-bar::before {
  --dicon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v2H3zm0 6h18v2H3zm0 6h18v2H3z'/%3E%3C/svg%3E");
}

.eicon-close::before {
  --dicon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 6.4L6.4 5 12 10.6 17.6 5 19 6.4 13.4 12 19 17.6 17.6 19 12 13.4 6.4 19 5 17.6 10.6 12z'/%3E%3C/svg%3E");
}

/* ---------- Navigation: Dropdown ohne SmartMenus ------------------------ */

.elementor-nav-menu--main .menu-item-has-children > .sub-menu {
  display: none;
  position: absolute;
  z-index: 999;
}

.elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu,
.elementor-nav-menu--main .menu-item-has-children:focus-within > .sub-menu {
  display: block;
}

/* Mobilmenü: Dropdown-Container ein-/ausblenden */
.elementor-nav-menu--dropdown {
  display: none;
}

.elementor-nav-menu--dropdown.dmenu-open {
  display: block;
}

.elementor-nav-menu--dropdown .menu-item-has-children > .sub-menu {
  display: none;
}

.elementor-nav-menu--dropdown .dsub-open > .sub-menu {
  display: block;
}

/* ---------- Sticky-Header (Ersatz für jquery.sticky) -------------------- */
/* sticky muss auf dem header-Element selbst liegen: ein sticky-Kind
   innerhalb des Headers hätte keinen Scrollraum und scrollt einfach mit. */

header.elementor-location-header {
  position: -webkit-sticky;   /* Safari < 13 */
  position: sticky;
  top: 0;
  z-index: 1000;
}

.dsticky-top {
  position: -webkit-sticky;   /* Safari < 13 */
  position: sticky;
  top: 0;
  /* unter dem Header (1000): sticky Inhaltsblöcke (z. B. Kontaktkarte im
     Arzt-/Klinikprofil) sollen beim Scrollen HINTER die Menüzeile laufen. */
  z-index: 900;
}

/* ---------- Sprachumschalter (im Header, TRP-v2-Mechanik) --------------- */
/* Auf/Zu läuft über die is-open-Klasse + hidden/inert-Attribute
   (js/lang-switcher.js); Grund-Optik kommt aus trp-language-switcher-v2.css.
   Der Umschalter sitzt rechts im Header (statt floating unten rechts);
   das Dropdown öffnet nach unten. */

/* Spezifität > .trp-switcher-position-top.trp-floating-switcher (setzt top:0) */
header nav.d-header-switcher.trp-floating-switcher {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  bottom: auto;
  /* Muss über dem DSGVO-Consent-Popup liegen ([data-elementor-type="popup"].dpopup-open,
     z-index: 9999, siehe oben), sonst ist der Umschalter bei jedem Erstbesuch
     (Cookie "dsgvo" fehlt) unerreichbar – v.a. mobil auffällig, weil dort
     praktisch jeder Testaufruf ein Erstbesuch ist. Sprache soll VOR dem
     Wegklicken des Consent-Hinweises wählbar sein. Großzügiger Puffer über
     9999, falls künftig weitere Overlays dazukommen. */
  z-index: 100000;
}

/* Geschlossen kompakt (nur Flagge), damit der letzte Menüpunkt frei bleibt;
   Sprachnamen erscheinen erst in der aufgeklappten Liste. */
header .d-header-switcher .trp-language-item__current .trp-language-item-name {
  display: none;
}

header nav.d-header-switcher.trp-floating-switcher {
  border-radius: 8px;
  overflow: visible; /* Dropdown-Overlay darf herausragen */
}

/* Liste als Overlay unter dem Pill: bestimmt die Nav-Breite nicht mehr mit */
header .d-header-switcher .trp-switcher-dropdown-list {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 6px;
  background: var(--bg, #000);
  border-radius: 8px;
  padding: 6px 0;
  white-space: nowrap;
  min-width: max-content;
  max-height: none; /* TRP-Klapp-Animation aus — wir schalten hart um */
}

/* Zugeklappt komplett weg (TRPs display:flex würde das hidden-Attribut
   überstimmen und ließe einen schwarzen Streifen unter dem Pill stehen) */
header .d-header-switcher .trp-switcher-dropdown-list[hidden] {
  display: none !important;
}

/* Der ganze Pill ist klickbar — auch so aussehen lassen */
header nav.d-header-switcher,
header .d-header-switcher .trp-language-item__current {
  cursor: pointer;
}

header .d-header-switcher .trp-switcher-dropdown-list .trp-language-item-name {
  overflow: visible;
  text-overflow: clip;
  max-width: none;
}

@media (max-width: 767px) {
  /* Mobil bleibt der Umschalter ebenfalls in der Kopfzeile, rechts neben dem
     Menü-Button. Früher schwebte er fixiert unten rechts über dem Inhalt und
     verdeckte ihn (Nutzeranweisung 2026-09-22: darf nichts verdecken). Der
     nötige Platz wird über --padding-right der Kopfzeile reserviert (s. u.). */
  header nav.d-header-switcher.trp-floating-switcher {
    right: 12px;
  }
}

/* Bei geöffnetem Mobil-/Tablet-Menü (Popup 205) den Umschalter ausblenden:
   er liegt mit z-index 100000 bewusst über dem Consent-Popup, würde aber
   sonst den Schließen-Button des Menüs anschneiden. (2026-09-22) */
body:has([data-elementor-type="popup"][data-elementor-id="205"].dpopup-open) header nav.d-header-switcher {
  visibility: hidden;
  pointer-events: none;
}

/* Platz für den Umschalter reservieren (2026-09-22): Die Kopfzeile bekommt
   rechts so viel Innenabstand, dass weder der letzte Menüpunkt (Desktop) noch
   der Menü-Button (Tablet/Mobil) unter dem absolut positionierten Umschalter
   liegen. Vorher überdeckte er „Terapeuták" (Desktop, 11 px) bzw. den
   Menü-Button (Tablet, 28 px). Umschalter: 52 px breit, right: 16 px. */
header.elementor-location-header .elementor-element.elementor-element-29e7e2a {
  --padding-right: 88px;
}

@media (max-width: 767px) {
  header.elementor-location-header .elementor-element.elementor-element-29e7e2a {
    --padding-right: 76px;
  }
}

/* Footer-Menü auf Tablet (2026-09-22): Die vier Punkte liefen zwischen
   768 und ca. 890 px über den rechten Rand hinaus, weil das Menü-Widget nicht
   schrumpfen durfte. Jetzt: Zeile untereinander wie mobil, Menü darf umbrechen,
   Schrift etwas kleiner. */
@media (max-width: 1024px) {
  footer.elementor-location-footer .elementor-element.elementor-element-b531544 {
    --flex-direction: column;
    --align-items: center;
    --justify-content: center;
  }

  footer.elementor-location-footer .elementor-element.elementor-element-f987cd7.elementor-element {
    --flex-shrink: 1;
    flex-shrink: 1;
    max-width: 100%;
    min-width: 0;
  }

  footer.elementor-location-footer .elementor-element.elementor-element-f987cd7 .elementor-nav-menu--main .elementor-nav-menu {
    flex-wrap: wrap;
    justify-content: center;
  }

  footer.elementor-location-footer .elementor-element.elementor-element-f987cd7 .elementor-nav-menu--main .elementor-item {
    font-size: 15px;
    padding-left: 8px;
    padding-right: 8px;
  }
}

/* Mobilmenü-Popup (205): Der einzige verbliebene Button ist der Kontakt-Button
   (Button2–4 waren Platzhalter und wurden am 2026-09-22 auf allen Seiten
   entfernt). Er nutzt den globalen Button-Stil aus kit.css wie alle anderen
   Buttons der Website; Inhalt zentriert statt linksbündig. */
.elementor-205 .elementor-element.elementor-element-af6f906 .elementor-button .elementor-button-content-wrapper {
  justify-content: center;
}

/* TRP-Sprach-Erkennungs-Popup (ALD) ist im Klon nicht aktiv -> ausblenden. */
[id^="trp_ald_"] {
  display: none !important;
}

/* ---------- Einblend-Animationen (Basisklasse) --------------------------- */

.animated {
  animation-duration: 1.25s;
  animation-fill-mode: both;
}

@media (prefers-reduced-motion: reduce) {
  .animated {
    animation: none;
  }
}

/* ---------- Rechtliche Hinweise (Expertise 2026-07-07) ------------------ */

.d-list-hinweis {
  font: 400 15px/1.5 'Inter', sans-serif;
  color: #444;
  margin: 8px 0 0;
}

.d-medical-disclaimer {
  background: #F8F8F8;
  padding: 14px 20px;
  text-align: center;
}

.d-medical-disclaimer p {
  font: 400 14px/1.5 'Inter', sans-serif;
  color: #333;
  max-width: 1480px;
  margin: 0 auto;
}

/* ---------- Redaktion, Fachzeile, Paket-Badge, Grundsätze --------------- */

.d-redaktion,
.d-fachzeile {
  max-width: 1480px;
  margin: 0 auto;
  padding: 24px 20px;
}

.d-redaktion h2 {
  font: 700 22px/1.25 'Inter', sans-serif;
  margin: 0 0 8px;
}

.d-redaktion p,
.d-fachzeile p {
  font: 400 15px/1.6 'Inter', sans-serif;
  color: #333;
  margin: 0;
}

.d-fachzeile {
  border-top: 1px solid #0000001A;
}

.d-paket-badge {
  max-width: 1480px;
  margin: 12px auto 0;
  padding: 0 20px;
}

.d-paket-badge span {
  display: inline-block;
  background: #D8E6FD;
  color: #3D76BB;
  font: 600 13px/1 'Inter', sans-serif;
  padding: 6px 12px;
  border-radius: 10px;
}

.d-grundsaetze {
  max-width: 900px;
  margin: 0 auto;
  padding: 48px 20px 64px;
  font: 500 17px/1.6 'Inter', sans-serif;
}

.d-grundsaetze h1 {
  font: 800 40px/1.2 'Inter', sans-serif;
  letter-spacing: -1px;
  margin: 0 0 24px;
}

.d-grundsaetze ol {
  padding-left: 22px;
}

.d-grundsaetze li {
  margin-bottom: 14px;
}

.d-grundsaetze a {
  color: #3D76BB;
}

/* ---------- Prominenter medizinischer Disclaimer -------------------------- */
/* Startseite: auffällige, aber designkonforme Band ganz oben.
   Profil-/Fachseiten: unübersehbare Kurzform-Box. Beide ohne Rot (nicht
   alarmierend); fetter Lead-in „Wichtiger Hinweis". */

.d-home-disclaimer {
  background: #eef4fb;
  border-top: 1px solid #cfe0f2;
  border-bottom: 1px solid #cfe0f2;
}

.d-home-disclaimer p {
  max-width: 1480px;
  margin: 0 auto;
  padding: 15px 20px;
  font: 500 15px/1.55 'Inter', sans-serif;
  color: #33475b;
  text-align: center;
}

.d-profile-disclaimer {
  max-width: 1480px;
  margin: 14px auto 0;
  padding: 13px 18px;
  background: #eef4fb;              /* hell, nicht alarmierend (kein Rot) */
  border-left: 4px solid #3D76BB;   /* Akzentlinie */
  border-radius: 0 8px 8px 0;
}

.d-profile-disclaimer p {
  font: 400 14.5px/1.5 'Inter', sans-serif;
  color: #33475b;
  margin: 0;
}

.d-home-disclaimer strong,
.d-profile-disclaimer strong {
  color: #3D76BB;   /* Lead-in „Wichtiger Hinweis" hervorgehoben */
}

/* ---------- Nicht freigegebene Profile (kontrollierter Soft-Launch) ------- */
/* Inhalt der Arzt-Detailseite unkenntlich: gleichmäßiger Blur — die große
   Namensüberschrift bleibt gerade noch erkennbar, der Fließtext ist nicht mehr
   lesbar. pointer-events:none macht die Akkordeons (<details>) nicht
   aufklappbar und alle Links/Kontaktdaten unbedienbar. */

body.d-locked {
  position: relative;   /* Bezug für den absolut platzierten Hinweisbalken */
}

body.d-locked [data-elementor-type="single-post"] {
  filter: blur(6.6px);
  -webkit-filter: blur(6.6px);
  pointer-events: none;
  user-select: none;
}

/* Hinweisbalken „noch nicht freigegeben" — quer über der Ansicht, fest im
   Blick beim Scrollen; im Rot der rechtlichen Hinweise (#9b1c1c). Liegt unter
   Header/Beta-Störer (z-index), aber über dem verwischten Inhalt; pointer-
   events:none, damit die Navigation frei bleibt. */
.d-lock-banner {
  /* absolut am Seiteninhalt verankert (nicht position:fixed) — rendert per
     Doppelklick (file://) und im Standalone-iframe identisch. */
  position: absolute;
  top: 38%;
  left: -8%;
  width: 116%;
  transform: rotate(-7deg);
  z-index: 950;
  pointer-events: none;
  background: #9b1c1c;
  color: #fff;
  text-align: center;
  padding: 14px 0;
  font: 800 clamp(18px, 3.2vw, 30px)/1.2 'Inter', sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  box-shadow: 0 6px 26px rgba(0, 0, 0, .3);
}

@media print {
  .d-lock-banner { display: none; }
}

/* Sitebreiter "Beta-Version"-Störer, wiederhergestellt am 2026-09-18 auf
   ausdrücklichen Nutzerwunsch (trotz "vollständig live"-Beschluss weiterhin
   gewünscht — beide Festlegungen bestehen unabhängig nebeneinander: keine
   noindex-Einträge betrifft die Suchmaschinen-Indexierung, dieser Störer ist
   rein visuell für Website-Besucher). Fest oben links, diagonal, liegt über
   dem .d-lock-banner (z-index 2000 > 950). Zentral hier definiert statt wie
   im alten Export pro Seite inline dupliziert. */
.d-beta-stoerer {
  position: fixed;
  top: 0;
  left: 0;
  width: 150px;
  height: 150px;
  overflow: hidden;
  pointer-events: none;
  z-index: 2000;
}

.d-beta-stoerer span {
  position: absolute;
  display: block;
  width: 220px;
  top: 34px;
  left: -56px;
  transform: rotate(-45deg);
  background: #9b1c1c;
  color: #fff;
  text-align: center;
  font: 700 13px/1.3 'Inter', Arial, sans-serif;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 7px 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .28);
}

/* Desktop: 50% groesser fuer bessere Sichtbarkeit (Nutzerwunsch 2026-09-18).
   Ueber transform:scale skaliert, damit Ribbon-Proportionen (Winkel, Text,
   Schatten) exakt erhalten bleiben; Ankerpunkt oben links, damit die Ecke bei
   0/0 fixiert bleibt. Mobil (<768px) bewusst unverändert. */
@media (min-width: 768px) {
  .d-beta-stoerer {
    transform: scale(1.5);
    transform-origin: top left;
  }
}

@media (max-width: 767px) {
  .d-beta-stoerer { width: 112px; height: 112px; }
  .d-beta-stoerer span { width: 172px; top: 26px; left: -48px; font-size: 10px; letter-spacing: 1px; padding: 5px 0; }
}

@media print {
  .d-beta-stoerer { display: none; }
}

/* Nicht freigegebene Einträge in Listen/Kacheln (Startseite + Übersicht):
   minimaler Blur — Name und Bild bleiben gerade noch erkennbar — plus dezenter
   Hinweisbalken. Der Balken ist ein eigenes Kind der Karte und wird daher nicht
   mitverwischt. */
.d-card-locked {
  position: relative;
  overflow: hidden;
}

.d-card-locked > div:not(.d-card-banner) {
  filter: blur(3.3px);
  -webkit-filter: blur(3.3px);
}

/* Hinweisbalken diagonal quer über die Kachel, 60 % Deckung — einheitlich
   auf Startseite UND Übersichtsseite. */
.d-card-banner {
  position: absolute;
  top: 50%;
  left: -20%;
  right: auto;
  width: 140%;
  transform: translateY(-50%) rotate(-16deg);
  z-index: 6;
  pointer-events: none;
  background: rgba(155, 28, 28, .60);
  color: #fff;
  text-align: center;
  padding: 7px 0;
  font: 700 12px/1.3 'Inter', sans-serif;
  letter-spacing: .06em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}

/* Partner-Slider: noch nicht freigegebene Partner-Logos unkenntlich machen
   (starker Blur) + „In Arbeit"-Balken. Nur das Logo (<img>) wird verwischt,
   der Balken ist ein separates Kind der <figure> und bleibt scharf. */
.d-slide-locked {
  position: relative;
  overflow: hidden;
}

.d-slide-locked img {
  filter: blur(14px);
  -webkit-filter: blur(14px);
}

/* diagonaler roter Balken quer über die Kachel — wie bei den Profil-Kacheln. */
.d-slide-banner {
  position: absolute;
  top: 50%;
  left: -25%;
  right: auto;
  width: 150%;
  transform: translateY(-50%) rotate(-16deg);
  z-index: 3;
  pointer-events: none;
  background: rgba(155, 28, 28, .9);
  color: #fff;
  text-align: center;
  padding: 6px 0;
  font: 700 13px/1.3 'Inter', sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}

/* ---------- Impressum ---------------------------------------------------- */

.d-impressum {
  max-width: 900px;
  margin: 0 auto;
  padding: 48px 20px 64px;
  font: 500 17px/1.6 'Inter', sans-serif;
  color: #222;
}

.d-impressum h1 {
  font: 800 40px/1.2 'Inter', sans-serif;
  letter-spacing: -1px;
  margin: 0 0 24px;
}

.d-impressum h2 {
  font: 700 22px/1.3 'Inter', sans-serif;
  margin: 32px 0 8px;
}

.d-impressum p {
  margin: 0 0 12px;
}

.d-impressum a {
  color: #3D76BB;
}

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

.elementor-message {
  margin-top: 12px;
  padding: 10px 16px;
  border-radius: 10px;
  font: 500 16px/1.5 'Inter', sans-serif;
}

.elementor-message-success {
  background: #D1F1ED;
  color: #0a6e63;
}

.elementor-message-danger {
  background: #fde2e2;
  color: #9b1c1c;
}

/* ---------- Markenfarben = Logo-Farben (2026-09-22) ---------------------- */
/* Gemessen im Original-Logo (Logo-dockereső.png): Blau #3D76BB, Grün #67B55C.
   Die Kit-Tokens (kit.css: #296CB0 / #649E64) werden hier überschrieben, damit
   Buttons, Links, aktive Menüpunkte und Akzente sitebreit dem Logo entsprechen. */

.elementor-kit-5 {
  --e-global-color-primary: #3D76BB;
  --e-global-color-5fcf3f1: #67B55C;
}

/* ---------- Buttons sitebreit (2026-09-22, Nutzervorgabe) ---------------- */
/* Normal: Blau mit weißer Schrift. Hover/Fokus auf weißem oder hellgrauem
   Grund: Hellblau (#D1F1ED) mit blauer Schrift. Auf hellblauem Grund: Weiß mit
   blauer Schrift. Gilt für alle Elementor-Buttons und Formular-Absendebuttons
   außer dem Consent-Popup (1339), das sein Schwarz/Weiß-Schema behält.
   Ersetzt frühere Sonderfarben: weiße Zweitbuttons (Therapieseiten), türkiser
   Startseiten-Button, grauer Hover und der beim Kontaktformular im Hover weiß
   bleibende (unsichtbare) Text. Spezifität bewusst hoch (.elementor-element
   zusätzlich), weil Loop-Templates ihre Button-CSS als Inline-<style> im Body
   nach custom.css laden und Formular-Regeln [type=submit]:hover nutzen. */

.elementor-kit-5 .elementor-element.elementor-widget-button:not([data-elementor-id="1339"] *) .elementor-button,
.elementor-kit-5 .elementor-element.elementor-widget-form:not([data-elementor-id="1339"] *) .elementor-field-type-submit .elementor-button[type="submit"] {
  background-color: var(--e-global-color-primary);
  color: #FFFFFF;
  fill: #FFFFFF;
  border-width: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.elementor-kit-5 .elementor-element.elementor-widget-button:not([data-elementor-id="1339"] *) .elementor-button:hover,
.elementor-kit-5 .elementor-element.elementor-widget-button:not([data-elementor-id="1339"] *) .elementor-button:focus-visible,
.elementor-kit-5 .elementor-element.elementor-widget-form:not([data-elementor-id="1339"] *) .elementor-field-type-submit .elementor-button[type="submit"]:hover,
.elementor-kit-5 .elementor-element.elementor-widget-form:not([data-elementor-id="1339"] *) .elementor-field-type-submit .elementor-button[type="submit"]:focus-visible {
  background-color: var(--e-global-color-7518c7a);
  color: var(--e-global-color-primary);
  fill: var(--e-global-color-primary);
}

.elementor-kit-5 .elementor-element.elementor-widget-button:not([data-elementor-id="1339"] *) .elementor-button:hover svg,
.elementor-kit-5 .elementor-element.elementor-widget-button:not([data-elementor-id="1339"] *) .elementor-button:focus-visible svg {
  fill: var(--e-global-color-primary);
}

/* Buttons, die auf hellblauem Grund stehen: Hover Weiß statt Hellblau.
   Startseite „Csatlakozz a hálózathoz" (Widget 87149ee, Container #D8E6FD). */
.elementor-kit-5 .elementor-element.elementor-widget-button.elementor-element-87149ee .elementor-button:hover,
.elementor-kit-5 .elementor-element.elementor-widget-button.elementor-element-87149ee .elementor-button:focus-visible {
  background-color: #FFFFFF;
}
