/* ==========================================================================
   Jägerverein Neheim – Child-Template von Cassiopeia (Nachbau Giver-Look)
   ========================================================================== */

/* Schriften lokal (keine Google-Verbindung) */
@font-face { font-family: "PT Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/pt-sans-regular.woff2") format("woff2"); }
@font-face { font-family: "PT Sans"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/pt-sans-italic.woff2") format("woff2"); }
@font-face { font-family: "PT Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/pt-sans-700.woff2") format("woff2"); }
@font-face { font-family: "PT Sans"; font-style: italic; font-weight: 700; font-display: swap; src: url("../fonts/pt-sans-700italic.woff2") format("woff2"); }
@font-face { font-family: "PT Sans Caption"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/pt-sans-caption-regular.woff2") format("woff2"); }
@font-face { font-family: "PT Sans Caption"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/pt-sans-caption-700.woff2") format("woff2"); }

:root {
  --jv-gruen: #1a6922;
  --jv-gruen-dunkel: #003809;
  --jv-schwarz: #1a171b;
  --jv-text: #252525;
  --jv-grau: #7d7d7d;
  --jv-hell: #f4f6f4;
  --jv-breite: 1140px;
  --jv-seite: 1600px;
  --jv-schrift: "PT Sans", "Segoe UI", Arial, sans-serif;
  --jv-schrift-titel: "PT Sans Caption", "PT Sans", "Segoe UI", Arial, sans-serif;

  /* Cassiopeia-Variablen auf Vereinsfarben */
  --cassiopeia-color-primary: var(--jv-gruen);
  --cassiopeia-color-link: var(--jv-gruen);
  --cassiopeia-color-hover: var(--jv-gruen-dunkel);
  --link-color: var(--jv-gruen);
  --link-color-rgb: 26, 105, 34;
  --link-hover-color: var(--jv-gruen-dunkel);
  --link-hover-color-rgb: 0, 56, 9;
  --btn-primary-bg: var(--jv-gruen);
  --primary: var(--jv-gruen);
  --body-font-family: var(--jv-schrift);
  --body-color: var(--jv-text);
  --body-bg: #fff;
}

html { scroll-behavior: smooth; }

body.jv {
  max-width: var(--jv-seite);
  margin: 0 auto;
  background: #fff;
  color: var(--jv-text);
  font-family: var(--jv-schrift);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

html { background: #fff; }

.jv h1, .jv h2, .jv h3, .jv h4, .jv h5, .jv h6 {
  font-family: var(--jv-schrift-titel);
  font-weight: 400;
  line-height: 1.25;
  color: #333;
  margin: 0 0 .6em;
}
.jv h1 { font-size: 2.6rem; }
.jv h2 { font-size: 2.2rem; }
.jv h3 { font-size: 1.75rem; }
.jv h4 { font-size: 1.35rem; }

.jv a { color: var(--jv-gruen); text-decoration: none; }
.jv a:hover, .jv a:focus { color: var(--jv-gruen-dunkel); text-decoration: underline; }
.jv b, .jv strong { font-weight: 700; }
.jv img { max-width: 100%; height: auto; }
.jv p { margin: 0 0 1rem; }

.jv .btn-primary, .jv .btn-success {
  background: var(--jv-gruen); border-color: var(--jv-gruen); color: #fff;
}
.jv .btn-primary:hover, .jv .btn-primary:focus, .jv .btn-success:hover {
  background: var(--jv-gruen-dunkel); border-color: var(--jv-gruen-dunkel); color: #fff;
}

.jv-container {
  width: 100%;
  max-width: calc(var(--jv-breite) + 2 * 15px);
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

.jv-sprung {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: var(--jv-gruen); color: #fff; padding: .5rem 1rem;
}
.jv-sprung:focus { left: 1rem; color: #fff; }

/* --------------------------------------------------------------------------
   Kopfzeile
   -------------------------------------------------------------------------- */
.jv-kopf {
  position: relative;
  z-index: 1000;
  background: #fff;
}
.jv-kopf__innen {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100px;
  padding: 0 25px 0 40px;
}
.jv-logo { display: block; flex: 0 0 auto; line-height: 0; }
.jv-logo__bild { width: auto; height: auto; max-height: 85px; max-width: 306px; }

/* Menü (Desktop) */
.jv-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.jv-nav__kopf, .jv-nav-knopf, .jv-nav-schleier { display: none; }
.jv-nav__liste, .jv-nav__unter { list-style: none; margin: 0; padding: 0; }
.jv-nav__liste { display: flex; align-items: center; }

.jv-nav__punkt { position: relative; }
.ebene-1 { display: flex; align-items: center; }
.ebene-1 > .jv-nav__link {
  display: block;
  position: relative;
  padding: 0 15px;
  line-height: 100px;
  font-size: 14px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--jv-text);
  white-space: nowrap;
}
.ebene-1.hat-unter > .jv-nav__link { padding-right: 4px; }
.ebene-1 > .jv-nav__link::before {
  content: "";
  position: absolute;
  left: 15px;
  bottom: 33px;
  width: 19px;
  height: 3px;
  background: var(--jv-schwarz);
  opacity: 0;
  transition: opacity .2s;
}
.ebene-1.aktiv > .jv-nav__link { color: var(--jv-gruen); font-weight: 700; }
.ebene-1.aktiv > .jv-nav__link::before { opacity: 1; }
.ebene-1 > .jv-nav__link:hover, .ebene-1 > .jv-nav__link:focus { color: var(--jv-gruen); text-decoration: none; }

.jv-nav__auf {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 40px; margin-right: 6px;
  padding: 0; border: 0; background: none; cursor: pointer; color: inherit;
}
.jv-nav__pfeil {
  width: 7px; height: 7px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s;
}
.ebene-1.aktiv > .jv-nav__auf { color: var(--jv-gruen); }

/* Aufklappmenü */
.jv-nav__unter {
  position: absolute;
  top: calc(100% - 16px);
  left: 0;
  min-width: 220px;
  padding: 15px 20px;
  background: #fff;
  box-shadow: 0 3px 5px rgba(0, 0, 0, .2);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear .25s;
}
.jv-nav__unter .jv-nav__unter { top: -15px; left: 100%; }
.jv-nav__unter .jv-nav__link {
  display: block;
  padding: 12px 0;
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--jv-text);
}
.jv-nav__unter .jv-nav__punkt + .jv-nav__punkt { border-top: 1px solid #eee; }
.jv-nav__unter .jv-nav__link:hover, .jv-nav__unter .jv-nav__link:focus,
.jv-nav__unter .aktuell > .jv-nav__link { color: var(--jv-gruen); text-decoration: none; }
.jv-nav__unter .jv-nav__auf { display: none; }

@media (hover: hover) and (min-width: 1100px) {
  .jv-nav__punkt.hat-unter:hover > .jv-nav__unter {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity .18s ease, transform .18s ease, visibility 0s;
  }
}
@media (min-width: 1100px) {
  .jv-nav__punkt.hat-unter:focus-within > .jv-nav__unter,
  .jv-nav__punkt.offen > .jv-nav__unter {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity .18s ease, transform .18s ease, visibility 0s;
  }
  .jv-nav__punkt.offen > .jv-nav__auf .jv-nav__pfeil { transform: translateY(2px) rotate(-135deg); }
}
@media (min-width: 1100px) and (max-width: 1260px) {
  .ebene-1 > .jv-nav__link { padding: 0 10px; font-size: 12px; letter-spacing: 2px; }
  .ebene-1 > .jv-nav__link::before { left: 10px; }
  .jv-kopf__innen { padding-left: 20px; }
}

/* Menü (mobil): Seitenleiste */
@media (max-width: 1099.98px) {
  .jv-kopf__innen { padding: 0 15px; height: 80px; }
  .jv-logo__bild { max-height: 64px; max-width: 230px; }

  .jv-nav-knopf {
    display: inline-flex; align-items: center; gap: .6rem;
    padding: .5rem .25rem; border: 0; background: none; cursor: pointer;
    color: var(--jv-text); font: 700 13px/1 var(--jv-schrift);
    letter-spacing: 2px; text-transform: uppercase;
  }
  .jv-nav-knopf__striche, .jv-nav-knopf__striche span,
  .jv-nav-knopf__striche::before, .jv-nav-knopf__striche::after {
    display: block; width: 24px; height: 2px; background: currentColor; border-radius: 2px;
  }
  .jv-nav-knopf__striche { position: relative; background: none; height: 16px; display: flex; flex-direction: column; justify-content: space-between; }
  .jv-nav-knopf__striche::before, .jv-nav-knopf__striche::after { content: ""; }

  .jv-nav {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: min(320px, 86vw);
    display: block;
    background: #fff;
    box-shadow: -4px 0 18px rgba(0, 0, 0, .18);
    transform: translateX(105%);
    transition: transform .28s ease;
    overflow-y: auto;
    z-index: 1100;
    visibility: hidden;
  }
  .jv-nav-offen .jv-nav { transform: none; visibility: visible; }
  .jv-nav-schleier {
    display: block; position: fixed; inset: 0; z-index: 1050;
    background: rgba(26, 23, 27, .45);
  }
  .jv-nav-schleier[hidden] { display: none; }
  .jv-nav-offen { overflow: hidden; }

  .jv-nav__kopf {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 10px 0 22px; height: 64px;
    background: var(--jv-gruen); color: #fff;
  }
  .jv-nav__titel { font: 700 14px/1 var(--jv-schrift); letter-spacing: 3px; text-transform: uppercase; }
  .jv-nav__zu { border: 0; background: none; color: #fff; font-size: 34px; line-height: 1; padding: 6px 12px; cursor: pointer; }

  .jv-nav__liste { display: block; padding: 8px 0 24px; }
  .jv-nav__punkt { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid #eee; }
  .jv-nav__punkt .jv-nav__link {
    flex: 1 1 auto;
    padding: 14px 22px;
    line-height: 1.3;
    font-size: 14px;
    letter-spacing: 2px;
  }
  .ebene-1 > .jv-nav__link::before { display: none; }
  .ebene-1.hat-unter > .jv-nav__link { padding-right: 8px; }
  .jv-nav__auf { width: 52px; height: 48px; margin: 0; border-left: 1px solid #eee; }
  .jv-nav__unter .jv-nav__auf { display: inline-flex; }

  .jv-nav__unter {
    position: static; flex: 0 0 100%;
    min-width: 0; padding: 0 0 6px; box-shadow: none;
    background: var(--jv-hell);
    opacity: 1; visibility: visible; transform: none;
    display: none;
    transition: none;
  }
  .jv-nav__punkt.offen > .jv-nav__unter { display: block; }
  .jv-nav__punkt.offen > .jv-nav__auf .jv-nav__pfeil { transform: translateY(2px) rotate(-135deg); }
  .jv-nav__unter .jv-nav__punkt { border-bottom: 0; }
  .jv-nav__unter .jv-nav__punkt + .jv-nav__punkt { border-top: 1px solid #e6e9e6; }
  .jv-nav__unter .jv-nav__link { padding: 12px 22px 12px 34px; letter-spacing: 1px; }
  .jv-nav__unter .jv-nav__unter .jv-nav__link { padding-left: 46px; }
}

/* --------------------------------------------------------------------------
   Termin-Band und Hinweisbalken (Position "banner")
   -------------------------------------------------------------------------- */
.jv-banner { position: relative; z-index: 5; }

.jv-band {
  background: #000;
  color: #fff;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
}
.jv-band::-webkit-scrollbar { display: none; }
.jv-band.zieht { cursor: grabbing; user-select: none; }
.jv-band.zieht a { pointer-events: none; }
.jv-band__spur { display: flex; width: max-content; padding: 8px 0; }
.jv-band__termin {
  position: relative;
  display: block;
  flex: 0 0 auto;
  max-width: 340px;
  padding: 0 16px;
  line-height: 1.3;
  color: #fff !important;
  text-decoration: none !important;
}
.jv-band__termin + .jv-band__termin::before {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0; width: 1px;
  background: linear-gradient(#fff 25%, rgba(128, 126, 124, 0) 0) 0 0 / 1px 4px repeat-y;
}
.jv-band__titel { display: block; font-weight: 700; font-size: 1.1em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jv-band__ort { padding-left: 8px; font-size: .8em; font-weight: 400; opacity: .7; }
.jv-band__datum { display: block; font-size: .8em; font-style: italic; }
.jv-band__termin:hover .jv-band__titel, .jv-band__termin:focus .jv-band__titel { text-decoration: underline; }

/* "Save the date" o. Ä.: Eigenes Modul vom Typ "Eigener Inhalt" in Position banner */
.jv-banner .mod-custom {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 12px 20px;
  background: var(--jv-gruen);
  color: #fff;
  font-weight: 700;
  font-size: 1.4em;
  line-height: 1.25;
  text-align: center;
}
.jv-banner .mod-custom p { margin: 0; }
@media (max-width: 767.98px) { .jv-banner .mod-custom { font-size: 1.1em; min-height: 52px; padding: 10px 15px; } }
.jv-banner .mod-custom a { color: #fff; text-decoration: underline; }

/* --------------------------------------------------------------------------
   Titelbanner mit schräger Unterkante
   -------------------------------------------------------------------------- */
.jv-titelbanner {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-height: 712px;
  padding: 220px 0 300px; /* wie bisher: Titel ca. 238 px unter der Oberkante */
  overflow: hidden;
  background: var(--jv-schwarz);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 100px));
  margin-bottom: 0; /* Inhalt beginnt unter der schrägen Kante, sonst überdeckt sie rechts die erste Textzeile */
}
.jv .jv-titelbanner__bild {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 50%;
}
.jv-titelbanner__innen {
  position: relative;
  width: 100%;
  max-width: calc(var(--jv-breite) + 2 * 15px);
  margin: 0 auto;
  padding: 0 45px 0 15px;
  color: #fff;
  text-shadow: rgba(26, 23, 27, .81) 3px 4px 3px;
  font-size: 20px;
  line-height: 1.6;
}
.jv .jv-titelbanner__innen h1, .jv .jv-titelbanner__innen h2, .jv .jv-titelbanner__innen h3 {
  margin: 18px 0;
  color: #fff;
  font-family: var(--jv-schrift-titel);
  font-size: 60px;
  line-height: 1.05;
  font-weight: 700;
}
.jv .jv-titelbanner__innen p { margin: 0 0 .5rem; color: rgba(255, 255, 255, .9); }
.jv .jv-titelbanner__innen a { color: #fff; }

/* Seiten mit Standardbild (Holz): flacher Banner wie bisher (332 px, Titel ca. 98 px unter der Oberkante) */
.jv-titelbanner--klein { min-height: 332px; padding: 80px 0 120px; }

/* Startseite: nur Bild, höher */
.jv-titelbanner--start { min-height: 760px; padding: 0; }
.jv-titelbanner--start .jv-titelbanner__bild { object-position: 50% 0; }

/* Ohne Bild: Titel auf Weiß */
.jv-titelbanner--schlicht {
  min-height: 0;
  padding: 80px 0 40px;
  background: #fff;
  clip-path: none;
  margin-bottom: 0;
}
.jv .jv-titelbanner--schlicht .jv-titelbanner__innen { color: var(--jv-text); text-shadow: none; }
.jv .jv-titelbanner--schlicht .jv-titelbanner__innen h1 { color: #333; text-shadow: none; }
.jv .jv-titelbanner--schlicht .jv-titelbanner__innen p { color: var(--jv-grau); }

@media (max-width: 991.98px) {
  .jv-titelbanner { min-height: 380px; padding: 90px 0 120px; align-items: center; }
  .jv-titelbanner--klein { min-height: 260px; padding: 60px 0 100px; }
  .jv-titelbanner--start { min-height: 460px; padding: 0; }
  .jv .jv-titelbanner__innen h1, .jv .jv-titelbanner__innen h2 { font-size: 48px; }
}
@media (max-width: 767.98px) {
  .jv-titelbanner { min-height: 300px; padding: 70px 0 90px; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 50px)); margin-bottom: 0; }
  .jv-titelbanner--klein { min-height: 200px; padding: 40px 0 70px; }
  .jv-titelbanner--start { min-height: 320px; padding: 0; }
  .jv-titelbanner--schlicht { min-height: 0; padding: 50px 0 20px; clip-path: none; margin-bottom: 0; }
  .jv-titelbanner__innen { font-size: 16px; padding-right: 15px; }
  .jv .jv-titelbanner__innen h1, .jv .jv-titelbanner__innen h2 { font-size: 36px; line-height: 1.15; }
}

/* --------------------------------------------------------------------------
   Hauptbereich
   -------------------------------------------------------------------------- */
.jv-haupt { position: relative; padding-bottom: 60px; }
.jv-haupt.jv-container { padding-top: 30px; }
.jv-haupt--beitrag { padding-top: 0; }
.jv-haupt--beitrag > .jv-beitrag:first-child { padding-top: 40px; }

.jv-inhalt {
  max-width: calc(var(--jv-breite) + 2 * 15px);
  margin: 0 auto;
  padding: 0 15px;
}
.jv-inhalt::after { content: ""; display: table; clear: both; }
.jv-inhalt img { border-radius: 8px; }

/* Aus dem Page Builder übernommene Struktur */
.jv-abschnitt { padding: 40px 0; }
.jv-abschnitt:first-child { padding-top: 20px; }
.jv-zeile { display: flex; flex-wrap: wrap; gap: 30px; }
.jv-spalte { flex: 1 1 0; min-width: 0; }
.jv-spalte-12 { flex-basis: 100%; }
.jv-spalte-9 { flex: 0 0 calc(75% - 7.5px); }
.jv-spalte-8 { flex: 0 0 calc(66.666% - 10px); }
.jv-spalte-6 { flex: 0 0 calc(50% - 15px); }
.jv-spalte-4 { flex: 0 0 calc(33.333% - 20px); }
.jv-spalte-3 { flex: 0 0 calc(25% - 22.5px); }
.jv-spalte-2 { flex: 0 0 calc(16.666% - 25px); }
.jv-baustein + .jv-baustein { margin-top: 30px; }
.jv-baustein figure { margin: 0; }
.jv-baustein figcaption, .jv-image-layouts p:last-child { font-size: .9rem; color: #555; margin-top: .4rem; }
.jv-heading h1, .jv-heading h2, .jv-heading h3, .jv-text-block h2, .jv-text-block h3 { color: #333; }
.jv-abschnitt > h2:first-child, .jv-abschnitt > h3:first-child { text-align: center; }
.jv-image img, .jv-image-layouts img { display: block; width: 100%; }
.jv-button a, .jv-buttons a, .jv-knopf {
  display: inline-block; padding: .55rem 1.4rem; border-radius: 4px;
  background: var(--jv-gruen); color: #fff; font-weight: 700;
}
.jv-button a:hover, .jv-buttons a:hover, .jv-knopf:hover { background: var(--jv-gruen-dunkel); color: #fff; text-decoration: none; }
.jv-video iframe, .jv-inhalt iframe[src*="youtube"] { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: 8px; }
.jv-accordion details, .jv-inhalt details {
  border-bottom: 1px solid #e3e3e3; padding: .8rem 0;
}
.jv-inhalt summary { cursor: pointer; font-weight: 700; color: var(--jv-gruen); }
.jv-inhalt table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; }
.jv-inhalt td, .jv-inhalt th { padding: .5rem .6rem; border-bottom: 1px solid #e3e3e3; vertical-align: top; }

@media (max-width: 767.98px) {
  .jv-zeile { gap: 24px; }
  .jv-spalte, [class*="jv-spalte-"] { flex: 0 0 100%; }
  .jv-abschnitt { padding: 24px 0; }
  .jv h1 { font-size: 2rem; }
  .jv h2 { font-size: 1.75rem; }
  .jv h3 { font-size: 1.45rem; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .jv-spalte-3, .jv-spalte-2 { flex: 0 0 calc(50% - 15px); }
}

/* Grüne Bänder über die volle Seitenbreite (wie die grünen Page-Builder-Abschnitte) */
body.jv { overflow-x: clip; }
.jv-abschnitt--gruen {
  --jv-rand: calc((min(100vw, var(--jv-seite)) - 100%) / 2);
  margin: 40px calc(var(--jv-rand) * -1);
  padding: 120px var(--jv-rand);
  background: var(--jv-gruen);
  color: #fff;
  clip-path: polygon(0 0, 100% 60px, 100% calc(100% - 60px), 0 100%);
}
.jv-abschnitt--gruen + .jv-abschnitt--gruen { margin-top: -40px; }
.jv .jv-abschnitt--gruen :is(h1, h2, h3, h4, h5, h6, p, li, td, th, dt, dd, figcaption, strong, em, b, span, small, label) { color: #fff; }
.jv .jv-abschnitt--gruen a { color: #fff; text-decoration: underline; }
.jv .jv-abschnitt--gruen td, .jv .jv-abschnitt--gruen th { border-color: rgba(255, 255, 255, .25); }
.jv .jv-abschnitt--gruen .jv-button a, .jv .jv-abschnitt--gruen a.jv-knopf { background: #fff; color: var(--jv-gruen); text-decoration: none; }
@media (max-width: 767.98px) {
  .jv-abschnitt--gruen { padding-top: 60px; padding-bottom: 60px; margin-top: 24px; margin-bottom: 24px; clip-path: polygon(0 0, 100% 30px, 100% calc(100% - 30px), 0 100%); }
  .jv-abschnitt--gruen + .jv-abschnitt--gruen { margin-top: -24px; }
}

/* Zeitleiste (Königspaare, Obristen) wie bisher: Linie in der Mitte, Einträge abwechselnd */
.jv-zeitleiste { list-style: none; position: relative; max-width: 900px; margin: 10px auto 20px; padding: 0; }
.jv-zeitleiste::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: #8fb393; transform: translateX(-1px); }
.jv-zeitleiste__eintrag { position: relative; display: grid; grid-template-columns: 1fr 1fr; column-gap: 70px; margin: 0 0 34px; align-items: start; }
.jv-zeitleiste__eintrag::before { content: ""; position: absolute; left: 50%; top: 12px; width: 14px; height: 14px; border: 2px solid var(--jv-gruen); border-radius: 50%; background: #fff; transform: translateX(-50%); z-index: 1; }
.jv-zeitleiste__eintrag:nth-child(odd) .jv-zeitleiste__karte { grid-column: 1; grid-row: 1; justify-self: end; }
.jv-zeitleiste__eintrag:nth-child(odd) .jv-zeitleiste__datum { grid-column: 2; grid-row: 1; justify-self: start; }
.jv-zeitleiste__eintrag:nth-child(even) .jv-zeitleiste__karte { grid-column: 2; grid-row: 1; justify-self: start; }
.jv-zeitleiste__eintrag:nth-child(even) .jv-zeitleiste__datum { grid-column: 1; grid-row: 1; justify-self: end; }
.jv-zeitleiste__datum { padding-top: 6px; font-weight: 700; color: var(--jv-gruen); white-space: nowrap; }
.jv-zeitleiste__karte { width: 100%; max-width: 270px; padding: 12px 12px 14px; background: #fff; border: 1px solid #e6e6e6; box-shadow: 0 2px 6px rgba(0, 0, 0, .06); text-align: center; }
.jv .jv-zeitleiste__karte img { display: block; width: 100%; max-width: 240px; margin: 6px auto 0; border-radius: 6px; }
.jv .jv-zeitleiste__titel { margin: 0 0 6px; font-size: 14px; line-height: 1.35; font-weight: 700; }
.jv .jv-zeitleiste__karte p:last-child { margin-bottom: 0; }
@media (max-width: 767.98px) {
  .jv-zeitleiste::before { left: 12px; }
  .jv-zeitleiste__eintrag { display: block; padding-left: 38px; margin-bottom: 26px; }
  .jv-zeitleiste__eintrag::before { left: 12px; top: 4px; }
  .jv-zeitleiste__datum { display: block; padding: 0 0 6px; }
  .jv-zeitleiste__karte { max-width: none; text-align: left; }
  .jv .jv-zeitleiste__karte img { margin-left: 0; }
}

/* Platzhalter, die beim Umwandeln nicht ersetzt wurden, nie öffentlich zeigen */
.jv-platzhalter { display: none; }

/* Neuigkeiten (Beiträge – Newsflash, horizontal) */
.jv .mod-articlesnews-horizontal, .jv .newsflash-horiz {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px;
  list-style: none; margin: 0; padding: 0;
}
.jv .mod-articlesnews-horizontal > li, .jv .newsflash-horiz > li { margin: 0; padding: 0; width: auto; }
.jv .newsflash-title, .jv .mod-articlesnews-horizontal h3, .jv .mod-articlesnews-horizontal h4 {
  font-family: var(--jv-schrift); font-size: 28px; line-height: 1.2; margin: .4rem 0 .5rem;
}
.jv .newsflash-title a, .jv .mod-articlesnews-horizontal h3 a, .jv .mod-articlesnews-horizontal h4 a { color: var(--jv-gruen); }
.jv .mod-articlesnews-horizontal figure, .jv .newsflash-image { margin: 0 0 10px; }
.jv .mod-articlesnews-horizontal img { border-radius: 5px; width: 100%; }
.jv .mod-articlesnews-horizontal .readmore a, .jv .mod-articlesnews-horizontal a.readmore { font-weight: 400; }
@media (max-width: 991.98px) { .jv .mod-articlesnews-horizontal, .jv .newsflash-horiz { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .jv .mod-articlesnews-horizontal, .jv .newsflash-horiz { grid-template-columns: 1fr; } }

/* Neuigkeiten (eigenes Layout jv-neuigkeiten) */
.jv-spalte > .jv-text-block:has(+ .jv-neuigkeiten) { text-align: center; margin-bottom: 40px; }
.jv .jv-spalte > .jv-text-block:has(+ .jv-neuigkeiten) h3 { font-size: 35px; margin-bottom: .4rem; }
.jv-spalte > .jv-text-block:has(+ .jv-neuigkeiten) p { color: var(--jv-grau); }
.jv-neuigkeiten-liste {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px 25px; align-items: start;
}
.jv-neuigkeit__bild { display: block; margin-bottom: 10px; line-height: 0; }
.jv-neuigkeit__bild img { width: 100%; border-radius: 5px; }
.jv .jv-neuigkeit__titel { font-family: var(--jv-schrift); font-size: 28px; line-height: 1.2; margin: 0 0 .5rem; }
.jv .jv-neuigkeit__titel a { color: var(--jv-gruen); }
.jv-neuigkeit__datum { font-size: 13px; color: var(--jv-grau); margin: 0 0 .9rem !important; }
.jv-neuigkeit__text { margin-bottom: 0 !important; }
.jv-neuigkeit__weiter { display: inline-block; }
@media (max-width: 991.98px) { .jv-neuigkeiten-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .jv-neuigkeiten-liste { grid-template-columns: 1fr; gap: 40px; } }

/* Beitragsinfos (Datum usw.) */
.jv .article-info { color: var(--jv-grau); font-size: .85rem; margin-bottom: 1rem; }
.jv .article-info dd { display: inline-block; margin-right: 1rem; }

/* --------------------------------------------------------------------------
   Komponenten: Überschrift steht schon im Titelbanner
   -------------------------------------------------------------------------- */
.jv.com_jem.view-eventslist #jem .componentheading,
.jv.com_jem.view-calendar #jem .componentheading,
.jv.com_jem.view-category #jem .componentheading,
.jv.com_jem.view-categories #jem .componentheading,
.jv.com_jem.view-venue #jem .componentheading,
.jv.com_jem.view-event #jem .componentheading,
.jv .eventgallery-category-headline,
.jv.com_contact .page-header:first-child { display: none; }

.jv #jem a { color: var(--jv-gruen); }
.jv #jem table { width: 100%; }

/* JEM-Terminlisten kompakt, alle wie "Termine Kompanien" (JEM 5 hebt "featured" sonst dunkelgrau hervor) */
.jv #jem ul.eventlist { margin: 0; padding: 0; border: 1px solid #e3e3e3; border-bottom: 0; }
.jv #jem ul.eventlist li.jem-event,
.jv #jem ul.eventlist li.jem-event.jem-featured { background: #f9f9f9; padding: 8px 10px; border-bottom: 1px solid #e3e3e3; }
.jv #jem ul.eventlist li.jem-event:nth-child(even) { background: #f0f0f0; }
.jv #jem ul.eventlist li.jem-event:hover { background: #eaf2eb; }
.jv #jem ul.eventlist .jem-list-row { padding: 0; align-items: center; }
.jv #jem .jem-event-date { margin-left: 0; line-height: 1.6; }
.jv #jem .jem-event-title, .jv #jem .jem-event-title a { font-size: 16px; line-height: 1.25; }
.jv #jem .jem-event-venue, .jv #jem .jem-event-category { font-size: 14px; line-height: 1.5; }
.jv #jem .jem-sort .jem-list-row { padding: 4px 10px; }
.jv #jem .jem-event-title { hyphens: manual; }
/* Terminliste: Titel steckt in h4 (Titelschrift) – wie die Kompanien-Liste in Grundschrift, mit Sprechblase davor */
.jv #jem .jem-event-title > h4 { margin: 0; font-family: var(--jv-schrift); font-size: 16px; font-weight: 400; line-height: 1.25; }
.jv #jem .jem-event-title > h4 a { font-family: inherit; }
.jv #jem .jem-event-title > h4::before { content: "\f075"; font-family: "Font Awesome 6 Free"; font-weight: 900; margin-right: .3em; }

/* Festes Spaltenraster für alle JEM-Listen (fehlt der Ort, verrutscht sonst alles) */
@media (min-width: 768px) {
  .jv #jem .jem-list-row {
    display: grid !important;
    grid-template-columns: 20% minmax(0, 1fr) 22% 15%;
    column-gap: 12px;
    align-items: center;
  }
  .jv #jem .jem-list-row > * { width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; text-align: left !important; }
  .jv #jem .jem-list-row > .jem-event-date, .jv #jem .jem-sort .jem-list-row > :nth-child(1) { grid-column: 1; }
  .jv #jem .jem-list-row > .jem-event-title, .jv #jem .jem-sort .jem-list-row > :nth-child(2) { grid-column: 2; }
  .jv #jem .jem-list-row > .jem-event-venue, .jv #jem .jem-sort .jem-list-row > :nth-child(3) { grid-column: 3; }
  .jv #jem .jem-list-row > .jem-event-category, .jv #jem .jem-sort .jem-list-row > :nth-child(4) { grid-column: 4; }
  .jv #jem .jem-list-row > meta { display: none; }
}
/* Kategorien-Ansicht ("Termine Kompanien"): keine Filterleiste */
.jv.view-categories #jem .floattext { display: none !important; }
.jv #jem div.jem > h2 { font-weight: 700; font-size: 2rem; margin: 10px 0 .3rem; }
.jv #jem div.jem > h2 a { color: var(--jv-gruen); }
.jv #jem div.jem > h3 { font-size: 1.6rem; margin-top: 1rem; }
.jv #jem .jem-category-events-button { --bs-btn-color: #333; background: #eee !important; border: 0 !important; color: #333 !important; font-size: 14px; padding: .4rem .8rem; margin-top: 10px; }
.jv #jem .jem-category-events-button:hover { background: #ddd; color: #000; text-decoration: none; }
.jv .pagination .page-item.active .page-link,
.jv #jem .pagination .page-item.active .page-link { background: var(--jv-gruen); border-color: var(--jv-gruen); color: #fff; } /* #jem: sonst gewinnt die grüne JEM-Linkfarbe */
.jv .pagination .page-link { color: var(--jv-gruen); }
/* Termin-Detailseite: Titel steht im Banner, Angaben schlicht wie bisher */
.jv.view-event #jem > h2.jem { display: none; }
.jv #jem .jem-event-overview-panel, .jv #jem .jem-event-venue-overview-panel { border: 0; background: none; box-shadow: none; padding: 0; }
.jv #jem dl.jem-dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 24px; margin: 0 0 1rem; }
.jv #jem dl.jem-dl dt { font-weight: 700; margin: 0; }
.jv #jem dl.jem-dl dd { margin: 0; }
.jv #jem h2.jem-location { font-size: 1.6rem; margin-top: 1.5rem; }
.jv #jem .venue_country_flag { width: 24px; height: auto; vertical-align: middle; }
.jv #jem #jem_filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.jv #jem #jem_filter > * { margin: 0; }
.jv #jem .copyright { display: none; } /* "Powered by JEM" war auf der alten Seite auch nicht zu sehen */
/* JEM-Werkzeugleiste (Link kopieren, Drucken, PDF, iCal, Ansicht): einheitliche runde Knöpfe statt gemischter Grafiken */
.jv #jem .buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; float: none; margin: 1rem 0; }
.jv #jem .buttons > a { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 38px; height: 38px; margin: 0; padding: 0; border: 1px solid #cfdccf; border-radius: 50%; background: #fff; color: var(--jv-gruen); text-decoration: none; transition: background-color .15s, border-color .15s, color .15s; }
.jv #jem .buttons > a:hover, .jv #jem .buttons > a:focus-visible { background: var(--jv-gruen); border-color: var(--jv-gruen); color: #fff; }
.jv #jem .buttons > a > img { display: none; }
.jv #jem .buttons > a > .fa, .jv #jem .buttons > a::before { width: auto; margin: 0; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 16px; line-height: 1; color: inherit; }
.jv #jem .buttons > a.jem-share-link::before { content: "\f1e0"; }
.jv #jem .buttons > a[href*="print=1"]::before { content: "\f02f"; }
.jv #jem .buttons > a[href*="layout=ics"]::before { content: "\f271"; }
@media (max-width: 767.98px) {
  .jv #jem .jem-sort { display: none; }
  .jv #jem ul.eventlist .jem-list-row { display: flex !important; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 6px; }
  .jv #jem ul.eventlist .jem-list-row > div { width: 100% !important; max-width: none; flex: none; margin: 0; padding: 0; text-align: left !important; }
  .jv #jem .jem-event-date { order: -1; font-size: 14px; }
  .jv #jem .jem-event-title, .jv #jem .jem-event-title a { font-size: 16px; }
}
.jv .eventgallery-events-list, .jv .eventgallery-thumbnails { margin-top: 10px; }
/* Event Gallery: Beschriftung auf den Kacheln weiß und lesbar */
.jv.com_eventgallery .data, .jv.com_eventgallery .data * { color: #fff; }
.jv.com_eventgallery .data h2, .jv.com_eventgallery .data h3 { font-size: 22px; margin: 0; text-shadow: rgba(0, 0, 0, .6) 1px 1px 3px; }

/* Kontaktseiten (Kontakt, Hofstaat, Mitgliederverwaltung): Einleitung oben, keine Doppel-Überschriften */
.jv.com_contact .com-contact { display: flex; flex-direction: column; }
.jv.com_contact .com-contact > h2, .jv.com_contact .com-contact > h3,
.jv.com_contact .com-contact__form legend,
.jv.com_contact .com-contact__miscinfo dt { display: none; }
.jv.com_contact .com-contact__miscinfo { order: -1; margin-bottom: 1.5rem; }
.jv.com_contact .com-contact__miscinfo dl, .jv.com_contact .com-contact__miscinfo dd { margin: 0; padding: 0; }
/* Einleitung aus den alten Page-Builder-Abschnitten: ohne deren 40-px-Polster, leere Abschnitte weg */
.jv.com_contact .contact-misc > .jv-abschnitt { padding: 0; }
.jv.com_contact .contact-misc > .jv-abschnitt + .jv-abschnitt { margin-top: 1.25rem; }
.jv.com_contact .contact-misc > .jv-abschnitt:not(:has(.jv-baustein)) { display: none; }
.jv.com_contact .contact-misc p:last-child { margin-bottom: 0; }
.jv.com_contact .contact-misc > .jv-abschnitt:first-child:has(h1, h2, h3, h4):not(:has(img, table, ul)) { display: none; } /* Seitentitel steht schon im Banner */
.jv.com_contact .com-contact__form .control-group { margin-bottom: .8rem; }
.jv.com_contact .com-contact__form .control-label { font-weight: 700; font-size: 14px; }
.jv.com_contact .com-contact__form fieldset.checkboxes { margin-bottom: 0; }

/* Einleitung über Personen-/Bilderreihen zentriert (wie die Abschnittstitel auf der alten Seite) */
.jv-zeile > .jv-spalte-12:first-child:has(+ .jv-spalte) .jv-text-block { text-align: center; }
.jv-zeile > .jv-spalte-12:first-child:has(+ .jv-spalte) { margin-bottom: 10px; }
.jv-single-image { text-align: center; }
.jv .jv-single-image img { display: inline-block; width: auto; max-width: 100%; }

/* Formulare */
.jv .form-control, .jv .form-select { border-radius: 4px; }
.jv .contact-form .btn-primary, .jv .com-contact__form .btn-primary { padding: .6rem 1.6rem; }

/* --------------------------------------------------------------------------
   Fußzeile
   -------------------------------------------------------------------------- */
.jv-fuss {
  background: #fff;
  color: var(--jv-grau);
  font-size: 14px;
  line-height: 1.75;
  padding: 45px 0 50px;
}
.jv-fuss p { margin: 0; }
.jv-fuss a { color: var(--jv-grau); }
.jv-fuss a:hover { color: var(--jv-gruen); }
.jv-fuss .mod-custom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; }
.jv-fuss ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.25rem; }

/* --------------------------------------------------------------------------
   Zwei-Klick: externe Inhalte (z. B. Mailjet-Formular) erst nach Klick laden
   -------------------------------------------------------------------------- */
.jv-zweiklick {
  max-width: 720px;
  margin: 1.5rem auto;
  padding: 1.75rem 1.5rem;
  text-align: center;
  background: #f4f8f4;
  border: 2px dashed #8fb393;
  border-radius: 6px;
}
.jv-zweiklick p { margin: 0 0 1rem; }
.jv-zweiklick .jv-zweiklick__knopf { border: 0; cursor: pointer; font: inherit; }
.jv-zweiklick .jv-zweiklick__alt { margin: 1rem 0 0; font-size: .9rem; }
.jv-zweiklick.geladen { padding: 0; background: none; border: 0; }
.jv-zweiklick iframe { display: block; width: 100%; border: 0; }

/* Cookie-Hinweis-Plugin bleibt, wie es ist */

@media print {
  .jv-kopf, .jv-banner, .jv-fuss, .jv-nav { display: none !important; }
  .jv-titelbanner { min-height: 0; padding: 0; background: none; clip-path: none; }
  .jv-titelbanner__bild { display: none; }
  .jv .jv-titelbanner__innen, .jv .jv-titelbanner__innen h1 { color: #000; text-shadow: none; }
}
