.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-5969 .elementor-element.elementor-element-43e99b9{--spacer-size:10px;}.elementor-5969 .elementor-element.elementor-element-63fd95f{width:var( --container-widget-width, 86.776% );max-width:86.776%;--container-widget-width:86.776%;--container-widget-flex-grow:0;}.elementor-5969 .elementor-element.elementor-element-7a3170a{width:var( --container-widget-width, 98.785% );max-width:98.785%;--container-widget-width:98.785%;--container-widget-flex-grow:0;}.elementor-5969 .elementor-element.elementor-element-986378b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-5969 .elementor-element.elementor-element-ce535dd{--spacer-size:100px;}.elementor-5969 .elementor-element.elementor-element-1aa495a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-5969 .elementor-element.elementor-element-1aa495a.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-5969 .elementor-element.elementor-element-4b073b3{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-5969 .elementor-element.elementor-element-e6fd0d6{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-5969 .elementor-element.elementor-element-e6fd0d6.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-widget-image .widget-image-caption{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-5969 .elementor-element.elementor-element-a8eec88 img{width:100%;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-5969 .elementor-element.elementor-element-1aa495a{--width:79.563%;}.elementor-5969 .elementor-element.elementor-element-e6fd0d6{--width:93.698%;}}/* Start custom CSS */.lr-termine {
  --lr-brand:     #910A0A;
  --lr-surface:   #FFFFFF;
  --lr-ground:    #F5F5F5;
  --lr-ink:       #3A3A3A;
  --lr-ink-soft:  #4B4F58;
  --lr-rule:      #DDDDDD;

  /* Reiseart-Farben: . */
  --lr-rad-vivid:     #F07800;
  --lr-rad-text:      #A85200;   /* 5.35:1 mit weisser Schrift */
  --lr-rad-tint:      #FEF3E7;

  --lr-rennrad-vivid: #E32785;   /* exakt die Kundenfarbe */
  --lr-rennrad-text:  #AB1A62;   /* 6.82:1 mit weisser Schrift */
  --lr-rennrad-tint:  #FDECF4;

  --lr-wandern-vivid: #178C3C;
  --lr-wandern-text:  #1E6B2E;   /* 6.54:1 mit weisser Schrift */
  --lr-wandern-tint:  #EAF5EC;

  --lr-sticky-top: 0px;   /* auf Header-Hoehe setzen, falls Sticky-Header */

  box-sizing: border-box;
  max-width: 1240px;
  margin-inline: auto;
  color: var(--lr-ink);
  font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.65;
}
.lr-termine *,
.lr-termine *::before,
.lr-termine *::after { box-sizing: inherit; }

/* ---------- Farbzuordnung ----------
   1. an der Reiseart-Zelle selbst: faerbt das Badge. Wirkt immer.
   2. an der Zeile via :has(): faerbt Balken, Zeilenton und Link.
   Browser ohne :has() (Firefox < 121, Safari < 15.4) zeigen weiterhin
   das farbige Badge, nur Balken und Zeilenton fehlen dort. */

.lr-termine td.lr-rad     { --lr-cat: var(--lr-rad-vivid);     --lr-cat-text: var(--lr-rad-text);     --lr-cat-tint: var(--lr-rad-tint); }
.lr-termine td.lr-rennrad { --lr-cat: var(--lr-rennrad-vivid); --lr-cat-text: var(--lr-rennrad-text); --lr-cat-tint: var(--lr-rennrad-tint); }
.lr-termine td.lr-wandern { --lr-cat: var(--lr-wandern-vivid); --lr-cat-text: var(--lr-wandern-text); --lr-cat-tint: var(--lr-wandern-tint); }

.lr-termine tr:has(td.lr-rad)     { --lr-cat: var(--lr-rad-vivid);     --lr-cat-text: var(--lr-rad-text);     --lr-cat-tint: var(--lr-rad-tint); }
.lr-termine tr:has(td.lr-rennrad) { --lr-cat: var(--lr-rennrad-vivid); --lr-cat-text: var(--lr-rennrad-text); --lr-cat-tint: var(--lr-rennrad-tint); }
.lr-termine tr:has(td.lr-wandern) { --lr-cat: var(--lr-wandern-vivid); --lr-cat-text: var(--lr-wandern-text); --lr-cat-tint: var(--lr-wandern-tint); }

/* ---------- Legende ---------- */

.lr-termine .lr-legende {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding: 0;
}
.lr-termine .lr-legende span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3125rem 0.75rem;
  border: 1px solid var(--lr-rule);
  background: var(--lr-surface);
  color: var(--lr-cat-text);
  font-size: 0.8125rem;
  font-weight: 700;
}
/* Volles Farbquadrat: zeigt genau den Ton, der als Balken erscheint */
.lr-termine .lr-legende span::before {
  content: "";
  width: 0.875rem;
  height: 0.875rem;
  background: var(--lr-cat);
  flex: none;
}
.lr-termine .lr-legende .lr-rad     { --lr-cat: var(--lr-rad-vivid);     --lr-cat-text: var(--lr-rad-text); }
.lr-termine .lr-legende .lr-rennrad { --lr-cat: var(--lr-rennrad-vivid); --lr-cat-text: var(--lr-rennrad-text); }
.lr-termine .lr-legende .lr-wandern { --lr-cat: var(--lr-wandern-vivid); --lr-cat-text: var(--lr-wandern-text); }

/* ---------- Tabelle: Reset gegen Astra / Elementor / PowerPack ---------- */

.lr-termine .lr-tabelle,
.lr-termine .lr-tabelle thead,
.lr-termine .lr-tabelle tbody,
.lr-termine .lr-tabelle tr,
.lr-termine .lr-tabelle th,
.lr-termine .lr-tabelle td {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none;
  font-size: inherit;
  line-height: inherit;
  text-align: left;
  vertical-align: baseline;
}

/* Kein overflow-Wrapper und kein display:block hier: unter 768px greift
   die Kartenansicht. (display:block auf <table> wuerde die Breite auf
   Inhaltsbreite schrumpfen lassen, statt 100% zu fuellen.) */
.lr-termine .lr-tabelle {
  width: 100%;
  border: 1px solid var(--lr-brand);
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

/* Kopfzeile: solider Bordeaux-Balken wie .tn-travel-teaser-headline */
.lr-termine .lr-tabelle thead th {
  position: sticky;
  top: var(--lr-sticky-top);
  z-index: 2;
  padding: 0.5rem 0.75rem;
  background: var(--lr-brand);
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.lr-termine .lr-tabelle thead th:nth-child(2) { text-align: right; }

/* Monatszeile: 2px Bordeaux-Linie wie .tn-travel-teaser__journey-footer */
.lr-termine .lr-monat th {
  padding: 0.4375rem 0.75rem;
  border-top: 2px solid var(--lr-brand);
  border-bottom: 1px solid var(--lr-rule);
  background: var(--lr-ground);
  color: var(--lr-brand);
  font-size: 0.8125rem;
  font-weight: 700;
  white-space: nowrap;
}

/* ---------- Zeilen ---------- */

.lr-termine .lr-tabelle tbody tr:not(.lr-monat) { background: var(--lr-cat-tint, transparent); }
.lr-termine .lr-tabelle tbody tr + tr td { border-top: 1px solid var(--lr-rule); }
.lr-termine .lr-tabelle tbody td { padding: 0.5625rem 0.75rem; }

/* Hover: neutrale Abdunklung - funktioniert ueber jedem Zeilenton */
.lr-termine .lr-tabelle tbody tr:not(.lr-monat):hover td {
  background-image: linear-gradient(rgba(0, 0, 0, 0.045), rgba(0, 0, 0, 0.045));
}

/* Spalte 1: Zeitraum - 6px Farbbalken kennzeichnet die Reiseart */
.lr-termine .lr-tabelle tbody td:nth-child(1) {
  width: 11.5rem;
  border-left: 6px solid var(--lr-cat, transparent);
  font-weight: 700;
  white-space: nowrap;
}
/* Spalte 2: Tage */
.lr-termine .lr-tabelle tbody td:nth-child(2) {
  width: 4.5rem;
  color: var(--lr-ink-soft);
  text-align: right;
  white-space: nowrap;
}
/* Spalte 3: Reise */
.lr-termine .lr-tabelle tbody td:nth-child(3) {
  font-weight: 700;
  overflow-wrap: break-word;
}
/* Spalte 4: Reiseart. Die Zelle selbst ist das Farbfeld - so braucht
   es kein zusaetzliches <span> im Editor-HTML. Hintergrund ist der
   dunklere -text-Wert, damit weisse Schrift >= 4.5:1 erreicht. */
.lr-termine .lr-tabelle tbody td.lr-rad,
.lr-termine .lr-tabelle tbody td.lr-rennrad,
.lr-termine .lr-tabelle tbody td.lr-wandern {
  width: 11.5rem;
  background: var(--lr-cat-text);
  color: #FFFFFF;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.3;
  vertical-align: middle;
}

/* Links in der Farbe der Reiseart - das System der Ursprungsseite.
   Reisen ohne eigene Seite stehen als Text und bleiben dunkelgrau. */
.lr-termine .lr-tabelle tbody a {
  color: var(--lr-cat-text, var(--lr-ink));
  font-weight: 700;
  text-decoration: none;
  text-underline-offset: 0.15em;
}
.lr-termine .lr-tabelle tbody a:hover,
.lr-termine .lr-tabelle tbody a:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 2px;
}
.lr-termine .lr-tabelle tbody a:focus-visible {
  outline: 2px solid var(--lr-cat-text, var(--lr-brand));
  outline-offset: 3px;
}

/* ---------- Unter 768 px: Karten statt Tabelle ---------- */

@media (max-width: 48rem) {
  .lr-termine .lr-tabelle {
    display: block;
    overflow: visible;
    border: 0;
  }
  .lr-termine .lr-tabelle thead { display: none; }
  .lr-termine .lr-tabelle tbody,
  .lr-termine .lr-tabelle tr,
  .lr-termine .lr-tabelle th,
  .lr-termine .lr-tabelle td { display: block; width: auto; }
  .lr-termine .lr-tabelle tbody tr + tr td { border-top: 0; }

  .lr-termine .lr-monat th {
    margin: 1.25rem 0 0.5rem;
    padding: 0.375rem 0.625rem;
    border-top: 0;
    border-bottom: 0;
    background: var(--lr-brand);
    color: #FFFFFF;
    white-space: normal;
  }
  .lr-termine .lr-tabelle tbody tr.lr-monat:first-child th { margin-top: 0; }

  /* Karte: Datum + Tage in Zeile 1, Reisename, dann Reiseart */
  .lr-termine .lr-tabelle tbody tr:not(.lr-monat) {
    display: flex;
    flex-flow: row wrap;
    align-items: baseline;
    column-gap: 0.5rem;
    row-gap: 0.3125rem;
    margin-bottom: 0.5rem;
    padding: 0.8125rem 0.9375rem;
    border: 1px solid var(--lr-rule);
    border-left: 6px solid var(--lr-cat, var(--lr-rule));
    background: var(--lr-cat-tint, var(--lr-surface));
  }
  .lr-termine .lr-tabelle tbody td { padding: 0; }

  .lr-termine .lr-tabelle tbody td:nth-child(1) {
    order: 1;
    flex: 0 0 auto;
    width: auto;
    border-left: 0;
    color: var(--lr-ink);
    font-size: 1.1875rem;        /* Datum deutlich groesser */
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.01em;
  }
  /* Trennung zum Datum als 1px-Linie, NICHT als Zeichen.
     Ein CSS-Escape wie " 0B7" wird von Customizer-Slashes und
     CSS-Minifiern zerlegt und erscheint dann als Text auf der Seite. */
  .lr-termine .lr-tabelle tbody td:nth-child(2) {
    order: 2;
    flex: 0 0 auto;
    width: auto;
    margin-left: 0.125rem;
    padding-left: 0.625rem;
    border-left: 1px solid var(--lr-rule);
    font-size: 1rem;
    text-align: left;
    line-height: 1.3;
  }
  /* "Tage" ergaenzt das CSS - im Editor steht nur die Zahl.
     Reiner ASCII-Text, damit nichts daran zerbrechen kann. */
  .lr-termine .lr-tabelle tbody td:nth-child(2)::after {
    content: " Tage";
    font-size: 0.875rem;
  }
  .lr-termine .lr-tabelle tbody td:nth-child(3) {
    order: 3;
    flex: 1 0 100%;
    font-size: 1.0625rem;
    line-height: 1.3;
  }
  /* Reiseart auf der Karte: eigene Zeile, aber nur so breit wie der Text.
     flex: 0 0 auto laesst die Zelle auf Inhaltsbreite schrumpfen. */
  .lr-termine .lr-tabelle tbody td.lr-rad,
  .lr-termine .lr-tabelle tbody td.lr-rennrad,
  .lr-termine .lr-tabelle tbody td.lr-wandern {
    order: 4;
    flex: 0 0 auto;
    width: auto;
    margin-top: 0.125rem;
    padding: 0.1875rem 0.5rem;
  }
}

/* Sehr schmale Geraete */
@media (max-width: 22.5rem) {
  .lr-termine .lr-tabelle tbody td:nth-child(1) {
    font-size: 1.0625rem;
    white-space: normal;
  }
}/* End custom CSS */