/* Kanzlei Wiedner: Sticky-Header auf dem Elementor-Template-Wrapper */
.elementor-location-header {
  position: sticky;
  top: 0;
  z-index: 100;
}
body.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .elementor-location-header { top: 46px; }
}

/* Mobilmenü: Dropdown als Overlay unter dem Header, nicht im Fluss */
.elementor-41 .elementor-widget-nav-menu .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  z-index: 200;
  background: #f4f5f6;
  box-shadow: 0 24px 48px -24px rgba(30, 36, 41, 0.45);
}

/* Typografie läuft ab jetzt ZENTRAL über Elementor v4:
   - Größen/Farben/Abstände = Variablen (fs-*, space-*, Palette)
   - Rollen = Global Classes (text-h1 … text-label, marker-num, link-cta)
   Die frühere !important-Typo-Skala wurde entfernt. Nur der Wortumbruch-Schutz
   bleibt als saubere, nicht überschreibende Utility. */
.elementor-element { overflow-wrap: break-word; }

/* ---- MENÜ ---------------------------------------------------------------
   Desktop: Haupt- UND Untermenü einheitlich (behebt „Untermenü größer“).
   Handy (Overlay-Container): eine Nummer größer, gut tippbar.            */
.elementor-41 .elementor-nav-menu a{ font-size: 16px !important; }

/* Handy/Tablet: Burger-Dropdown, an die Kachel-Sprache angelehnt.
   (v3-Widget → gezielte !important nötig; betrifft NICHT das Typo-Token-System.) */
@media (max-width: 1024px) {
  .elementor-41 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    left: auto !important;
    right: -6px !important;
    width: 66vw !important;
    max-width: 360px !important;
    margin-top: 6px !important;
    padding: 2px 0 8px;
    border: 1px solid #8a2f3b !important;
    border-radius: 4px !important;
    overflow: hidden !important;
  }
  /* Zeilen: Trennlinien wie Kachel-Ränder, große Tippfläche */
  .elementor-41 .elementor-nav-menu--dropdown .elementor-item {
    font-size: 19px !important;
    font-weight: 500 !important;
    color: #1e2429 !important;
    padding: 16px 26px !important;
    line-height: 1.15 !important;
    border-bottom: 1px solid #e2e5e8 !important;
  }
  /* Untermenü (Leistungen): einklappbar (Elementor-Standard-Pfeil), eingerückt, gedämpft */
  .elementor-41 .elementor-nav-menu--dropdown .elementor-sub-item {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: #626c75 !important;
    padding: 13px 26px 13px 44px !important;
    line-height: 1.15 !important;
    border-bottom: 1px solid #e2e5e8 !important;
  }
  .elementor-41 .elementor-nav-menu--dropdown > ul > li:last-child > .elementor-item { border-bottom: 0 !important; }
  /* Hover / aktive Seite: Akzent + linker Balken */
  .elementor-41 .elementor-nav-menu--dropdown .elementor-item:hover,
  .elementor-41 .elementor-nav-menu--dropdown .elementor-sub-item:hover,
  .elementor-41 .elementor-nav-menu--dropdown .current-menu-item > .elementor-item,
  .elementor-41 .elementor-nav-menu--dropdown .current-menu-item > .elementor-sub-item,
  .elementor-41 .elementor-nav-menu--dropdown .elementor-item-active {
    color: #8a2f3b !important;
    background: #eef0f2 !important;
    box-shadow: inset 3px 0 0 #8a2f3b;
  }
}

/* ---- Desktop-Menü: schick (>1024) ------------------------------------
   Feiner Akzent-Unterstrich (wächst aus der Mitte), aktive Seite markiert,
   Leistungen-Dropdown als saubere Karte. */
@media (min-width: 1025px) {
  .elementor-41 .elementor-nav-menu--main .elementor-item {
    letter-spacing: .01em;
    transition: color .2s ease;
  }
  .elementor-41 .elementor-nav-menu--main .elementor-item::after {
    height: 2px !important;
    background: #8a2f3b !important;
    opacity: 1 !important;
    left: 20px !important;
    right: 20px !important;
    width: auto !important;
    bottom: 6px !important;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .28s cubic-bezier(.2, .7, .3, 1) !important;
  }
  .elementor-41 .elementor-nav-menu--main .elementor-item:hover::after,
  .elementor-41 .elementor-nav-menu--main .current-menu-item > .elementor-item::after,
  .elementor-41 .elementor-nav-menu--main .elementor-item-active::after {
    transform: scaleX(1);
  }
  .elementor-41 .elementor-nav-menu--main .current-menu-item > .elementor-item {
    color: #8a2f3b !important;
  }
  .elementor-41 .elementor-nav-menu--main .sub-menu {
    background: #ffffff !important;
    border: 1px solid #d6d8d9 !important;
    border-radius: 4px !important;
    box-shadow: 0 18px 40px -22px rgba(30, 36, 41, .4) !important;
    padding: 6px 0 !important;
    margin-top: 10px !important;
    min-width: 220px;
    overflow: hidden;
  }
  .elementor-41 .elementor-nav-menu--main .sub-menu .elementor-sub-item {
    padding: 11px 22px !important;
    color: #3a424a !important;
    transition: background .15s ease, color .15s ease;
  }
  .elementor-41 .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover {
    color: #8a2f3b !important;
    background: #f4f5f6 !important;
  }
}

/* ---- Zeitachse: Einlauf-Animation (NUR Handy) --------------------------
   Roter Punkt läuft an der senkrechten Linie von oben nach unten (3,5 s,
   gleichmäßig); die zwei Textblöcke leuchten nacheinander im Akzentrot auf,
   „Der Erbfall“ pulsiert. Endzustand = normales Layout. Start per
   IntersectionObserver (.anim-run, siehe kanzlei-timeline.js), wiederholbar.
   Akzent #8a2f3b; respektiert prefers-reduced-motion.                     */
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  .s-timeline-dot { position: relative; }
  .s-timeline-dot::before {
    content: "";
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: #8a2f3b;
    opacity: 0;
    pointer-events: none;
    box-shadow: 0 0 12px 2px rgba(138, 47, 59, 0.45);
  }
  .s-infobox.anim-run .s-timeline-dot::before {
    animation: tl-run 3.5s linear 0.15s both;
  }
  @keyframes tl-run {
    0%   { transform: translateY(-104px); opacity: 0; }
    8%   { opacity: 1; }
    92%  { opacity: 1; }
    100% { transform: translateY(104px);  opacity: 0; }
  }
  .s-infobox.anim-run .s-infobox-vor-txt  { animation: tl-flash-vor  0.9s ease-out 0.70s both; }
  .s-infobox.anim-run .s-timeline-label   { animation: tl-pulse      0.9s ease-out 1.75s both; }
  .s-infobox.anim-run .s-infobox-nach-txt { animation: tl-flash-nach 0.9s ease-out 2.85s both; }
  @keyframes tl-flash-vor  { 0%, 100% { color: #626c75; } 45% { color: #8a2f3b; } }
  @keyframes tl-flash-nach { 0%, 100% { color: #5c4046; } 45% { color: #8a2f3b; } }
  @keyframes tl-pulse      { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }
}

/* ---- Blogbeitrag: Inhalts-Typografie (klassisches HTML im post_content) ----
   Zwischenüberschriften + Zitate an das Design angleichen (Newsreader).
   Roher Inhalt (kein Elementor-Element) → gezielte Regeln, tw. !important gegen Theme-Defaults. */
.single-post .elementor-widget-theme-post-content h2,
.single-post .elementor-widget-theme-post-content h3,
.single-post .elementor-widget-theme-post-content h4 {
  font-family: 'Newsreader', Georgia, serif !important;
  color: #1e2429 !important;
  font-weight: 500 !important;
  line-height: 1.28 !important;
  letter-spacing: -.005em;
  margin: 1.9em 0 .5em;
}
.single-post .elementor-widget-theme-post-content h2 { font-size: clamp(23px, 3vw, 28px) !important; font-weight: 400 !important; }
.single-post .elementor-widget-theme-post-content h3 { font-size: clamp(20px, 2.4vw, 23px) !important; }
.single-post .elementor-widget-theme-post-content h4 { font-size: clamp(18px, 2vw, 20px) !important; }
.single-post .elementor-widget-theme-post-content > .elementor-widget-container > *:first-child { margin-top: 0 !important; }
.single-post .elementor-widget-theme-post-content p {
  font-family: 'Hanken Grotesk', sans-serif !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: #3a424a !important;
  margin: 0 0 1.1em !important;
}
.single-post .elementor-widget-theme-post-content blockquote {
  font-family: 'Newsreader', Georgia, serif !important;
  font-style: italic !important;
  font-size: clamp(18px, 2.2vw, 20px) !important;
  line-height: 1.5 !important;
  color: #1e2429 !important;
  border-left: 3px solid #8a2f3b;
  padding: 2px 0 2px 20px;
  margin: 1.6em 0;
}
.single-post .elementor-widget-theme-post-content blockquote p {
  font: inherit !important; color: inherit !important; margin: 0 !important;
}
.single-post .elementor-widget-theme-post-content a {
  color: #8a2f3b;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.single-post .elementor-widget-theme-post-content ul,
.single-post .elementor-widget-theme-post-content ol {
  font-family: 'Hanken Grotesk', sans-serif !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  color: #3a424a !important;
  margin: 0 0 1.1em !important;
  padding-left: 1.3em;
}
.single-post .elementor-widget-theme-post-content li { margin: .3em 0; }
.single-post .elementor-widget-theme-post-content strong,
.single-post .elementor-widget-theme-post-content b { font-weight: 600; }
