/* =========================================================================
   WordPress- und Elementor-Anpassungen

   Alles, was nicht aus der HTML-Vorlage stammt, sondern nur im Zusammenspiel
   mit WordPress, dem Admin-Bar oder Elementor gebraucht wird, liegt hier.
   Die Vorlagen-Dateien (tokens, base, layout, components, hero) bleiben
   unverändert, damit sie mit der HTML-Fassung vergleichbar bleiben.
   ========================================================================= */

/* -------------------------------------------------------------------------
   Admin-Bar: der fixe Header muss darunter rutschen
   ------------------------------------------------------------------------- */

body.admin-bar .header { top: 32px; }
body.admin-bar .mobile-nav { inset: calc(var(--header-height) + 32px) 0 auto 0; }
html:has(body.admin-bar) { scroll-padding-top: calc(var(--header-height) + 32px + var(--space-4)); }

@media screen and (max-width: 782px) {
  body.admin-bar .header { top: 46px; }
  body.admin-bar .mobile-nav { inset: calc(var(--header-height) + 46px) 0 auto 0; }
}

/* -------------------------------------------------------------------------
   Navigation aus wp_nav_menu

   Der eigene Walker gibt reine <a>-Elemente aus, wie in der Vorlage.
   Falls doch eine Liste ankommt (Fallback), wird sie hier eingeebnet.
   ------------------------------------------------------------------------- */

.nav ul, .mobile-nav ul { display: contents; list-style: none; margin: 0; padding: 0; }
.nav li, .mobile-nav li { display: contents; }

/* -------------------------------------------------------------------------
   Links: beim Überfahren immer unterstreichen (Kundenwunsch).
   Die Vorlage nahm Navigation und Footer davon aus – hier bekommen alle
   Links denselben, klar erkennbaren Hover-Zustand.
   ------------------------------------------------------------------------- */

.nav a:hover,
.nav a:focus-visible,
.mobile-nav a:hover,
.mobile-nav a:focus-visible,
.footer a:hover,
.footer a:focus-visible,
.mapcard__link:hover,
.mapcard__link:focus-visible,
a.fact__value:hover,
a.fact__value:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

/* -------------------------------------------------------------------------
   Elementor

   Die Seiten bestehen aus einem randlosen Container, die Widgets bringen
   ihre Sektionen samt .container selbst mit. Damit zwischen den Widgets
   keine Lücken oder Einzüge entstehen:
   ------------------------------------------------------------------------- */

.elementor-widget-jh_lede,
.elementor-widget-jh_scene,
.elementor-widget-jh_kontaktband,
.elementor-widget-jh_klassen,
.elementor-widget-jh_ablauf,
.elementor-widget-jh_preise,
.elementor-widget-jh_panel,
.elementor-widget-jh_team,
.elementor-widget-jh_anmeldung,
.elementor-widget-jh_kontakt,
.elementor-widget-jh_abschnitt { width: 100%; }

/* Elementor setzt margin-bottom auf Widgets – hier unerwünscht */
.elementor-widget[class*="elementor-widget-jh_"] { margin-bottom: 0; }

/* -------------------------------------------------------------------------
   Inhalt ohne Elementor (Impressum, Datenschutz, Blog-Fallback)
   ------------------------------------------------------------------------- */

.entry { padding-top: calc(var(--header-height) + clamp(2rem, 6vw, 4rem)); }

.entry__title {
  font-size: var(--display-md);
  margin-bottom: var(--space-6);
}

.entry-content > * + * { margin-top: var(--space-4); }

.entry-content h2 { font-size: var(--text-2xl); margin-top: var(--space-8); }
.entry-content h3 { font-size: var(--text-xl); margin-top: var(--space-6); }

.entry-content ul,
.entry-content ol { padding-left: 1.25rem; }

.entry-content img { border-radius: var(--radius-card); height: auto; }

.entry-content a { color: var(--fg-brand); }

/* WordPress-Kernklassen */
.alignleft { float: left; margin: 0 var(--space-6) var(--space-4) 0; }
.alignright { float: right; margin: 0 0 var(--space-4) var(--space-6); }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text {
  font-size: var(--text-sm);
  color: var(--fg-muted);
  margin-top: var(--space-2);
}
.screen-reader-text {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
