/* Theme-Overrides. Wird in header.php NACH der seitenspezifischen Divi-CSS
   eingebunden, damit diese Regeln in der Kaskade gewinnen.
   Scope auf #et-main-area => Header (#main-header) und Footer (#main-footer)
   bleiben unber?hrt. */

/* Divi (et_fix_page_container_position) setzt padding-top dynamisch per
   Inline-Style f?r et_fixed_nav ? bei uns nicht n?tig, immer 0. */
#page-container,
.et_fixed_nav.et_show_nav #page-container,
.et_fixed_nav.et_show_nav.et_secondary_nav_enabled #page-container {
  padding-top: 0 !important;
}

/* Desktop: Header im Dokumentfluss (nicht fixed), sonst liegt Content/
   Breadcrumbs unter der Nav sobald page-container-padding 0 ist. */
@media (min-width: 981px) {
  .et_fixed_nav #main-header,
  body.admin-bar.et_fixed_nav #main-header {
    position: relative !important;
    top: auto !important;
    -webkit-transform: none !important;
    transform: none !important;
  }

  /* Fullwidth-Nav + fixed: Divi setzt .container { padding-left:30px } und
     .logo_container { position:absolute; width:100% }. Die absolute Box nimmt
     die Static-Position nach dem Padding (left?30) UND width=100% der
     Padding-Box ? 30px Horizontal-Overflow. Wie bei et_non_fixed_nav: Padding
     aufs Logo, Container links ohne Extra-Padding. */
  .et_fullwidth_nav.et_header_style_left #main-header .container {
    padding-left: 0;
  }
  .et_fullwidth_nav.et_header_style_left #main-header .logo_container {
    left: 0;
    width: 100%;
    max-width: 100%;
    padding-left: 30px;
    box-sizing: border-box;
  }
}

/* Content-Container etwas breiter (20px Abstand je Seite). */
#et-main-area .et_pb_row {
  width: calc(100% - 40px);
}

.module__inner {
  width: 80%;
  max-width: 960px;
}

/* Mobile & Tablet (<=980px): Header- und Footer-Container ebenfalls auf
   calc(100% - 40px), damit Header, Content-Reihen und Footer denselben
   20px-Seitenabstand haben. */
@media (max-width: 980px) {
  #main-header .container,
  #main-footer .container {
    width: calc(100% - 40px);
    max-width: none;
  }
  #et-main-area .et_pb_row {
    width: calc(100% - 40px);
  }
  /* Mobile-Men? ?ber volle Viewport-Breite (bricht aus dem schmaleren Header-Container aus). */
  #mobile_menu.et_mobile_menu {
    width: 100vw !important;
    max-width: 100vw !important;
    left: 50% !important;
    right: auto !important;
    margin-left: -50vw !important;
    box-sizing: border-box;
    /* Vollfl?chig weiss, kein Schatten ? Seite darunter nicht sichtbar */
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
    background: #fff !important;
    min-height: calc(100vh - 63px);
    min-height: calc(100dvh - 63px);
    /* Keine CSS-Transition (Divi-slideDown wird zus?tzlich per JS deaktiviert) */
    -webkit-transition: none !important;
    transition: none !important;
    -webkit-animation: none !important;
    animation: none !important;
  }
  /* Divi setzt padding-top dynamisch per Inline-Style ? auf Mobile immer 0 */
  #page-container {
    padding-top: 0 !important;
  }
  /* Untermen?s standardm?ssig eingeklappt (schl?gt Divi display:block) */
  #mobile_menu.et_mobile_menu li.menu-item-has-children > ul.sub-menu,
  #mobile_menu.et_mobile_menu li.page_item_has_children > ul.children,
  ul.et_mobile_menu li.menu-item-has-children > ul.sub-menu,
  ul.et_mobile_menu li.page_item_has_children > ul.children {
    display: none !important;
    visibility: hidden !important;
  }
  #mobile_menu.et_mobile_menu li.tp-submenu-open > ul.sub-menu,
  #mobile_menu.et_mobile_menu li.tp-submenu-open > ul.children,
  ul.et_mobile_menu li.tp-submenu-open > ul.sub-menu,
  ul.et_mobile_menu li.tp-submenu-open > ul.children {
    display: block !important;
    visibility: visible !important;
  }
  /* Men?punkte einf?rben */
  #mobile_menu.et_mobile_menu li:not(.tp-termin-buchen) > a,
  ul.et_mobile_menu li:not(.tp-termin-buchen) > a {
    background-color: #efefef !important;
  }
  /* Chevron-Row: nur die Linkzeile, nicht das ganze li inkl. Submen? */
  #mobile_menu li.tp-has-submenu,
  ul.et_mobile_menu li.tp-has-submenu {
    position: relative;
  }
  #mobile_menu .tp-submenu-row,
  ul.et_mobile_menu .tp-submenu-row {
    position: relative;
  }
  #mobile_menu .tp-submenu-row > a,
  ul.et_mobile_menu .tp-submenu-row > a {
    padding-right: 3.25em !important;
    display: block;
  }
  #mobile_menu .tp-submenu-toggle,
  ul.et_mobile_menu .tp-submenu-toggle {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 2.75em;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    z-index: 2;
  }
  #mobile_menu .tp-submenu-toggle::before,
  ul.et_mobile_menu .tp-submenu-toggle::before {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.55em;
    height: 0.55em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: #333;
    transform: translate(-50%, -65%) rotate(45deg);
    transition: transform 0.2s ease;
  }
  #mobile_menu li.tp-submenu-open > .tp-submenu-row > .tp-submenu-toggle::before,
  ul.et_mobile_menu li.tp-submenu-open > .tp-submenu-row > .tp-submenu-toggle::before {
    transform: translate(-50%, -35%) rotate(225deg);
  }
  /* Terminbuchungsbutton im Mobile-Men? */
  #mobile_menu li.tp-termin-buchen {
    margin-top: 0.5em;
  }
  #mobile_menu li.tp-termin-buchen > a,
  #mobile_menu a.tp-termin-buchen,
  #mobile_menu a#tp-termin-buchen {
    color: #fff !important;
  }
}

.tp-modules .module:not(.module-hero) .module__inner {
  font-size: 1.12em;
}
.module-image-grid figcaption a {
  font-weight: 500;
  font-size: 1.25em;
  padding-top: 1em;
  display: block;
}
.module-hero {
  background: linear-gradient(180deg, #F16334 0%, #d66330 100%) !important;
  color: #fff;
  text-align: center;
}
.module-image-grid__img { max-width: 100%;}
.module-image-grid.is-img-w-200 .module-image-grid__img { max-width: 200px; }
.module-image-grid.is-img-w-190 .module-image-grid__img { max-width: 190px; }
.module-image-grid.is-img-w-180 .module-image-grid__img { max-width: 180px; }
.tp-modules p { margin: 0px; }
.module-text-block li, .module-two-columns li, .tp-card li { margin-bottom: 0px; }
@media (max-width: 980px) {
  .module__inner { padding-left: 0px; padding-right: 0px; }
}
.tp-button--primary {
font-family: var(--tp-font-button, 'Open Sans', Helvetica, Arial, Lucida, sans-serif);
font-weight: 500 !important;
}
.module-hero:first-child {
  margin-bottom: var(--tp-m-b, 3.5em);
}

/* Desktop: erster Hero randlos (volle Breite) */
@media (min-width: 981px) {
  .tp-modules > .module-hero:first-child {
    margin-left: 0px;
    margin-right: 0px;
    width: calc(100% - 0px);
    max-width: calc(100% - 0px);
  }
}

/* Zwischen 981px und 1100px: erster Hero-Text etwas schmaler zentriert */
@media (min-width: 981px) and (max-width: 1100px) {
  .tp-modules > .module-hero:first-child.is-align-center .aphorism,
  .tp-modules > .module-hero:first-child.is-align-center .module-hero__subline {
    text-align: center !important;
    max-width: 80%;
    margin: 0 auto;
  }
}

.wissen-card__img {
  width: 100% !important;
  height: 150px;
  object-fit: cover;
  display: block;
}

.wissen-card__img {
  height: 200px;
}

.wissen-card__media {
  flex: 0 0 200px;
}

#logo {
  max-width: 220px !important;
}

/* Globale Link-Akzentfarbe: Divi-Default (#2ea3f2) ? schwarz */
a { color: #000; }
#top-menu li.current-menu-item > a,
#top-menu li.current-menu-ancestor > a {
  color: #000;
}
.nav li ul,
.et_mobile_menu {
  border-color: #000;
}
.mobile_menu_bar:before {
  /* Divi-Font-Icon ausblenden ? eigene SVGs */
  content: none !important;
  display: none !important;
}
.mobile_menu_bar.mobile_menu_bar_toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  color: var(--tp-brand, #f26437);
  cursor: pointer;
  line-height: 0;
}
.mobile_menu_bar .tp-menu-icon {
  display: block;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
}
.mobile_nav.closed .tp-menu-icon--close,
.mobile_nav:not(.opened) .tp-menu-icon--close {
  display: none;
}
.mobile_nav.opened .tp-menu-icon--burger {
  display: none;
}
.mobile_nav.opened .tp-menu-icon--close {
  display: block;
}

#pk-form label {
  font-family: var(--tp-font-button, 'Open Sans', Helvetica, Arial, Lucida, sans-serif);
}

.pk-kalkulator {
  font-family: var(--tp-font-button, 'Open Sans', Helvetica, Arial, Lucida, sans-serif);
}

#pk-form label {
  font-family: var(--tp-font-button, 'Open Sans', Helvetica, Arial, Lucida, sans-serif);
  font-size: 0.9em;
  font-weight: 500;
}

#pk-form input[type="number"], #pk-form select {
  width: 100%;
  padding: .62em .9em;
  max-width: 100%;
}

#pk-form input[type="number"] {
  padding: 8px;
}

#pk-form select {
  padding: 8px;
  max-width: 100%;
}

#main-footer h4 {
  font-weight: 600;
}

#main-footer {
  background-color: #000;
}

#footer-bottom {
  padding: 15px 0 15px;
}

/* Unterseiten: kompakterer Hero; Frontpage (.home / .front-page) beh?lt 165px.
   Flex zentriert den Text vertikal (ein- und mehrzeilig) innerhalb min-height. */
body:not(.home):not(.front-page) .module-hero .module__inner {
  padding: 126px 20px;
  min-height: 396px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

#main-header {
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0) !important;
}
/* Sidebar-Seiten: Header-Schatten beibehalten */
body.et_right_sidebar #main-header,
body.page-template-page-sidebar #main-header {
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, .1) !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .1) !important;
}

.custom-breadcrumbs { margin-top: 1.95em; font-size: 14px !important; }
.custom-breadcrumbs a { font-weight: 400; font-size: 14px !important; }

/* Wissen-/Sidebar-Seiten: Default 0, ACF-Padding (--tp-pad-*) hat Vorrang */
.et_right_sidebar #left-area .module__inner {
  padding-top: var(--tp-pad-t, 0);
  padding-bottom: var(--tp-pad-b, 0);
}

.module-hero + .module-text-block:has(.tp-card) .module__inner {
  padding-top: var(--tp-pad-t, 20px);
}
.module-text-block h1, .module-text-block h2, .module-text-block h3, .module-text-block h4 {
  line-height: 1.25;
  margin: 1.2em 0 .0em;
}

.tp-card {
  padding-bottom: 40px;
  padding-left: 30px;
  padding-top: 40px;
}

.module-text-block ul, .module-two-columns ul, .tp-card ul {
  margin-top: 0.25em;
}
.module-text-block ul {
  margin-bottom: 0;
  padding-bottom: 0;
}

#sidebar .module { padding-left: 30px; }

.pk-kalkulator {
  max-width: 520px;
  background: #fafafa;
  border: 1px solid #c4c4c4;
  border-radius: 8px;
  padding: 18px;
}
.tp-button, .tp-button--primary, .pk-form button, #pk-form label, .pk-kalkulator {
  font-family: var(--tp-font-button) !important;
  color: #444;
  font-weight: 600 !important;
  font-size: 17px;
}

#pk-calc {
  font-family: var(--tp-font-button) !important;
  color: #fff;
}

.tp-modules--sidebar blockquote { margin: 20px 0 30px; }

.module-wichtige-links { 
  margin-top: var(--tp-m-t, 2em);
  padding: 1.25em 2.375em;
  padding-bottom: 0px;
}

.nav li ul, .et_mobile_menu {
  border-color: #fff;
  border-top: 0px !important;
}

.pk-kalkulator { margin-bottom: 1.5em; margin-top: 1.5em; }

.wichtige-links__list { padding-left: 0px !important; }
ul.wichtige-links__list li { list-style: none !important; }
ul.wichtige-links__list li a { color: #000 !important; }
ul.wichtige-links__list { padding-bottom: 5px !important; }

.tp-button, .tp-button--primary, .pk-form button {
  color: var(--tp-btn-global-text, #fff);
}
#pk-calc,
.pk-form button:not([type="reset"]) {
  color: var(--tp-btn-pk-calc-text, #fff);
}
#pk-reset { 
  color: var(--tp-btn-pk-reset-text, #000) !important;
  font-weight: normal !important;
  background: var(--tp-btn-pk-reset-bg, #eee);
  border: 1px solid #aaa;
}

/* Termin-Button: Divi-Menü-Transition (0.4s) → wie #pk-reset (sofortige Opacity) */
#top-menu a#tp-termin-buchen,
a#tp-termin-buchen,
a.tp-termin-buchen {
  -webkit-transition: none !important;
  transition: none !important;
  /* Schärferer Text: Subpixel statt antialiased (sonst wirkt Weiss auf Orange weich) */
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
  font-weight: 700 !important;
  text-rendering: geometricPrecision;
}
#top-menu a#tp-termin-buchen:hover,
a#tp-termin-buchen:hover,
a.tp-termin-buchen:hover {
  -webkit-transition: none !important;
  transition: none !important;
}

#sidebar .module { margin-bottom: var(--tp-m-b, 1em); }

#sidebar blockquote cite, #sidebar blockquote em, #sidebar blockquote i {
  font-style: italic;
}

.module-wichtige-links {
  padding-bottom: 1.75em;
  padding-top: 2em;
}

#pk-result {
  font-weight: normal !important;
  line-height: 1.5;
  background: #fff;
  border: 1px solid #c4c4c4;
  border-radius: 8px;
  padding: 18px;
  margin-top: 1em;
  margin-bottom: 1em;
}

#pk-form select {
  font-weight: normal;
}
#pk-form input[type="number"] {
  font-weight: normal;
}

.module-text-block figcaption, .module-text-block .wp-element-caption { text-align: left; }

.et-search-form, .nav li ul, .et_mobile_menu, .footer-widget li:before, .et_pb_pricing li:before, blockquote {
  border-color: #f26437;
  font-size: 13px;
  text-align: center;
}

@media (max-width: 768px) {
  blockquote {
    text-align: left !important;
  }
}

#sidebar blockquote cite, #sidebar blockquote em, #sidebar blockquote i {
  text-align: left !important;
}

#top-menu li li a {
  padding: 6px 20px;
  width: 200px;
  text-align: left !important;
}

.tp-modules--sidebar p {
  text-align: left !important;
}
/* Wissen-Einzelbeitr?ge: Abstand unter der Hauptspalte */
body.single-wissen #left-area {
  padding-bottom: 6em;
}


@media (max-width: 980px) {
  ul.et_mobile_menu li.menu-item-has-children>a, ul.et_mobile_menu li.page_item_has_children>a {
      text-align: left !important;
  }
  .custom-breadcrumbs { padding: 3em; padding-bottom: 0px; padding-top: 1em; margin-bottom: -1em; }
  .et_mobile_menu li li {
    /* Kein li-Padding: sonst bricht der Border ab */
    padding-left: 0 !important;
    text-align: left;
  }
  /* Text einr?cken, Border bleibt vollbreit auf dem a */
  #mobile_menu.et_mobile_menu .sub-menu > li > a,
  #mobile_menu.et_mobile_menu .children > li > a,
  ul.et_mobile_menu .sub-menu > li > a,
  ul.et_mobile_menu .children > li > a {
    padding-left: 12% !important;
  }
  #mobile_menu.et_mobile_menu .sub-menu .sub-menu > li > a,
  #mobile_menu.et_mobile_menu .children .children > li > a,
  ul.et_mobile_menu .sub-menu .sub-menu > li > a,
  ul.et_mobile_menu .children .children > li > a {
    padding-left: 18% !important;
  }
}
/* Mobile-Menue geoeffnet: weisses Overlay ueber der Seite */
.tp-mobile-menu-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 9998;
  pointer-events: auto;
}
body.tp-mobile-menu-open {
  overflow: hidden;
}
body.tp-mobile-menu-open .tp-mobile-menu-backdrop {
  display: block;
}
body.tp-mobile-menu-open #main-header {
  z-index: 99999;
  position: relative;
}

/* Admin-Hinweis: Sidebar global (violett) / individuell (blau) */
.tp-admin-sidebar-info {
  margin-top: 1.5em;
  padding: 0.75em 1em;
  background: #eed8ff;
  color: #000;
  font-size: 13px;
  line-height: 1.4;
  box-sizing: border-box;
  margin-left: 30px;
}
.tp-admin-sidebar-info strong {
  line-height: 14px !important;
  display: block;
}
.tp-admin-sidebar-info--custom {
  background: #d8efff;
}
.tp-admin-sidebar-info__btn {
  display: inline-block;
  margin-top: 0.75em;
  padding: 6px 10px;
  border: 1px solid #1d2327;
  border-radius: 3px;
  background: #fff;
  color: #1d2327;
  font-size: 12px;
  font-weight: 700;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.35;
  cursor: pointer;
  text-align: left;
}
.tp-admin-sidebar-info__btn:hover {
  background: #1d2327;
  color: #fff;
}
.tp-admin-sidebar-info__btn:disabled {
  opacity: 0.55;
  cursor: wait;
}
.tp-admin-sidebar-info__copy {
  margin-top: 2em;
}
.tp-admin-sidebar-info__copy-title {
  margin: 0 0 0.5em;
  font-size: 13px;
}
.tp-admin-sidebar-info__select {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.5em;
  padding: 6px 8px;
  border: 1px solid #888;
  border-radius: 3px;
  background: #fff;
  font-size: 12px;
  line-height: 1.35;
  box-sizing: border-box;
}
.tp-admin-sidebar-info__copy .tp-admin-sidebar-info__btn {
  margin-top: 0;
}
.tp-admin-sidebar-info__copy-empty {
  margin: 0;
  font-size: 12px;
  color: #444;
}

/* Bestätigungsdialog (Sidebar-Aktionen; gleiches Pattern wie Modul-Debug) */
.tp-empty-delete-confirm {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.45);
  padding: 20px;
}
.tp-empty-delete-confirm__box {
  background: #fff;
  max-width: 420px;
  width: 100%;
  padding: 22px 24px;
  border-radius: 6px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.tp-empty-delete-confirm__text {
  margin: 0 0 18px;
  font-size: 16px;
  line-height: 1.45;
  color: #111;
  font-weight: 600;
}
.tp-empty-delete-confirm__actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.tp-empty-delete-confirm__yes,
.tp-empty-delete-confirm__no {
  min-width: 72px;
  padding: 8px 14px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.tp-empty-delete-confirm__yes {
  background: #c00;
  color: #fff;
  border: 1px solid #a00;
}
.tp-empty-delete-confirm__no {
  background: #f3f3f3;
  color: #222;
  border: 1px solid #ccc;
}

.wp-block-details { cursor: pointer; }

#left-area ul {
  padding: 0 0 0 1.25em;
}

.tp-modules--sidebar p {
  text-align: left !important;
}

@media (max-width: 980px) {

  .custom-breadcrumbs { padding: 0px; width: calc(100% - 40px); }
  #sidebar .module { padding-left: 0px; }
  .tp-admin-sidebar-info { display: none; }
  .container { width: calc(100% - 40px); }
  .et_mobile_menu li a { text-align: left !important; color: #666 !important; }

  .et_fixed_nav.et_show_nav.et_secondary_nav_enabled #page-container,
  .et_fixed_nav.et_show_nav #page-container {
    padding-top: 0 !important;
  }
  body.admin-bar.et_fixed_nav #main-header { top: 4px; }
  .et-mobile-search { display: none !important; }
  #mobile_menu li.tp-termin-buchen { margin-top: 1.25em; }
  #mobile_menu li.tp-termin-buchen > a, #mobile_menu a.tp-termin-buchen, #mobile_menu a#tp-termin-buchen {
    color: #fff !important;
    width: 100% !important;
    line-height: 1.7em !important;
  }
    #mobile_menu.et_mobile_menu li:not(.tp-termin-buchen) > a, ul.et_mobile_menu li:not(.tp-termin-buchen) > a {
      background-color: #fff !important;
  }
  body:not(.home):not(.front-page) .module-hero .module__inner {
    margin-top: 56px;
  }
  /* Nur oberstes erstes Men?-Item ? nicht jedes first-of-type in Submen?s */
  #mobile_menu.et_mobile_menu > li:first-child,
  ul.et_mobile_menu > li:first-child {
    border-top: 1px solid #cbcaca !important;
  }
  .et_mobile_menu li a {
    border-bottom: 1px solid #cbcaca !important;
  }
  #main-header { box-shadow: 0 0px 0 rgba(0,0,0,.1) !important; }
  body.et_right_sidebar #main-header,
  body.page-template-page-sidebar #main-header {
    -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, .1) !important;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .1) !important;
  }
  #mobile_menu.et_mobile_menu {
    padding-top: 0px !important;
    padding: 0px !important;
    max-width: calc(100% - 0px) !important;
    width: 100% !important;
    margin: 0px !important;
    left: 0px !important;
  }

}

body:not(.home):not(.front-page) .module-hero .module__inner {
  padding: 126px 0;
  min-height: 396px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

.module-full-width-image.is-align-left figcaption.caption {
  margin-top: 6px !important;
}

.caption {
  margin-top: 6px;
}

@media (max-width: 980px) {
  #mobile_menu.et_mobile_menu .sub-menu > li > a, #mobile_menu.et_mobile_menu .children > li > a, ul.et_mobile_menu .sub-menu > li > a, ul.et_mobile_menu .children > li > a {
      padding-left: 1em !important;
  }
  #mobile_menu.et_mobile_menu { padding-top: 0px !important; }
    #mobile_menu li.tp-termin-buchen > a, #mobile_menu a.tp-termin-buchen, #mobile_menu a#tp-termin-buchen {
      width: auto !important;
  }
}

.referenz__zitat p { margin-bottom: 1em; }

/* Referenzen: Tablet + Desktop linksbündig; Mobile (<768) bleibt zentriert */
@media (min-width: 768px) {
  .module-referenzen .referenz,
  .module-referenzen .referenz p,
  .module-referenzen .referenz__zitat,
  .module-referenzen .referenz__zitat p,
  .module-referenzen .referenz__meta,
  .module-referenzen .referenz__name,
  .module-referenzen .referenz__rolle,
  .module-referenzen .referenz__werk,
  .module-referenzen .referenz__jahr,
  .module-referenzen .referenz cite,
  .module-referenzen blockquote {
    text-align: left !important;
  }
 
}

@media (min-width: 981px) {
  .custom-breadcrumbs { margin-top: 1.3em; }
}

@media (max-width: 768px) {

  h2 {
    padding-bottom: 0px !important;
    margin-bottom: 0.5em !important;
  }
  .module__inner {
    width: calc(100% - 40px) !important;
    max-width: 100%;
  }

  /* Template „Mit Sidebar“ (page-sidebar.php) */
  body.page-template-page-sidebar h2 {
    margin-bottom: 0.5em !important;
  }
  body.page-template-page-sidebar.et_right_sidebar #left-area .module__inner {
    margin-top: 0px !important;
    padding-top: 0px !important;
  }
  body.page-template-page-sidebar .module.module-wichtige-links {
    margin-top: 0px !important;
    margin-bottom: 20px !important;
  }

  /* Letztes Hauptmodul → Footer: nur Mobile ≤768, immer 20px */
  #main-content .tp-modules:not(.tp-modules--sidebar) > .module:last-child,
  body.et_right_sidebar #left-area .tp-modules > .module:last-child {
    margin-bottom: 20px !important;
  }

  #mobile_menu li.tp-termin-buchen {
    margin-top: 1.25em;
    text-align: left;
  }

}

@media (min-width: 769px) and (max-width: 980px) {
  #mobile_menu li.tp-termin-buchen {
    text-align: left;
  }
}

blockquote {
  font-size: 13px;
}


cite {
  font-size: 11px;
  
}

/* Nur Content ? nicht Header-/Mobile-Nav (?Termin buchen?). */
#main-content a[href*="online-terminkalender"] {
  background-color: transparent !important;
  color: #f16334 !important;
  font-weight: 600;
  text-decoration: none;
  border-radius: 0px !important;
  padding: 0px !important;
  min-height: auto;
  display: inline-flex !important;
  align-items: unset !important;
  justify-content: unset !important;
  box-sizing: border-box;
}

/* Plugin-Hover setzt filter:brightness(0.92) — immer 100% erzwingen. */
a[href*="/online-terminkalender/"]:hover,
a[href*="online-terminkalender"]:hover,
a[href*="/online-terminkalender/"]:focus,
a[href*="online-terminkalender"]:focus {
  filter: brightness(1) !important;
}

#main-content a[href*="online-terminkalender"] strong:hover {
  color: #f16334 !important;
  opacity: 100% !important;
  text-decoration: underline !important;
}

h2.wichtige-links__title { font-weight: 600 !important; }

@media (max-width: 980px) {
  body.admin-bar.et_fixed_nav #main-header {
      top: 4px;
      position: relative;
  }
}

@media (max-width: 980px) {
  body:not(.home):not(.front-page) .module-hero .module__inner {
      margin-top: 0px !important; padding: 0px;
  }

  /* ACF Mobile-Padding (em): schlägt padding:0 !important oben */
  body:not(.home):not(.front-page) .module-hero[style*="--tp-hero-pad-t-m"] > .module__inner,
  .module-hero[style*="--tp-hero-pad-t-m"] > .module__inner {
    padding-top: var(--tp-hero-pad-t-m) !important;
  }
  body:not(.home):not(.front-page) .module-hero[style*="--tp-hero-pad-b-m"] > .module__inner,
  .module-hero[style*="--tp-hero-pad-b-m"] > .module__inner {
    padding-bottom: var(--tp-hero-pad-b-m) !important;
  }

  /* Langer Aphorismus (>400 Zeichen): Höhe am Inhalt, angepasstes Padding */
  .module-hero.is-long-aphorism > .module__inner,
  body:not(.home):not(.front-page) .module-hero.is-long-aphorism > .module__inner {
    height: auto !important;
    min-height: 0 !important;
    padding-top: 4em !important;
    padding-bottom: 2em !important;
  }

  .module-hero.is-align-center .aphorism, .module-hero.is-align-center .module-hero__subline {
      font-size: 2.5em !important;
      line-height: 1.2em !important;
  }
  .module-hero.is-align-left .aphorism, .module-hero.is-align-left .module-hero__subline {
    text-align: center !important;
  }
  .aphorism { font-size: 2.5em !important; line-height: 1.2em !important; text-align: center !important; }

}

.module-three-boxes__subtitle { font-size: 16px; }
.module-three-boxes__list li {
  font-size: 13px;
}
.module-three-boxes__subtitle { font-weight: 600; }

.module-three-boxes__rule {
  border: 0;
  border-top: 2px solid #000;
  margin: 0px;
  width: 100%;
  margin-bottom: 10px;
}
.module-three-boxes__title { margin-bottom: 0px !important;}

@media (max-width: 980px) {
  .module-three-boxes__subtitle { font-size: 17px; }
  .module-three-boxes__list li { font-size: 15px;  }
  #main-header { position: relative !important;}
}

.tp-modules .module a:not(.tp-button):hover { text-decoration: underline; }
.tp-card p a:hover { text-decoration: underline !important; }

#main-content a:not(.tp-button):not(.tp-button--primary):hover {
  color: #000000 !important;
  text-decoration: underline !important;
  text-decoration-color: #f26437 !important;
}

/* Content-Links (Breadcrumbs + Module): schwarz, Unterstreichung Orange.
   Scope #main-content → Header/Footer unberührt. Buttons/Hero/Farbboxen ausgenommen. */
#main-content a:not(.tp-button):not(.tp-button--primary),
.custom-breadcrumbs a {
  color: #000000 !important;
  text-decoration: underline !important;
  text-decoration-color: #f26437 !important;
}
#main-content .module-hero a,
#main-content .module-three-boxes a {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-color: currentColor !important;
}
#main-content .tp-button,
#main-content .tp-button--primary {
  text-decoration: none !important;
}

/* Wissen-Karten-Titel: Unterstrich aus, Farben via Website-Einstellungen */
#main-content .wissen-card__title a:hover,
#main-content .module-wissen .wissen-card__title a:hover {
  text-decoration: none !important;
}

#main-content .wissen-card__title a,
#main-content .module-wissen .wissen-card__title a {
  text-decoration: none !important;
  text-decoration-color: transparent !important;
  font-weight: 600 !important;
}

/* Nur wenn direkt danach ein <p> folgt */
.module-text-block ul:has(+ p),
.module-two-columns ul:has(+ p),
.tp-card ul:has(+ p) {
   margin-bottom: 1em !important;
}

/* Tablet + Desktop (klein/gross): Gutenberg „small“ = 15px */
@media (min-width: 768px) {
  .has-small-font-size,
  .module-text-block .has-small-font-size,
  .tp-modules .has-small-font-size {
    font-size: 17px !important;
  }
}

/* Mobile: <small> und Inline font-size: small lesbarer */
@media (max-width: 767px) {
  small,
  [style*="font-size: small"],
  [style*="font-size:small"],
  [style*="font-size: small;"],
  [style*="font-size:small;"] {
    font-size: 17px !important;
  }
}

/* Mobile: <small> und Inline font-size: small lesbarer */
@media (min-width: 768px) {
  small,
  [style*="font-size: small"],
  [style*="font-size:small"],
  [style*="font-size: small;"],
  [style*="font-size:small;"] {
    font-size: 17px !important;
  }
}

@media (max-width: 980px) {

  .module__inner {
      width: calc(100% - 0px) !important;
      max-width: 100%;
  }
  /* Schlägt ACF --tp-pad-t/b (!important) auf Tablet/Mobile */
  .module.module-two-columns > .module__inner,
  .module.module-two-columns[style*="--tp-pad-t"] > .module__inner,
  .module.module-two-columns[style*="--tp-pad-b"] > .module__inner {
    padding: 0px !important;
  }
  .module-two-columns .module-two-columns__col {
    padding: 20px 0;
    padding-right: 0px;
    padding-left: 0px;
    box-sizing: border-box;
  }
  .module-two-columns .module-two-columns__col:nth-child(2) {
    padding-top: 0px;
  }
  .module.module-text-block:not(:has(.tp-card)) > .module__inner,
  .module.module-text-block:not(:has(.tp-card))[style*="--tp-pad-t"] > .module__inner,
  .module.module-text-block:not(:has(.tp-card))[style*="--tp-pad-b"] > .module__inner {
    padding: 20px !important;
  }
  /* Graue Karten: 20px-Textblock-Padding würde 12px-Abstände zwischen den Boxen aufblasen */
  .module.module-text-block:has(.tp-card) > .module__inner,
  .module.module-grauer-textblock > .module__inner,
  .module.module-grauer-textblock-cta > .module__inner {
    padding: 12px 0 !important;
  }
  .module-hero + .module.module-text-block:has(.tp-card) > .module__inner,
  .module-hero + .module.module-grauer-textblock > .module__inner,
  .module-hero + .module.module-grauer-textblock-cta > .module__inner {
    padding-top: var(--tp-pad-t, 20px) !important;
  }
  /* Nur wenn Two-Columns / Textblock das letzte Modul der Spalte ist */
  .tp-modules > .module-two-columns:last-child,
  .tp-modules > .module-text-block:last-child,
  #main-content .tp-modules:not(.tp-modules--sidebar) > .module:last-child,
  body.et_right_sidebar #left-area .tp-modules > .module:last-child {
    margin-bottom: 20px !important;
  }
  .aphorism { max-width: 80% !important; margin: 0 auto !important; text-align: center !important; }

  .module-hero__subline { font-size: 1em !important; margin-bottom: 2em !important; }

  .tp-modules {
    width: 100%;
    max-width: calc(100% - 0px);
    margin: 0 auto;
    padding: 0 20px;
   }

  /* Sidebar-Layout: rundum 20px erzwingen */
  body.et_right_sidebar .tp-modules {
    padding: 0px !important;
  }

  /* Wissen ohne Sidebar: kein doppeltes Seiten-Padding */
  body.single-wissen:not(.et_right_sidebar) .tp-modules,
  body.post-type-archive-wissen .tp-modules {
    padding: 20px !important;
  }

  .module-hero:first-child {
    margin-bottom: var(--tp-m-b, 0px) !important;
  }

  /* Ab dem 2. Hero: Abstand oben/unten auf Mobile/Tablet */
  .tp-modules > .module-hero ~ .module-hero {
    margin-top: 20px;
    margin-bottom: 20px;
  }

}

@media (max-width: 980px) {
  body #page-container #sidebar {
    margin-top: 0px !important;
    padding-top: 25px !important;
  }
  #left-area { padding-bottom: 0px !important; }
}

@media (min-width:1200px) {
  #footer-info {
    font-weight: 400;
    max-width: 70%;
    margin: 0 auto;
  }
}

@media (max-width: 768px) {
  #footer-info {
    font-weight: 400;
    max-width: 70%;
    margin: 0 auto;
  }
}

@media (max-width: 980px) {
  .module-hero.is-align-center .module-hero__subline {
    font-size: 14px !important;
    line-height: 1.2em !important;
  }
  .module-hero.is-align-left .module-hero__subline {
    text-align: center !important;
    font-size: 14px !important;
  }
}

.tp-button {
  transition: background 0.1s, border-color 0.1s, color 0.1s !important;
}
.module-text-block .wp-block-pullquote cite, .module-text-block blockquote cite {
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .tp-modules .module:not(.module-hero) .module__inner {
    padding-left: 0px !important;
    padding-right: 0px !important;   
  }
  .et_mobile_menu li a {
    padding-left: 10px !important;
  }
}

.caption {
  margin-top: 6px !important;
}

#tp-termin-buchen {
  -webkit-font-smoothing: antialiased;
    
  /* Für Firefox auf MacOS */
  -moz-osx-font-smoothing: grayscale;

  /* Standard-Eigenschaft zur Rendering-Optimierung */
  text-rendering: optimizeLegibility;
}

@media (max-width: 980px) {
  .module-text-block:has(.tp-card):last-child > .module__inner,
  .module-grauer-textblock:last-child > .module__inner,
  .module-grauer-textblock-cta:last-child > .module__inner {
    padding-bottom: 12px !important;
  }
}

@media (max-width: 980px) {
  .module-two-columns__col:has(img),
  .module-two-columns__col:has(.tp-button) {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .module-two-columns .module__inner:not(:has(img)) {
    gap: 0 !important;
  }

  .wissen-card__img {
    height: 200px !important;
    max-width: 200px !important;
  }


}

@media (max-width: 768px) {
  .wissen-card__img {
    height: auto !important;
  }
}

.module-referenzen,
.module-referenzen .referenz {
  border-radius: 4px !important;
}

.wissen-card {
  border-radius: 4px !important;
}