/* Zusatz-CSS der Live-Site (WordPress-Customizer, Beitrag 'lifespin-astra-child').
 * Erzeugt von work/port-site-css.py.
 * Inhaltlich unveraendert uebernommen, auch die Bloecke fuer Ultimate Member und
 * Download Manager: beide Plugins sind weg, die Selektoren greifen ins Leere und
 * fallen beim Abbau des Elementor-Stacks mit heraus. Ebenso .items-with,
 * .disease-box und .partners — ueber alle 21 Seiten auf LIVE UND DEV null
 * Treffer (gemessen work/diag/r9s/sel.py).
 *
 * Elementors Struktur-Tokens (.elementor-element, .elementor-widget-container,
 * .e-con-inner, .e-con-full, .e-con) werden nicht ERSETZT, sondern um das
 * Bricks-Gegenstueck (.ls-el, .ls-widget, .ls-inner, .ls-con-full, .ls-con,
 * gesetzt von work/convert.py) ERGAENZT. Grund: Kopfbereich und Fusszeile sind
 * auf Dev noch echtes Elementor-Markup (768px, `/`: 94x .elementor-element auf
 * Dev, 92 davon in header/footer, 0x .ls-el dort). Reines Ersetzen liess u.a.
 * `footer .elementor-element{width:100%}` ins Leere greifen — Fusszeile auf
 * Tablet 531 statt 708 px, ccmp 768 = 311 statt 117.
 *
 * Handkorrekturen stehen als PATCHES im Skript und werden bei jedem Lauf
 * wieder eingesetzt; fehlt ein Anker, bricht das Skript ab. Wer site.css
 * direkt von Hand aendert, muss den Patch dort nachtragen, sonst ist die
 * Aenderung beim naechsten Lauf weg.
 * Belege: work/diag/r8-site.md, work/diag/r9-site.md
 */

.ast-container, .ast-container-fluid {
  max-width: 100%;
  padding: 0 !important;
}
html .ast-container #primary {
  margin: 0;
}
.ast-separate-container .ast-article-single {
  padding: 0;
}
.e-con-inner.resmeg,
.ls-inner.resmeg {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
    padding: 80px 30px;
}
.e-con-inner.resmeg h3,
.ls-inner.resmeg h3 {
	margin-bottom:10px;
}
.e-con-inner img.resimg,
.ls-inner img.resimg {
	width:200px;
	margin-bottom:30px;
}
.e-con-inner.resmeg p,
.ls-inner.resmeg p {
	line-height:21px;
	margin-bottom:0;
}
.pub-content em {
    background: #502841a6;
    font-style: normal;
    padding: 0 5px 1px;
    border-radius: 3px;
    color: #fff;
}
.asterisk-tag p{
	margin-bottom:0 !important;
}
html #journey .eael-content-timeline-container {
    margin: 0;
}
html #journey .eael-content-timeline-container h3 {
    font-size: 21px;
    margin-bottom: 10px;
}
html #journey .eael-content-timeline-container p {
    margin-top: 0;
}
html #journey .eael-content-timeline-content .eael-date{
	padding-top:30px;
}
html /*------lifespin CSS----*/
#hm-banner {
  overflow: hidden;
}
b, strong {
  font-weight: 600;
}
.elementor-heading-title sup,
.brxe-heading sup {
  font-size: 50%;
}
.ast-single-post .entry-content a, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a) {
  text-decoration: none;
}
.elementor-button svg,
:is(.brxe-button, .ls-posts__cta) svg {
  transition: transform 330ms ease-in-out;
}
.elementor-button:hover svg,
:is(.brxe-button, .ls-posts__cta):hover svg {
  transform: translateX(3px);
}
html #latest-news button {
  transform: none;
  top: 80%;
}
html #latest-news .slick-next {
  right: auto;
  left: 30px;
}
html #latest-news .slick-prev {
  left: 0;
}
html #latest-news button i {
  width: auto;
  height: auto;
}

p a {
  font-weight: 400;
}
p a, html #footer_nav a {
  display: inline-block;
  position: relative;
  text-decoration: none;
  word-break: break-all;
}
p a::after, html #footer_nav a::after {
  content: '';
  position: absolute;
  width: 100%;
  transform: scaleX(0);
  border-radius: 5px;
  height: 0.05em;
  bottom: 0;
  left: 0;
  background: currentcolor;
  transform-origin: bottom right;
  transition: transform 0.25s ease-out;
}
p a:hover::after, html #footer_nav a:hover::after {
  transform: scaleX(1);
  transform-origin: bottom left;
}
html #cmpair h3 {
  border-bottom-width: 1px;
  display: inline;
  border-color: currentColor;
  border-style: solid;
  padding-bottom: 10px;
}
.right-btn .e-con-inner,
.right-btn .ls-inner {
  position: relative;
}
.cn-info a {
  color: #999999;
}
.cn-info a:hover {
  color: #ffffff;
}
.cn-info strong {
  color: #ffffff;
}
.header_wrapper {
  z-index: 2;
}
.header_wrapper form .e-font-icon-svg-container, .sticky-header form .e-font-icon-svg-container {
  --e-search-form-toggle-size: 24px;
}
.hrow:after {
  width: 100%;
  height: 1px;
  position: absolute;
  content: "";
  bottom: 0;
  left: 0;
  background: radial-gradient(circle, rgb(135 123 125 / 50%) 0%, rgba(0, 0, 0, 0) 100%);
}
.hrow.dark:after {
  background: #E0E0E0;
}
.sticky-header {
  width: 100%;
  left: 0;
  top: -90px !important;
  z-index: -1;
  transition: top .8s ease !important;
  box-shadow: 0px 6px 6px rgb(0 0 0 / 6%);
}
.sticky-header.elementor-sticky--effects {
  top: 0 !important;
}
.header_wrapper .elementor-icon svg, .sticky-header .elementor-icon svg,
:is(#brx-body,html) .header_wrapper :is(.brxe-social-icons .repeater-item > a, .brxe-icon) svg, :is(#brx-body,html) .sticky-header :is(.brxe-social-icons .repeater-item > a, .brxe-icon) svg {
  width: auto;
  height: auto;
}
/* Mobile menu edit the hamburger and close icon colors here */
.lytbox-button {
  --hamburger-color: #000;
  --close-x-color: #fff;
  display: block;
  height: 18px;
  cursor: pointer;
  position: relative;
  z-index: 101;
}
.elementor-908 {
  width: 100%;
}
.header_wrapper.hm .lytbox-button {
  --hamburger-color: #fff;
}
.header_wrapper.hm .rm-btn a:hover svg path {
  fill: #fff !important;
}
/* end editing */
.lytbox-navigation {
  position: fixed;
  top: 0;
  left: 0;
  transform: translateX(100%);
  overflow: hidden;
  transition: transform 0.2s;
  width: 100%;
  height: 100vh;
  z-index: 100;
}
.lytbox-navigation {
  display: flex;
  justify-content: center;
  align-items: center;
}
/* toggle hamburger*/
.lytbox-button .hamburguer {
  position: relative;
}
.lytbox-button .hamburguer span {
  display: block;
  height: 1.5px;
  width: 24px;
  background: var(--hamburger-color);
  transform-origin: 50% 50%;
  transition: all 0.1s 0.2s ease, transform 0.2s ease;
}
.lytbox-button .hamburguer span:nth-child(2) {
  transform: translate(0, 6px);
}
.lytbox-button .hamburguer span:nth-child(3) {
  transform: translate(0, 12px);
}
.lytbox-nav_control {
  position: absolute;
  left: -9999px;
  width: 100%;
  clip: rect(0, 0, 0, 0);
}
.lytbox-nav_control:checked ~ .lytbox-navigation {
  transform: translateX(0);
  opacity: 1;
  transition: transform 0.3s, opacity 0.3s;
}
.lytbox-nav_control:checked ~ .lytbox-button .hamburguer {
  transition: all 0.1s 0s ease;
}
/* closed X */
.lytbox-nav_control:checked ~ .lytbox-button .hamburguer span {
  background: var(--close-x-color);
  transition: all 0.1s ease, transform 0.1s 0.2s ease;
}
.lytbox-nav_control:checked ~ .lytbox-button .hamburguer span:first-child {
  opacity: 0;
}
.lytbox-nav_control:checked ~ .lytbox-button .hamburguer span:nth-child(2) {
  transform: translate(0, 6px) rotate(45deg);
}
.lytbox-nav_control:checked ~ .lytbox-button .hamburguer span:nth-child(3) {
  transform: translate(0, 4px) rotate(-45deg);
}
.sticky-header.elementor-sticky--effects.set-one {
  display: none;
}
.lytbox-nav_control:checked ~ .lytbox-button {
  position: fixed;
  right: 30px;
}
html #mobile-menu span.sub-arrow svg,
html #mobile-menu .brx-submenu-toggle button svg {
  fill: #fff;
}
html #mobile-menu ul.sub-menu {
  background-image: linear-gradient(90deg, #320303 0%, #00000000 100%);
}
html /*End Mobile Menu*/
#pg-banner {
  position: relative;
  overflow: hidden;
}
html #pg-banner:before {
  content: "";
  width: 100%;
  /* R9 VON HAND ERGAENZT — height/top/left standen nie im Astra-Child.
   * Auf Live liefert sie Elementors Grundregel
   *   .e-con::before,.e-con::after{width:100%;height:100%;top:0;left:0}
   * (Background-Overlay-Gruppe) nach. Bricks hat kein Gegenstueck, deshalb blieb
   * das Pseudoelement auf Dev 1440x0 px und die Kopfgrafik war unsichtbar.
   * Gemessen (/company/ 1440, work/pcmp.py):
   *   Live 1440x380, inset 0/0/0/0   —   Dev 1440x0, inset 60/-30/320/30
   * Der Bezugsrahmen ist auf beiden Seiten der Polsterkasten des Traegers und
   * auf beiden Seiten 1440x380 (Live DIV.elementor-element-8e5cf93,
   * Dev SECTION#pg-banner, beide 0,72 1440x380) — 100%/0/0 gibt also auf Live
   * exakt dieselben Werte, die dort schon gelten. */
  height: 100%;
  top: 0;
  left: 0;
  background-image: url("/wp-content/uploads/2024/06/ptbg.png");
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  background-position: top;
  animation: fadeinout 4s infinite;
}
@keyframes fadeinout {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.line-after {
  position: relative;
  overflow: hidden;
  display: block;
}
.line-after span {
  vertical-align: baseline;
  display: block;
  position: relative;
}
.line-after span:after {
  content: "";
  position: absolute;
  width: 100%;
  top: 50%;
  margin-left: 10px;
  border-top: 1px solid #161616;
}
.partners .elementor-widget-image,
.partners .brxe-image {
  border: 1px solid #dedede;
  filter: grayscale(1);
  opacity: .9;
  padding: 5px;
  transition: all .3s ease;
}
.partners .elementor-widget-image:hover,
.partners .brxe-image:hover {
  box-shadow: 0 12px 33px rgb(0 0 0 / 12%);
  filter: none;
  opacity: 1;
}
html #global-places ul {
  display: flex;
  flex-wrap: wrap;
}
html #global-places ul li {
  flex: 0 0 215px;
}
html #lifespin_team p ,html #lifespin_team-2 p{
  margin-bottom: 0;
}
html #excellence-table table {
  border: 1px solid #dedede;
}
.lred {
  color: #870A09;
}
.tlogo-one img.uael-col-img--left {
  width: 160px !important;
  margin: 0 !important;
}
.tlogo-two img.uael-col-img--left {
  width: 230px !important;
  margin: 0 !important;
}
html #excellence-table th .uael-table__text {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cnt_info strong {
  min-width: 70px !important;
  display: inline-block;
}
.contact_block .rarrow {
  transition: transform 330ms ease-in-out;
}
.contact_block a:hover .rarrow {
  transform: translateX(5px);
}
.event-carousel .uael-post__inner-wrap,
.event-carousel .ls-posts__card {
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
}
.event-carousel .uael-post__content-wrap,
.event-carousel .ls-posts__content {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.event-carousel a.uael-post__read-more.elementor-button,
.event-carousel a.ls-posts__cta:is(.brxe-button, .ls-posts__cta) {
  margin-top: auto;
}
.event-carousel .uael-post__thumbnail {
  position: relative;
  padding-bottom: 50%;
  width: 100%
}
.event-carousel .uael-post__thumbnail a {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.event-carousel .elementor-button-content-wrapper,
.event-carousel .brxe-button {
  justify-content: normal;
}
html #announcements .slick-list.draggable,
html #announcements .ls-posts--slider {
  min-height: 175px;
}
html #announcements ul.slick-dots {
  padding: 12px 0 0 0;
  margin: 0;
  border-top: 1px solid #E0E0E0;
}
html #announcements ul.slick-dots li button {
  width: 20px;
  height: 20px;
  color: #000;
  background: no-repeat;
  font-size: 14px;
}
html #announcements ul.slick-dots li button:before {
  display: none;
}
html #announcements ul.slick-dots li {
  margin: 0 12px;
}
html #announcements ul.slick-dots li.slick-active button {
  font-weight: bold;
  color: #880a09;
}
html #announcements button.slick-next.slick-arrow,
html #announcements button.slick-next.splide__arrow {
  position: absolute;
  right: 0px !important;
  bottom: -43px;
  transform: none;
  top: auto;
  box-shadow: none;
}
html #announcements button.slick-prev.slick-arrow,
html #announcements button.slick-prev.splide__arrow {
  position: absolute;
  left: 0px !important;
  bottom: -43px;
  transform: none;
  top: auto;
  box-shadow: none;
}
html #announcements i.fa.fa-angle-right, html #announcements .uael-post-grid .slick-prev i {
  width: auto;
  font-size: 21px !important;
}
html #announcements .slick-arrow:hover i,
html #announcements .splide__arrow:hover i {
  color: #880a09;
}
html #events .uael-post__content-wrap,
html #events .ls-posts__content {
  position: relative;
}
html #events .uael-post__meta-data,
html #events .ls-posts__meta {
  position: absolute;
  top: 20px;
  background: #220000;
  color: #fff !important;
  padding: 3px 8px;
  border-radius: 3px;
  margin: 0;
}
html #events .uael-post__meta-data span,
html #events .ls-posts__meta span {
  line-height: 18px;
}
body.archive.post-type-archive .ast-container, body.single.single-news .ast-container {
  max-width: 100%;
  padding: 0;
}
body.single.single-news .ast-article-single, html body.single.single-news #primary {
  padding: 0;
  margin: 0;
}
.faq-block .elementor-accordion-item {}
.faq-block span.qnum {
  min-width: 30px;
  font-size: 19px;
  font-weight: 600;
  padding-right: 10px;
}
.faq-block .elementor-tab-title.elementor-active {
  background: #220000;
}
.faq-block .elementor-accordion-title {
  display: flex;
  outline: none;
}
.cnt-form ::placeholder {
  color: #6f6f6f;
  font-size: 14px;
}
input[type="text"], input[type="number"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type=reset], input[type=tel], input[type=date], select {
  height: 48px;
}
.cnt-form input:active, .cnt-form input:focus, .cnt-form textarea:focus, .cnt-form textarea:active, .cnt-form select:focus, .cnt-form select:active {
  outline: 2px solid #880a09 !important;
  outline-offset: -2px;
}
.cnt-form .select-caret-down-wrapper svg {
  height: 16px;
  margin-right: 10px !important;
}
.ps h2 {
  margin-top: 1.5em;
  margin-bottom: calc(0.3em + 10px);
}
.ps h3 {
  margin-top: 1.5em;
  margin-bottom: calc(0.3em + 0px);
}
.ps h4 {
  margin-top: 1em;
  margin-bottom: calc(0.3em + 0px);
}
.ps p {
  line-height: 1.4em;
}
/*-------New event page--------*/
body.tribe_events-template-default .ast-container, body.post-type-archive-tribe_events .ast-container {
  background: #f2f4f8;
  padding: 0 30px !important;
}
body.tribe_events-template-default .ast-container {
  padding: 56px 30px !important;
}
.tribe-common-l-container.tribe-events-l-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
html #tribe-events-pg-template {
  width: 100%;
  max-width: 1230px;
  padding: 0;
}
.tribe-common-l-container.tribe-events-l-container {
  max-width: 1230px;
}
.tribe-events-calendar-list__event-description p:last-child, .tribe-events-calendar-day__event-description p:last-child {
  padding-top: 10px;
}
.tribe-events-event-meta dd, .tribe-events-event-meta dt {
  line-height: 1.6 !important;
}
h3.tribe-events-calendar-list__event-title a:hover, h3.tribe-events-calendar-day__event-title a:hover {
  color: #870a09 !important;
}
.event-btitle {
  padding-bottom: 50px !important;
}
.tribe-events-c-view-selector {
  display: none;
}
body.single-tribe_events .event-btitle {
  padding-bottom: 0px !important;
}
.tribe-common .tribe-common-g-row {
  width: auto;
  overflow: hidden;
}
li.tribe-events-c-subscribe-dropdown__list-item {
  line-height: 1.6;
}
p.tribe-events-back {
  margin-bottom: 0;
}
.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-description, .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-description {
  font-size: 16px !important;
  font-family: var(--e-global-typography-text-font-family), Sans-serif;
  color: #161616 !important;
}
.tribe-events .tribe-events-calendar-list__event-title, h3.tribe-events-calendar-list__event-title a, h3.tribe-events-calendar-day__event-title a, h1.tribe-events-single-event-title, .tribe-common .tribe-common-h3 {
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-weight: 500;
}
.tribe-common .tribe-common-h5, .tribe-common .tribe-common-h6, .tribe-common .tribe-common-h7, .tribe-common .tribe-common-h8, .tribe-events .tribe-events-calendar-list__event-date-tag-weekday {
  font-family: inherit;
}
.tribe-events-calendar-list, .tribe-events-calendar-day, .tribe-events-single > .tribe_events {
  padding: 30px 0 !important;
  font-family: var(--e-global-typography-text-font-family), Sans-serif;
}
.tribe-events .tribe-events-calendar-list-nav, .tribe-events .tribe-events-calendar-day-nav, html #tribe-events-footer {
  border-top: none !important;
}
.tribe-events-calendar-list__event-description p:last-child, .tribe-events-calendar-day__event-description p:last-child {
  font-weight: 300;
}
.tribe-events-schedule h2 {
  color: #870b08;
  font-weight: 600;
}
.single-tribe_events .tribe-events-c-subscribe-dropdown__button, .tribe-block__events-link .tribe-events-c-subscribe-dropdown__button, .single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown__container, .tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown__container {
  width: 224px;
}
.tribe-common .tribe-common-c-btn-border, .tribe-common a.tribe-common-c-btn-border {
  background-color: transparent;
  border: 1px solid #870A09;
  border-radius: 3px;
  text-align: center;
  color: #870A09;
  padding: 11px 20px;
  width: 100%;
  font-size: 16px;
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-weight: 400 !important;
}
.tribe-common .tribe-common-c-btn-border:hover, .tribe-common a.tribe-common-c-btn-border:hover {
  background-color: #870A09 !important;
}
body.single-tribe_events .event-btitle {
  padding-top: 40px;
}
html #tribe-events-pg-template a {
  text-decoration: none !important;
  color: inherit !important;
}
html #tribe-events-pg-template a:hover {
  color: #880a09 !important;
}
.tribe-events button.tribe-events-c-top-bar__datepicker-button:focus, .tribe-events button.tribe-events-c-top-bar__datepicker-button:hover {
  background: none;
}
/*-------End Event CSS----------*/
.elementor-popup-modal ul.elementor-icon-list-items,
.elementor-popup-modal ul.brxe-list {
  margin: 0;
  padding: 0 !important;
  list-style-type: none;
}
.elementor-popup-modal ul.elementor-icon-list-items li svg,
.elementor-popup-modal ul.brxe-list li svg {
  width: 8px;
  height: 8px;
  margin-right: 10px;
}
.elementor-popup-modal ul.elementor-icon-list-items li,
.elementor-popup-modal ul.brxe-list li {
  display: flex;
}
.due-packages .w3eden .card h3 {
  font-weight: 500;
}
.w3eden .mb-2, .w3eden .my-2 {
  margin-bottom: 20px !important;
  padding-bottom: 0px;
}
.uael-accordion-title.uael-title-active svg {
  fill: #fff;
}
.w3eden .btn {
  font-weight: 400;
  letter-spacing: 0;
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-size: 16px;
  padding: 12px 24px line-height: 18px;
}
.due-packages .w3eden .card h3 {
  padding-bottom: 5px;
}
.w3eden .alert {
  font-size: 13px;
  line-height: normal;
  margin-bottom: 0;
}
/*-------------Ultimate Member CSS-----------*/
.um:not(.um-admin) {
  color: #161616;
}
.um-profile.um .um-name a {
  color: #000000;
  font-weight: 500;
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
}
.um-profile-nav-item span.title, {
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-weight: 400;
  font-size: 16px;
}
.um-account-main div.um-account-heading, .um-account-name a {
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-weight: 500;
  font-size: 20px;
  color: #000000;
}
.um-account-profile-link a {
  font-size: 14px;
  font-family: "Public Sans";
  font-weight: 400;
}
html #cm-form .um-account-side li a {
  font-family: "Exo", Sans-serif !important;
  font-weight: 400;
}
html #cm-form .um-account-side li a.current, html #cm-form .um-account-side li a.current:hover {
  font-weight: 600;
}
html #cm-form .um-center .um-button, html #cm-form input[type=submit].um-button, html #cm-form .um a.um-button {
  font-family: "Exo", Sans-serif !important;
  font-size: 16px !important;
}
html #cm-form .um.um-login, html #cm-form .um.um-register, html #cm-form .um.um-password {
  max-width: 100% !important;
}
html #cm-form .um-form input[type=number], 
html #cm-form .um-form input[type=password], 
html #cm-form .um-form input[type=search], 
html #cm-form .um-form input[type=tel], 
html #cm-form .um-form input[type=text] {
  border-width: 0 0 1px 0 !important;
  border-style: solid;
  border-color: #8d8d8d !important;
  background: #f4f4f4;
  height: 48px !important;
  color: #161616;
}

html #cm-form .um-form input[type=number]:focus, 
html #cm-form .um-form input[type=password]:focus,
html #cm-form .um-form input[type=search]:focus, 
html #cm-form .um-form input[type=tel]:focus, 
html #cm-form .um-form input[type=text]:focus {
    outline: 2px solid #880a09 !important;
    outline-offset: -2px;
}
html #cm-form .um-field-label label {
  color: #161616;
  font-size: 14px !important;
  font-weight: 300;
}
html #cm-form .um-field.um-field-c {
  padding-bottom: 20px;
}
html #cm-form .um-field-checkbox-option, html #cm-form .um-field-radio-option {
  color: #161616 !important;
  font-weight: 300;
}
html #cm-form a.um-link-alt {
  text-align: left;
  color: #880a09 !important;
  font-weight: 300;
  font-size: 14px;
}
html #cm-form .um span.um-req {
  color: #880a09;
  font-weight: 500;
  font-size: 16px;
}
html #cm-form .um.um-password .um-field-block > div {
  text-align: left !important;
  color: #161616;
  font-size: 14px;
}
html #cm-form .um.um-password .um-center {
  text-align: left;
}
html #cm-form .um-account-main .um-field {
  padding-top: 30px;
}
html #cm-form span.um-account-icon {
  display: none;
}
html #cm-form .um-account-side li a span.um-account-title {
  padding-left: 10px;
  color: #000000;
}
html #cm-form .um-account-side li {
  background: #ffffff;
}
html #cm-form .um-account-main div.um-account-heading i {
  font-size: 22px;
}
html #cm-form .um-account-main {
  position: relative;
  padding-left: 60px;
}
html #cm-form .um-account-main:before {
  content: "";
  width: 1px;
  min-height: 365px;
  height: 100%;
  background: #ccc;
  left: 30px;
  top: 0;
  position: absolute;
}
html #cm-form .um-request-button {
  border-radius: 3px;
  background: #fff;
  color: #880a09;
  border: 1px solid #880a09 !important;
  font-family: "Exo", Sans-serif !important;
  font-weight: 400;
}
html #cm-form .um-request-button:hover {
  background: #880a09;
  color: #ffffff;
}
html #cm-form .um-account-main p {
  line-height: 21px;
}
/* Link colors */
.um a.um-link, .um .um-tip:hover, .um .um-field-radio.active:not(.um-field-radio-state-disabled) i, .um .um-field-checkbox.active:not(.um-field-radio-state-disabled) i, .um .um-member-name a:hover, .um .um-member-more a:hover, .um .um-member-less a:hover, .um .um-members-pagi a:hover, .um .um-cover-add:hover, .um .um-profile-subnav a.active, .um .um-item-meta a, .um-account-name a:hover, .um-account-nav a.current, .um-account-side li a.current span.um-account-icon, .um-account-side li a.current:hover span.um-account-icon, .um-dropdown li a:hover, i.um-active-color, span.um-active-color {
  color: #870A09 !important;
}
.um a.um-link:hover, .um a.um-link-hvr:hover {
  color: #44b0ec !important;
}
/* Button colors */
.um .um-field-group-head, .picker__box, .picker__nav--prev:hover, .picker__nav--next:hover, .um .um-members-pagi span.current, .um .um-members-pagi span.current:hover, .um .um-profile-nav-item.active a, .um .um-profile-nav-item.active a:hover, .upload, .um-modal-header, .um-modal-btn, .um-modal-btn.disabled, .um-modal-btn.disabled:hover, div.uimob800 .um-account-side li a.current, div.uimob800 .um-account-side li a.current:hover, .um .um-button, .um a.um-button, .um a.um-button.um-disabled:hover, .um a.um-button.um-disabled:focus, .um a.um-button.um-disabled:active, .um input[type=submit].um-button, .um input[type=submit].um-button:focus, .um input[type=submit]:disabled:hover {
  background: #870A09 !important;
}
.um .um-field-group-head:hover, .picker__footer, .picker__header, .picker__day--infocus:hover, .picker__day--outfocus:hover, .picker__day--highlighted:hover, .picker--focused .picker__day--highlighted, .picker__list-item:hover, .picker__list-item--highlighted:hover, .picker--focused .picker__list-item--highlighted, .picker__list-item--selected, .picker__list-item--selected:hover, .picker--focused .picker__list-item--selected, .um .um-button:hover, .um a.um-button:hover, .um input[type=submit].um-button:hover {
  background: #320303 !important;
}
/* Button alt colors */
.um .um-button.um-alt, .um input[type=submit].um-button.um-alt {
  background: #eeeeee !important;
}
.um .um-button.um-alt:hover, .um input[type=submit].um-button.um-alt:hover {
  background: #e5e5e5 !important;
}
html #tribe-events-pg-template a.brlbs-cmpnt-cb-btn {
    background: no-repeat;
    border: 1px solid #880a09;
    color: #880a09 !important;
    font-family: 'Exo';
    font-weight: 400;
    font-size: 16px;
}
html #tribe-events-pg-template a.brlbs-cmpnt-cb-btn:hover {
	background: #880a09;
  color: #ffffff !important;
}
html #venu_map .tec-events-elementor-event-widget__venue-container,
html #venu_map .ls-ev__venue-container {
    max-width: 860px;
    width: 100%;
}
html #venu_map .tec-events-elementor-event-widget__venue-map,
html #venu_map .ls-ev__venue-map {
    width: auto;
}
html /*-------Chatbox---------*/
#mwai-chatbot-default {
    box-shadow: rgb(128 128 128 / 42%) 0px 0px 20px 0px;
}
.mwai-chatgpt-theme .mwai-input{
	border-color:#dedede !important;
}
.mwai-input-text textarea:focus {
    border-color: #999 !important;
}
.mwai-input-text textarea {
    background: #fff !important;
    border: 1px solid #dedede !important;
}
.mwai-chatgpt-theme .mwai-input button {
    background: #880a09;
    color: #fff;
    font-size: 16px;
}
.mwai-chatgpt-theme .mwai-input button:hover{
	background:#320303;
}
.mwai-chatgpt-theme .mwai-trigger .mwai-icon-text-container .mwai-icon-text{
	background:#320303 !important
}
.mwai-chatgpt-theme button[disabled].mwai-busy:before{
	border-top-color:#ffffff !important;
}
.mwai-text li {
    padding-bottom: 10px;
}
.mwai-text h2, .mwai-text h3, mwai-text h4 {
    padding-top: 20px;
    margin-bottom: 15px !important;
}
.mwai-chatgpt-theme .mwai-reply {
    padding-bottom: 30px !important;
}
.mwai-text ol ul {
    padding: 7px  0 0 14px!important;
}
.format-video .elementor-widget-theme-post-featured-image {
    display: none;
}
.disease-box .elementor-widget-container .value-tag,
.disease-box .ls-widget .value-tag {
    position: absolute;
    top:-25px;
    font-size: 14px;
    font-family: 'Exo';
}
.dr-james span {
    font-size: 14px;
    font-weight: 400;
}
.publication-item p {
    margin-block-end: 0;
}
.publication-item{
	position:relative;
}
.publication-item:after {
    width: 100%;
    height: 1px;
    background: #dedede;
    content: "";
    position: absolute;
    left: 0;
    bottom: -30px;
}
html #pub-tab button,
html #pub-tab .tab-title {
	min-width:180px;
}
html #pub-tab button:hover,
html #pub-tab .tab-title:hover,
html #pub-tab button:focus,
html #pub-tab .tab-title:focus {
    border: none !important;
    border-radius: 12px 12px 0 0;
}

html #pub-tab button.e-n-tab-title,
html #pub-tab .tab-title {
  position: relative;
}
html #pub-tab button.e-n-tab-title[aria-selected="true"]::after,
html #pub-tab .tab-title[aria-selected="true"]::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -12px;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 12px solid rgb(136 10 9);
    transition: all 0.3s ease;
    z-index: 1;
}
html #pub-tab .e-n-tabs-heading,
html #pub-tab .tab-menu {
    display: flex;
    flex-wrap: nowrap !important;
    height: auto;
}
.join-us p {
    margin-bottom: 0;
}
:is(#brx-body,html) .join-us .inv-btn {
    margin-top: auto;
}
body.logged-in .reg-block{
	display:none;
}
	.step-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center !important;
    gap: 25px;
		align-items:stretch;
}
.step-grid .elementor-element.e-con-full,
.step-grid .ls-el.ls-con-full {
    flex: 0 0 calc(25% - 25px);
}
span.noposts {
    font-size: 13px;
    color: #ffffff30;
}
/*----------------*/
.badge-list{
    gap:15px;
}
.badge-list li {
    padding: 6px 12px !important;
    background: #fef2f2;
    border: 1px solid rgb(135 10 10 / 20%);
    border-radius: 3px;
}
iframe .ta-widget-overlay{
    background: #870a0a !important;
}
.land-faq .elementor-accordion-item {
    border-bottom: 1px solid #dedede !important;
}
.lp-leagl h3 {
    font-size: 18px;
    margin: 30px 0 5px;
}
.lp-leagl h2 {
    font-size:22px;
    font-weight: 500;
		margin: 30px 0 10px;
}
.lp-leagl h2:first-child {
    margin-top: 0;
}
.nowrap{
	white-space: nowrap;
}
/*--------------Media Rules CSS------------*/
@media (min-width: 1025px) {
  .right-btn .my-btn {
    position: absolute;
    right: 0;
    top: 66px;
  }
}
@media (min-width:768px) {
  .dd-search--svg-icon .dd-search__icon svg {
    position: relative;
    top: 3px;
  }
  .tribe-events-schedule h2 {
    font-size: 18px;
    color: #870b08;
    font-weight: 600;
  }
  .tribe-events-schedule {
    margin-top: 10px;
  }
}
@media (max-width:990px) {
  html #latest-news .slick-next {
    right: 0;
    left: auto;
    margin: 0 auto;
  }
  html #latest-news .uael-post__bg-wrap,
  html #latest-news .ls-posts__card {
    text-align: center;
  }
  .tribe-common-l-container.tribe-events-l-container {
    padding-left: 10px;
    padding-right: 10px;
  }
  .tribe-common .tribe-common-b2 {
    font-size: 16px;
  }
  .tribe-events .tribe-events-calendar-list__event-title, .tribe-events .tribe-events-calendar-day__event-title {
    font-size: 26px;
  }
  body.tribe_events-template-default .ast-container {
    padding: 24px 30px !important;
  }
  .w3eden .col-md-6 {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  html #cm-form .um-account-main {
    max-width: 100%;
  }
footer .elementor-element,
footer .ls-el:not(.brxe-button) {
    width: 100%;
}
		.step-grid .elementor-element.e-con-full,
		.step-grid .ls-el.ls-con-full {
    flex: 0 0 calc(50% - 25px) !important;
}

}
@media (max-width:1190px) {
  .tab-full .e-con-full,
  :is(#brx-body,html) .tab-full .ls-con-full {
    width: 100%;
  }
	.step-info .elementor-widget-container,
	.step-info .ls-widget,
	/* R9 VON HAND ERGAENZT. Auf Live ist `.step-info` der aeussere Widget-DIV
	 * und `.elementor-widget-container` sein KIND. Bricks legt beide Rollen auf
	 * DENSELBEN Knoten: `UL#brxe-14c5c7.brxe-list.ls-el.ls-widget.step-info`.
	 * Der Nachfahrenselektor `.step-info .ls-widget` traf deshalb ueber alle
	 * 21 Seiten null Knoten (gemessen `diag/r9s/sel.py`: Live
	 * `.step-info .elementor-widget-container` = 8, Dev `.step-info .ls-widget`
	 * = 0). Die Ergaenzung ist derzeit ohne Wirkung — die Zielhoehen sind bei
	 * 1440/1100/768/390 auf beiden Seiten identisch (82/82/122/120 px) —, aber
	 * sie stellt die Eins-zu-eins-Portierung her. */
	.step-info.ls-widget {
		height:auto !important;
	}

	.step-grid .elementor-element.e-con-full,
	.step-grid .ls-el.ls-con-full {
    flex: 0 0 calc(33.33% - 25px);
}
		html #hm-banner {
    background-image: none;
}
	
}
@media (max-width:1200px) {
.hrow .e-con-inner > .elementor-element:nth-child(1),
.hrow .ls-inner > .ls-el:not(.brxe-button):nth-child(1),
.hrow .e-con-inner > .elementor-element:nth-child(3),
.hrow .ls-inner > .ls-el:not(.brxe-button):nth-child(3) {
  width: 50%;
}
	html #m-nav .elementor-element,
	html #m-nav .ls-el:not(.brxe-button) {
    width: auto !important;
}
}


@media (max-width:767px) {
  html #arch-post-list article.elementor-post,
  html #arch-post-list .ls-posts__card {
    display: block;
  }
  html #arch-post-list .elementor-post__text,
  html #arch-post-list .ls-posts__content {
    padding-top: 20px;
  }
  html #tribe-events-pg-template {
    padding-top: 0;
    padding-left: 10px;
    padding-right: 10px;
  }
  .tribe-events .tribe-events-calendar-list__event-title, .tribe-events .tribe-events-calendar-day__event-title {
    font-size: 21px;
  }
  .tribe-events-calendar-list, .tribe-events-calendar-day, .tribe-events-single > .tribe_events {
    padding: 30px 20px !important;
  }
  .img-48 {
    display: none;
  }
  .w3eden .media {
    display: block;
  }
  .w3eden .ml-3 {
    margin-top: 10px;
  }
  .wpdm-download-link {
    margin-left: -1rem;
    margin-top: .5rem;
  }
}
@media (max-width:567px) {
  html #cm-form .um-account-main:before {
    display: none;
  }
  html #cm-form .um-account-main {
    padding-left: 0;
  }
  html #cm-form .um-account-nav a {
    font-size: 16px;
    color: #000000 !important;
    font-family: "Exo", Sans-serif !important;
    font-weight: 400;
  }
  html #cm-form .um-account-nav a.current {
    color: #870A09 !important;
    font-weight: 500;
  }
	.disease-box .elementor-widget-container .value-tag,
	.disease-box .ls-widget .value-tag {
		left:42%;
	}
	html #pub-tab button,
	html #pub-tab .tab-title {
    min-width: auto;
    margin: 0;
}
	html #journey .eael-content-timeline-container h3, html #journey .eael-content-timeline-content .eael-date{
		font-size:18px;
	}
		.step-grid .elementor-element.e-con-full,
		.step-grid .ls-el.ls-con-full {
    flex: 0 0 100% !important;
}
	.items-with {
    display: flex;
    flex-wrap: wrap;
    justify-content: center !important;
}
	.items-with .e-con-full,
	.items-with .ls-con-full {
    flex: 0 0 calc(50% - 20px);
    display: flex;
}
}

/* === PORT-ENDE ============================================================
 * Alles OBERHALB dieser Zeile erzeugt work/port-site-css.py aus
 * work/custom-css-astra-child.css (plus den dort hinterlegten PATCHES).
 * Alles UNTERHALB ist von Hand geschrieben und wird vom Skript wortwoertlich
 * uebernommen. Diese Marke bitte stehen lassen — ohne sie wuerde ein erneuter
 * Lauf des Portierskripts den gesamten Handteil loeschen.
 * ========================================================================== */

/* ==========================================================================
 * Rechtstexte-Seiten (/datenschutz/, /datenschutz_apotheke/, /impressum/,
 * /faq/, /privacy-statement/) — am gerenderten DOM gegen Live nachgemessen.
 * ========================================================================== */

/* Aufzaehlungen im Rich-Text-Widget.
 * Live: Astra setzt ul/ol auf padding-left:20px, gemessen am <ul> der
 * Datenschutzliste:  Live pl=20px, x(li)=40  |  Dev pl=40px (Browservorgabe),
 * x(li)=60. Alle uebrigen Werte (margin 16/0, li-Hoehe 24, Marker) waren
 * identisch — es fehlte allein diese eine Regel. Bewusst auf das
 * Text-Widget begrenzt, damit Navigations- und Akkordeon-Listen, die ihr
 * padding aus eigenen Regeln beziehen, unberuehrt bleiben. */
/* R59 (Fall 246) — die Regel war RICHTIG gemessen, aber zu weit gefasst.
 * Der Live-Einrueckwert haengt nicht am Text, sondern am ELEMENTOR-QUELLWIDGET:
 *
 *   text-editor          -> Elementors eigenes padding-left: 20px   (Rechtstexte)
 *   theme-post-content   -> roher CPT-Inhalt, Astras generische Regel
 *                           `ol, ul { margin: 0 0 1.5em 3em }` = 48px
 *
 * Auf Dev tragen beide dieselbe Klasse `.brxe-text` — Bricks setzt hier kein
 * eigenes `.brxe-post-content` (0 Treffer site-weit, dieser Teil des Selektors
 * ist toter Code und bleibt nur stehen, falls kuenftig doch eines entsteht).
 * Die pauschale Regel hat deshalb auch den CPT-Inhalt auf 20px gezwungen, wo
 * Live 48px zeigt: gemessen /job-offer/facharzt-…/ @1440 und @390, Live 48px
 * gegen Dev 20px, 28px zu wenig — genau der Befund „Aufzaehlungen nicht weit
 * genug eingerueckt".
 *
 * Bestand vollstaendig ausgezaehlt (35 Routen, alle ul/ol erfasst): 11 Listen
 * haengen an dieser Regel — 8 auf den Rechtstexten (korrekt bei 20px) und 3 auf
 * der einzigen Job-Offer-Detailseite (falsch). Die uebrigen Listen der Site
 * (icon-list, post-info, html, uael-posts, Cookie-Banner) werden vom Selektor
 * gar nicht erfasst und stimmen bereits.
 *
 * Getrennt wird deshalb nach Routentyp statt nach Klasse: `body.page` sind die
 * 21 Inhaltsseiten inklusive der Rechtstexte, `body.single` die CPT-Detailseiten
 * (Job-Offer, News, Event). Das deckt News und Event vorsorglich mit ab, falls
 * dort spaeter Listen im Rohinhalt auftauchen. */
body.page .brxe-text ul,
body.page .brxe-text ol,
body.page .brxe-text-basic ul,
body.page .brxe-text-basic ol,
body.page .brxe-post-content ul,
body.page .brxe-post-content ol {
  padding-left: 20px;
}

/* Roher CPT-Inhalt: Astras Wert, in Astras Schreibweise (`3em`, nicht 48px —
 * die Einrueckung skaliert dort mit der Schriftgroesse des Kontexts). Astra
 * setzt den Abstand als AUSSENabstand und nullt den Innenabstand; wer stattdessen
 * padding-left: 48px schriebe, bekaeme denselben Textbeginn, aber das
 * Aufzaehlungszeichen saesse innerhalb der Liste statt davor.
 *
 * NACHTRAG R59 — Astras Regel lautet `margin: 0 0 1.5em 3em`, und der erste
 * Anlauf hat davon nur das `margin-left` uebernommen. Oben und unten blieb es bei
 * den 16px der generischen Regel aus `elements.css`, statt 0 oben und 1,5em unten.
 * Sichtbar wurde das erst im Bildvergleich: 8px zu wenig je Liste, bei drei Listen
 * genau die 24px, um die die Job-Seite kuerzer war.
 *
 * Die Nachmessung des ersten Anlaufs hat es NICHT gefunden, weil sie genau das
 * geprueft hat, was geaendert worden war — die Einrueckung. Wer einen fremden
 * Vorgabewert uebernimmt, muss die GANZE Deklaration gegen Live halten, nicht die
 * eine Eigenschaft, wegen der er hingesehen hat. (Muster 8 im Skill.) */
body.single .brxe-text ul,
body.single .brxe-text ol,
body.single .brxe-text-basic ul,
body.single .brxe-text-basic ol,
body.single .brxe-post-content ul,
body.single .brxe-post-content ol {
  margin: 0 0 1.5em 3em;
  padding-left: 0;
}

/* FAQ-Akkordeon (/faq/, Bricks-Akkordeon mit der Klasse .faq-block).
 * Elementors Akkordeon und das von Bricks bringen voellig verschiedene
 * Grundstile mit. Am gerenderten DOM gemessen (1440px):
 *   Live  .elementor-accordion            margin 0
 *         .elementor-accordion-item       border 1px solid #d5d8dc, ab dem
 *                                         zweiten ohne border-top
 *         .elementor-tab-title            padding 20px, offen bg #220000
 *         .elementor-accordion-title      display:flex, 18px/500, lh 25.2
 *         .elementor-tab-content          padding 30px 30px 30px 50px,
 *                                         border-top 1px #d5d8dc, bg #f2f4f8
 *   Dev   ul.brxe-accordion               margin 16px 0
 *         li.accordion-item               padding-top 30px, keine Rahmen
 *         .accordion-title-wrapper        padding 15px 0, margin-bottom -1px
 *         .accordion-content-wrapper      padding 0 0 15px, kein Rahmen, kein bg
 * Folge: kein Rahmen, kein dunkler Balken hinter dem offenen Titel (die
 * weisse Schrift aus generated.css stand auf weissem Grund), und 30px
 * Zwischenraum je Eintrag — 8 Eintraege ergaben 262px Mehrhoehe. */
/* R11 (2026-08-20): `margin: 30px 0 0` zurueckgenommen. Der Konverter setzt das
 * Widget-Polster inzwischen selbst als `padding: 30px 0 0` an derselben `<ul>`
 * (Bricks legt Widget und Container auf denselben Knoten). Gemessen auf /faq/:
 *   Live  .elementor-accordion  margin 0  padding 0   Seitenhoehe 2497
 *   Dev   ul.brxe-accordion     margin 30 padding 30  Seitenhoehe 2527
 * Beide 30 px zaehlten also doppelt. `padding: 0` faellt damit ebenfalls weg,
 * sonst wuerde es das Polster des Konverters wieder wegnehmen. */
ul.brxe-accordion.faq-block {
  margin: 0;
}
ul.brxe-accordion.faq-block > li.accordion-item {
  padding: 0;
  border: 1px solid #d5d8dc;
}
ul.brxe-accordion.faq-block > li.accordion-item + li.accordion-item {
  border-top: 0;
}
ul.brxe-accordion.faq-block .accordion-title-wrapper {
  padding: 20px;
  margin: 0;
}
ul.brxe-accordion.faq-block > li.brx-open .accordion-title-wrapper {
  background: #220000;
}
ul.brxe-accordion.faq-block .accordion-title .title {
  display: flex;
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
}
ul.brxe-accordion.faq-block .accordion-content-wrapper {
  padding: 30px 30px 30px 50px;
  border-top: 1px solid #d5d8dc;
  background: #f2f4f8;
}
/* Live traegt den Text des offenen Eintrags als blossen Textknoten im
 * Inhaltskasten, Bricks packt ihn in <p>. Dessen margin-bottom von 20px
 * gibt es auf Live an dieser Stelle nicht. */
ul.brxe-accordion.faq-block .accordion-content-wrapper > p:last-child {
  margin-bottom: 0;
}

/* Kopfleiste der Rechtstexte (Template 17856 "Landing page Header").
 * "Fragen?": Live ist das Icon-Listen-Widget inhaltsbreit (94px), Bricks
 * dehnt die Liste im Flexrahmen auf die Restbreite (440px) und schiebt den
 * Text dadurch von x=1080 auf x=754. Ausserdem hat die <ul> die
 * Browservorgabe margin 16px 0, Live hat 0.
 * "Termin buchen": Live a.elementor-button padding 10px, Hoehe 36, Breite
 * 150. Dev bekam die Bricks-/ACSS-Vorgabe padding 12px 25px — der Text
 * brach dadurch auf zwei Zeilen um (Hoehe 56, gemessene Textbreite 56
 * statt 109). */
#brxe-c7e345 {
  margin: 0;
  width: auto;
  flex: 0 0 auto;
}
#brxe-ce4327 {
  padding: 10px;
  gap: 5px;
  white-space: nowrap;
}

/* Nachtrag Akkordeon: der Zwischenraum kommt aus den konvertierten
 * Elementeinstellungen selbst (Bricks-Inline-CSS `#brxe-51760d
 * .accordion-item { padding-top: 30px }`, Spezifitaet 1,1,0). Live hat
 * zwischen den Eintraegen keinen Abstand — die Rahmen stossen aneinander.
 * Die Regel liegt in den Bricks-Daten, nicht in einer Datei dieses Themes,
 * deshalb hier per !important zurueckgenommen. */
ul.brxe-accordion.faq-block > li.accordion-item {
  padding: 0 !important;
}

/* Elementors Ausrichtungsoption des Button-Widgets ("rechts") ist die Lage
 * des Knopfes im Container, nicht die Textausrichtung darin; Live rendert
 * a.elementor-button mit text-align:center. Die Konvertierung hat daraus
 * eine Typografie-Einstellung text-align:right gemacht. */
#brxe-ce4327 {
  text-align: center;
}

/* Nachtrag zum Knopf der Kopfleiste: das Bricks-Inline-CSS setzt
 * `#brxe-ce4327 { text-align: right }` und laedt nach site.css, deshalb
 * hier !important. Live: a.elementor-button text-align center. */
#brxe-ce4327 {
  text-align: center !important;
}

/* Fusszeile der Rechtstexte (Template 17853 "Landing page Footer").
 * Bricks gibt jedem Listeneintrag `.title { margin-right: 10px }`. Die
 * Zeilen sind zentriert, der Zuschlag verschiebt sie also um die halbe
 * Summe nach links. Gemessen auf /impressum/:
 *   eine Zeile   Live x=483  Dev x=478  (474 + 10 = 484, zentriert -> -5)
 *   drei Zeilen  Live 535/714/814  Dev 521/709/818  (3x10 = 30 -> -15,
 *                dann je Eintrag +10 kumuliert)
 * Live hat an dieser Stelle keinen Zuschlag; generated.css nimmt ihn fuer
 * die dritte Liste (#brxe-e46ecb) bereits zurueck, fuer diese beiden
 * nicht. */
#brxe-6ae805 .title,
#brxe-fa0e33 .title {
  margin-right: 0;
}

/* /privacy-statement/: das Bild-Widget des Kopfbereichs.
 * Live steht das <img> in einem Block mit text-align:center und liegt
 * damit mittig im 600px breiten Kasten (x=885 bei 290px Bildbreite).
 * Bricks haengt es als Flex-Element ohne Ausrichtung ein, es klebt links
 * (x=730). text-align greift bei einem Flex-Element nicht, deshalb ueber
 * die Aussenabstaende. */
#brxe-b427a8 {
  margin-left: auto;
  margin-right: auto;
}

/* /impressum/ und /datenschutz/: das Logo im Kontaktblock der Fusszeilen-
 * Vorlage (Template 17853, Bild #brxe-aeb956 im Kasten #brxe-1aabdd).
 * Live liegt es links, Dev mittig — gemessen x=120 gegen x=345.
 * Ursache: Elementors Bild-Baustein steht dort in einem Widget-Kasten, der
 * durch `align-items:flex-start` des Elternteils auf Inhaltsbreite (150px)
 * schrumpft; das enthaltene text-align:center ist damit wirkungslos.
 * In Bricks ist das <img> selbst das Flex-Element. elements.css gibt allen
 * Bildern `margin-inline:auto` (richtig fuer die Bilder in mittigen
 * Kaesten); im Querachsen-Flex ueberschreibt eine automatische Aussenkante
 * aber die Ausrichtung des Elternteils und zentriert — computed
 * margin-left/right 225px bei 600px Kasten und 150px Bild.
 * Nur dieser eine Kasten setzt align-items:flex-start (Bricks-Inline-CSS
 * `#brxe-1aabdd { align-items: flex-start }`), deshalb hier per ID
 * zurueckgenommen statt die allgemeine Regel zu kippen. */
#brxe-1aabdd > img.brxe-image {
  margin-inline: 0;
}

/* Fusszeilen-Vorlage der Rechtstexte (Template 17853), Teil 2: senkrechter
 * Aufbau. Nur /impressum/ und /datenschutz/ enthalten sie.
 * Gemessen auf /impressum/ (Kasten #brxe-99c028): Live 248 px hoch, Dev
 * 295 px — genau die 46 px Seitenhoehe, die scmp als
 * "HOEHE 1510 -> 1556" meldet. Aufschluesselung:
 *
 * a) Die drei Listen stehen auf Dev auf der Browservorgabe
 *    margin-block: 1em = 16px. Elementor setzt an
 *    ul.elementor-icon-list-items margin 0. Vier Zwischenraeume
 *    (Bild->L1, L1->L2, L2->L3, L3->Trenner) ergeben 16+32+32+16 = 96 px
 *    zu viel. Gemessen Live y: 1303 / 1324 / 1358 / 1412,
 *    Dev y: 1318 / 1371 / 1437 / 1507.
 * b) Der Trenner ist auf Live ein reiner Abstandhalter: das
 *    .elementor-divider-separator misst 0x0 und hat border-top: none,
 *    sichtbar ist nichts, der Kasten ist ueber padding: 25px 0 genau
 *    50 px hoch. Bricks rendert stattdessen eine 1 px starke, 1200 px
 *    breite Linie in rgb(22,22,22) und keinen Abstand — 49 px zu wenig.
 *    96 - 49 = 47, die gemessene Differenz.
 * Die Linie faellt in keiner der drei Messungen auf (keine Flaeche, kein
 * Text, kein Icon) und ist trotzdem im Bild da, wo Live keine hat. */
#brxe-6ae805,
#brxe-e46ecb,
#brxe-fa0e33 {
  margin-block: 0;
}
#brxe-02fa9d {
  padding-block: 25px;
}
#brxe-02fa9d > .line {
  border-top-width: 0;
}

/* /privacy-statement/: Unterstreichung der Fliesstext-Links.
 * Symptom: auf Dev sind alle 23 Links im Rechtstext unterstrichen, auf Live
 * keiner. Im Bild deutlich sichtbar (Absatz "Controller", "Source: ...",
 * saemtliche Google-URLs). Keine der drei Messungen faellt darauf herein --
 * scmp.py vergleicht text-decoration nicht.
 * Ursache am gerenderten DOM, CDP CSS.getMatchedStylesForNode auf demselben
 * <a> (Absatz "Controller", href https://lifespin.health):
 *   Live  ... .privacy-statement a                      {text-decoration: underline}  (0,1,1)
 *         ... .ast-single-post .entry-content a, ...    {text-decoration: none}       (0,2,1)  <- gewinnt
 *         computed text-decoration-line: none
 *   Dev   ... .privacy-statement a                      {text-decoration: underline}  (0,1,1)  <- gewinnt
 *         computed text-decoration-line: underline
 * Die Regel `.privacy-statement a {underline}` steht in einem <style>-Block
 * im Seiteninhalt selbst und ist auf beiden Seiten identisch. Sie ist auf
 * Live nur deshalb wirkungslos, weil Astra sie mit hoeherer Spezifitaet
 * ueberschreibt. Bricks hat kein Gegenstueck dazu, also fehlt der
 * Ueberschreiber und die Unterstreichung schlaegt durch.
 * `div.privacy-statement a` ist (0,1,2) und gewinnt damit gegen (0,1,1),
 * ohne von einer Bricks-Wrapper-Klasse abzuhaengen. */
div.privacy-statement a {
  text-decoration: none;
}

/* /faq/ — Breite des Umschaltsymbols im Akkordeontitel (R12).
 *
 * Symptom bei 390: die Titel `2. Could you please provide …` und
 * `5. You mentioned on the website …` sind auf Dev 11 px schmaler
 * (`~ BREITE 240 -> 229` bzw. `240 -> 230`), der zweite bricht dadurch auf
 * eine Zeile mehr um und die Seite ist 22 px hoeher
 * (`~ HOEHE 4047 -> 4069`). Mit der Methode aus r11-schrift.md klassiert
 * (`diag/r11f/klassiere.py`): beide Meldungen sind **FUND**, keine
 * Schriftfolge — M1 „gleich Exo -> Exo", M3 „Blockkasten <A> x 51->51
 * innen 270.5->262 ABWEICHEND".
 *
 * Ursache, am gerenderten DOM gemessen (`diag/r12-geo.py /faq/ <w>`):
 * die Titelzeile ist auf beiden Seiten 288 px breit (Innenmass des
 * Titelkastens) und teilt sich in Titeltext + Symbolflaeche.
 *
 *            Live Titel   Live Symbolflaeche   Dev Titel   Dev Symbol + Abstand
 *   1440      1314          24  (1.5em von 16)    1312        16 + 10 = 26
 *    768       644.1        21.9 (1.5em von 14.592) 640       16 + 10 = 26
 *    390       270.5        17.5 (1.2em von 14.592) 262       16 + 10 = 26
 *
 * Elementor gibt dem Symbolkasten eine Breite in em, Bricks einen festen
 * Abstand von 10 px (`:where(.brxe-accordion) .accordion-title.icon-right
 * .icon { margin-left: 10px }`, frontend-layer.min.css). Die Symbolgroesse
 * selbst (16 px) setzt der KONVERTER
 * (`generated.css: #brxe-51760d .accordion-title .icon { width:16px }`,
 * Spezifitaet 1,1,1) — die fasse ich nicht an, sonst ist es ein
 * !important-Krieg um dieselbe Deklaration.
 *
 * Ich stelle deshalb nur den Abstand so ein, dass Symbolflaeche + Abstand
 * zusammen die Live-Breite ergeben: 24 / 21.9 / 17.5 minus 16 px Symbol.
 * Das Symbol selbst bleibt rechtsbuendig am Kastenrand stehen, seine Lage
 * aendert sich also nicht (gemessen 1440: Live x=1373, Dev x=1373) — der
 * Ikonenvergleich icmp bleibt unberuehrt, nur die Grenze zwischen Titel
 * und Luecke verschiebt sich.
 * Die beiden Kanten sind Astras Schriftgroessenkante (881, dieselbe wie in
 * elements.css) und Elementors Mobilkante (767). */
ul.brxe-accordion.faq-block .accordion-title.icon-right > .icon {
  margin-left: 8px;
}
@media (max-width: 880px) {
  ul.brxe-accordion.faq-block .accordion-title.icon-right > .icon {
    margin-left: 5.9px;
  }
}
@media (max-width: 767px) {
  ul.brxe-accordion.faq-block .accordion-title.icon-right > .icon {
    margin-left: 1.5px;
  }
}

/* /faq/ — senkrechte Lage desselben Symbols (R12, im Bild gefunden).
 * Bricks setzt `:where(.brxe-accordion) .accordion-title { align-items: center }`;
 * bei mehrzeiligen Titeln steht das Minuszeichen dadurch auf halber Hoehe des
 * Kastens. Elementor haengt das Symbol als eigenes Geschwisterelement an den
 * Anfang der Titelzeile — gemessen bei 390 am ersten Eintrag: Live Symbol 0 px
 * unter der Titeloberkante, Dev 48 px. Im Bildvergleich der beiden 390er
 * Aufnahmen (diag/r12f/faq390-live.png / -dev.png) ist es der einzige noch
 * sichtbare Unterschied am Akkordeon; keine der drei Messungen faellt darauf
 * herein, weil scmp kein y an Textknoten vergleicht und icmp die Symbollage
 * nicht gegen den Titel prueft. */
ul.brxe-accordion.faq-block .accordion-title.icon-right {
  align-items: flex-start;
}
