/* Globale Tastaturfokus-Regeln. Dieses Stylesheet wird zuletzt geladen. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
[role="button"]:focus-visible {
  outline: 2px solid var(--konvex-accent);
  outline-offset: 2px;
  border-radius: 3px;
}

.btn-primary:focus-visible,
.cta-button:focus-visible,
.hl-cta:focus-visible,
.btn-action:focus-visible,
.mobile-cta:focus-visible,
.bsr-mode-btn:focus-visible,
.fxd-hero__btn:focus-visible,
.fxd-download__btn:focus-visible {
  outline: 3px solid var(--konvex-accent);
  outline-offset: 3px;
}

#bsr-hero a:focus-visible,
#bsr-hero button:focus-visible,
#bsr-hero input:focus-visible,
#konvex-footer a:focus-visible,
.fx-page-wrapper [data-section-theme="dark"] a:focus-visible,
.fx-page-wrapper [data-section-theme="dark"] button:focus-visible {
  outline-color: #5cc7ff;
}

.feature-card:focus-visible,
.module-card:focus-visible,
.indicator-article:focus-visible,
.nav-item-dropdown > [role="button"]:focus-visible {
  outline: 2px solid var(--konvex-accent);
  outline-offset: 4px;
}

/* Abgeschlossene Lerntitel bleiben als Nachschlagewerk lesbar.
   Gemeinsame Kaskadenkorrektur für Kurs-/Themenlisten und Lektionsnavigation:
   BuddyBoss assets/css/learndash.css setzt dieselbe Durchstreichung an vier
   Stellen. Nur diese Textdekoration wird überschrieben; Status, Häkchen und
   Fortschritt bleiben bei LearnDash. Keine eigenen Kurs-Templates nötig. */
#learndash-content .bb-completed-item,
.learndash-wrapper .ld-table-list .ld-table-list-items div.ld-table-list-item a.ld-table-list-item-preview.learndash-complete .ld-topic-title,
.learndash-wrapper .ld-table-list-item.learndash-complete .ld-item-title > span:first-child,
.learndash-wrapper .learndash-complete .ld-item-list-item-preview .ld-item-title > span:first-child {
  text-decoration: none;
}

/* Kurskartentitel in Katalog, eigener Kursübersicht und Gruppen: BuddyBoss
   (#page .bb-course-title a) kombiniert zwei Zeilen mit text-overflow, erlaubt
   aber keinen Umbruch im Wort. Lange Titel wie "Fremdwährungsrisiko absichern"
   wurden dadurch je Zeile mit Ellipse gekappt. Silbentrennung zuerst, ein
   Notumbruch nur ohne passende Trennstelle. In schmalen Karten braucht ein
   getrenntes Wort plus Rest drei Zeilen (Zeilenhöhe 1.24, Reserve für die
   Rundung); erst darüber greift wieder die native Ellipse. */
#page .bb-course-title a {
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: anywhere;
  -webkit-line-clamp: 3;
  max-height: 4em;
}

/* Globale Bewegungseinschränkung mit sofort sichtbaren Reveal-Elementen. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }

  .anim-item,
  [class*="anim-ready"] .anim-item {
    opacity: 1 !important;
    transform: none !important;
  }
}
