/* =========================
   TEXT ONLY
   Nur behalten, wenn der Paragraph-Typ "nur_text"
   an anderer Stelle weiter benutzt wird.
   ========================= */

.paragraph--type--nur-text {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px 0;
  box-sizing: border-box;
}

/* Titel */
.paragraph--type--nur-text .field--name-field-services-title {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 16px;
  color: #222;
}

/* Falls das innere Wrapper-Div mitgestylt werden soll */
.paragraph--type--nur-text .field--name-field-services-title .field__item {
  margin: 0;
}

/* Beschreibung / Fließtext */
.paragraph--type--nur-text .field--name-field-about-descri {
  font-size: 1.1rem;
  line-height: 1.6;
  color: #444;
}

/* Absätze im Textfeld */
.paragraph--type--nur-text .field--name-field-about-descri p {
  margin-top: 0;
  margin-bottom: 1em;
}


/* Banner-Überschrift */

.banner-caption h1,
.banner_caption h1 {
  font-weight: 700;
  font-size: 45px;
  letter-spacing: 1px;
  line-height: 42px;
  color: #312a26;
}

/* Banner-Text */

.banner-caption p,
.banner_caption p {
  font-size: 22px;
  color: #000000;
  line-height: 1.35;
}


/* --------------------------------------------------
   Paragraph "Nur Text": Textbereich auf Desktop begrenzen
   -------------------------------------------------- */

@media (min-width: 992px) {
  .paragraph--type--nur-text .field--name-field-about-descri {
    width: 75%;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 991px) {
  .paragraph--type--nur-text .field--name-field-about-descri {
    width: 100%;
    max-width: 100%;
  }
}

.paragraph--type--nur-text .field--name-field-about-descri {
  padding-left: 16px;
  padding-right: 16px;
  box-sizing: border-box;
}

/* --------------------------------------------------
   Letzter Menüpunkt: Hintergrund und Rahmen entfernen
   -------------------------------------------------- */

.navbar-light .navbar-nav li:last-child a,
.navbar-light .navbar-nav li:last-child a:hover,
.navbar-light .navbar-nav li:last-child a:focus,
.navbar-light .navbar-nav li:last-child a:active {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* --------------------------------------------------
   Aktiver Menüpunkt: untere Linie dauerhaft entfernen
   -------------------------------------------------- */

.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .show > .nav-link {
  border-bottom: none !important;
}


/* =========================
   Bilder responsive
   ========================= */

.text-formatted img,
.field--name-body img,
.field--type-text-long img,
.field--type-text-with-summary img {
  max-width: 100%;
  height: auto;
}

.text-formatted img.align-left,
.field--name-body img.align-left,
.field--type-text-long img.align-left,
.field--type-text-with-summary img.align-left {
  float: left;
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 24px 16px 0;
}

/* =========================
   Ende
   Bilder responsive
   ========================= */


/* =========================
   FOOTER
   ========================= */

footer,
.site-footer,
.region-footer,
#footer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 120px !important;
  overflow: visible !important;
  position: relative !important;
  clear: both !important;
  z-index: 5 !important;
}

section#footer {
  padding-top: 0 !important;
  padding-bottom: 50px !important;
}

.footer-columns img {
  width: auto !important;
  height: 140px !important;
  margin-top: 7px !important;
  margin-bottom: 10px !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
  box-sizing: border-box;
}

/* ==========================================
   Footer-Menü in footer col 3 – kompakt zentriert
   ========================================== */

h2#block-fwn-child-footer-2-menu {
  text-align: center !important;
  margin-bottom: 12px !important;
}

.region-footer-col-3 .block-menu .nav,
.region-footer-col-3 .block-menu .menu {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  padding-left: 0 !important;
  margin: 0 auto !important;
  list-style: none !important;
  width: 100%;
}

.region-footer-col-3 .block-menu .nav li,
.region-footer-col-3 .block-menu .menu li {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

.region-footer-col-3 .block-menu .nav li a,
.region-footer-col-3 .block-menu .menu li a {
  display: inline-block !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
  text-align: center !important;
}


#main-content {
  padding-bottom: 20px !important;
}

/* =========================
   SPEZIELLE EPT-SLIDESHOW
   für paragraph-id-208, paragraph-id-214 und paragraph-id-271
   funktioniert auch außerhalb der Startseite
   ========================= */

/* Title-Feld komplett ausblenden */
:is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .field--name-field-ept-title,
:is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .field--name-field-ept-title .field__item {
  display: none !important;
}

/* Falls der Titel zusätzlich als eigenes h2 ausgegeben wird */
:is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) > h2,
:is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .ept-container > h2 {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (min-width: 901px) {
  :is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .ept-container {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) !important;
    grid-template-areas: "text slider" !important;
    gap: 2rem !important;
    align-items: center !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  :is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .field--name-field-ept-text {
    grid-area: text !important;
    min-width: 0 !important;
    align-self: center !important;
    margin: 0 !important;
  }

  :is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .field--name-field-ept-slideshow {
    grid-area: slider !important;
    min-width: 0 !important;
    margin: 20px 0 30px 20px !important;
    padding: 10px !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 900px) {
  :is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .ept-container {
    display: block !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  :is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .field--name-field-ept-slideshow {
    margin: 20px 0 30px 0 !important;
    padding: 10px !important;
    box-sizing: border-box !important;
  }
}

:is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .field--name-field-ept-text p {
  margin-top: 0 !important;
  margin-bottom: 1em !important;
}

/* Slideshow-Bilder sicher begrenzen */
:is(.paragraph-id-208, .paragraph-id-214, .paragraph-id-271) .field--name-field-ept-slideshow img {
  display: block !important;
  max-width: 100% !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}


/* =====================================================
   MediaCards Grid – Breite, Abstand nach oben, Kartenoptik
   ===================================================== */

/* ==========================================
   MediaCards Grid – kompakte Korrekturen
   nur für /media-cards-grid
   ========================================== */

/* 1) Inhalt unter das halbtransparente Menü schieben */
body.path-media-cards-grid #main-content,
body.path-media-cards-grid main#content,
body.path-media-cards-grid .region-content {
  padding-top: 200px !important;
}

/* 2) Drei gleich breite Spalten */
body.path-media-cards-grid .views-view-responsive-grid,
body.path-media-cards-grid .view-content {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: start !important;
}

body.path-media-cards-grid .views-view-responsive-grid__item,
body.path-media-cards-grid .view-content > div {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* 3) Titel der einzelnen Karten zentrieren */
body.path-media-cards-grid .node__title,
body.path-media-cards-grid .node__title a,
body.path-media-cards-grid h2 {
  text-align: center !important;
}

/* 4) Bilder zentrieren, aber nicht über die Spalte hinaus laufen lassen */
body.path-media-cards-grid .field--name-field-medien img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 5) Innenabstand für die Textfelder */
body.path-media-cards-grid .field--name-field-card-text,
body.path-media-cards-grid .field--name-field-card-text-long {
  padding: 0 14px 14px 14px !important;
  box-sizing: border-box !important;
}

/* Optional: etwas Innenabstand auch für die Überschrift */
body.path-media-cards-grid .node__title,
body.path-media-cards-grid h2 {
  padding: 0 14px !important;
  box-sizing: border-box !important;
}

/* 6) Responsive: Tablet */
@media (max-width: 900px) {
  body.path-media-cards-grid .views-view-responsive-grid,
  body.path-media-cards-grid .view-content {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* 7) Responsive: Smartphone */
@media (max-width: 600px) {
  body.path-media-cards-grid .views-view-responsive-grid,
  body.path-media-cards-grid .view-content {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================
   MediaCards: Karten in einer Zeile gleich hoch
   ========================================== */

body.path-media-cards-grid .views-view-responsive-grid,
body.path-media-cards-grid .view-content {
  align-items: stretch !important;
}

body.path-media-cards-grid .views-view-responsive-grid__item,
body.path-media-cards-grid .view-content > div {
  display: flex !important;
}

body.path-media-cards-grid .views-view-responsive-grid__item > *,
body.path-media-cards-grid .view-content > div > * {
  width: 100% !important;
  height: 100% !important;
  box-sizing: border-box !important;
}

body.path-media-cards-grid article,
body.path-media-cards-grid article.node {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
}



/* ==========================================
   MediaCard Views Paragraph
   UND View Reference Block Paragraph
   gleicher Inhaltsrahmen auf allen Seiten
   ========================================== */

.paragraph--type--mediacard-views .field--name-field-mediacards-ansicht,
.paragraph--type--view-reference-block .field--name-field-view-reference-block,
.paragraph--type--view-reference-block .field--type-view-reference {
  max-width: 1280px !important;

  margin-left: auto !important;
  margin-right: auto !important;

  padding-left: 20px !important;
  padding-right: 20px !important;
  padding-top: 20px !important;
  padding-bottom: 20px !important;

  box-sizing: border-box !important;
}

/* MediaCards im Paragraph:
   Titel, Kurztext und Feldlabel ausblenden */

.paragraph--type--mediacard-views .field--name-field-mediacards-ansicht .node__title,
.paragraph--type--mediacard-views .field--name-field-mediacards-ansicht .field--name-field-card-text {
  display: none !important;
}

/* Audio-Balken zentrieren – stabil */
.paragraph--type--mediacard-views .field--name-field-mediacards-ansicht audio {
  display: block !important;
  width: 320px !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ==========================================
   Ende
   MediaCard Views Paragraph
   ========================================== */


/* --------------------------------------------------
   Navbar: aktive Menüfarbe überschreiben
   -------------------------------------------------- */

#header .navbar-light .navbar-nav .nav-link.active,
#header .navbar-light .navbar-nav .active > .nav-link,
.other-page-header .navbar-light .navbar-nav .nav-link.active,
.other-page-header .navbar-light .navbar-nav .active > .nav-link {
  color: #139a51 !important;
}


/* =========================================================
   MediaCards Schulen – CardLink / Weitere Infos zentrieren
   Wir nutzen das echte Drupal-Label ".field__label"
   und kein zusätzliches ::before.
   ========================================================= */

/* Gesamtes Link-Feld zentrieren */
.schulen-mediacards .field--name-field-card-link,
.views-view-responsive-grid .field--name-field-card-link {
  display: block !important;

  width: 100% !important;
  max-width: 760px !important;

  margin-top: 28px !important;
  margin-left: auto !important;
  margin-right: auto !important;

  padding: 0 !important;

  text-align: center !important;
  float: none !important;
  clear: both !important;
}

/* Drupal-Label "Weitere Infos:" sichtbar lassen und zentrieren */
.schulen-mediacards .field--name-field-card-link .field__label,
.views-view-responsive-grid .field--name-field-card-link .field__label {
  display: block !important;

  width: 100% !important;

  margin: 0 0 2px 0 !important;
  padding: 0 !important;

  text-align: center !important;
  font-weight: 500 !important;

  float: none !important;
  clear: both !important;
}

/* Innerer Link-Wrapper */
.schulen-mediacards .field--name-field-card-link .field__items,
.schulen-mediacards .field--name-field-card-link .field__item,
.views-view-responsive-grid .field--name-field-card-link .field__items,
.views-view-responsive-grid .field--name-field-card-link .field__item {
  display: block !important;

  width: 100% !important;
  max-width: 760px !important;

  margin-left: auto !important;
  margin-right: auto !important;

  padding: 0 !important;

  text-align: center !important;
  float: none !important;
  clear: both !important;
}

/* Link selbst */
.schulen-mediacards .field--name-field-card-link a,
.views-view-responsive-grid .field--name-field-card-link a {
  display: inline-block !important;

  margin-left: auto !important;
  margin-right: auto !important;

  text-align: center !important;
  float: none !important;
}


/* =========================================================
   Basic Page – nur Bilder im eigentlichen Seiteninhalt skalieren
   Header, Logo, Footer, Icons usw. bleiben unberührt.
   ========================================================= */

/* Desktop */
body.page-node-type-page article#main-content .field--name-body img,
body.page-node-type-page article#main-content .text-formatted img,
body.path-schulen article#main-content .field--name-body img,
body.path-schulen article#main-content .text-formatted img {
  display: block !important;

  width: 700px !important;
  max-width: 100% !important;
  height: auto !important;

  margin-left: auto !important;
  margin-right: auto !important;

  float: none !important;
}

/* Tablet */
@media (max-width: 1024px) {
  body.page-node-type-page article#main-content .field--name-body img,
  body.page-node-type-page article#main-content .text-formatted img,
  body.path-schulen article#main-content .field--name-body img,
  body.path-schulen article#main-content .text-formatted img {
    width: 650px !important;
    max-width: 100% !important;
    height: auto !important;
  }
}

/* Handy */
@media (max-width: 600px) {
  body.page-node-type-page article#main-content .field--name-body img,
  body.page-node-type-page article#main-content .text-formatted img,
  body.path-schulen article#main-content .field--name-body img,
  body.path-schulen article#main-content .text-formatted img {
    width: 340px !important;
    max-width: 92vw !important;
    height: auto !important;
  }
}

/* Bild links, Text fließt rechts daran vorbei */
.bild-links-textfluss {
  float: left;
  width: 256px;
  max-width: 40%;
  height: auto;
  margin: 0 32px 24px 0;
}

/* Ab hier endet der Textfluss neben dem Bild */
.bildfluss-ende {
  clear: both;
}

/* Auf Handy: Bild nicht mehr floaten */
@media (max-width: 768px) {
  .bild-links-textfluss {
    float: none;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 24px auto;
  }
}


/* ==================================================
   HEADER / NAVBAR – Basis
   ================================================== */

/*
   WICHTIG:
   Dieser alte Testblock bleibt deaktiviert.
   Sonst wird #header-top komplett ausgeblendet und spätere
   mobile Regeln laufen gegeneinander.

#header-top {
  display: none !important;
}
*/

/* --------------------------------------------------
   Header / Navbar Höhe
   -------------------------------------------------- */

.navbar {
  height: 206px;
}

/*
   WICHTIG:
   Früher stand hier height: 50px.
   Das führte dazu, dass die 206px hohe Navbar aus dem Header
   herausragte. Deshalb auto.
*/
#header {
  height: auto !important;
}

/* Abstand Top-Banner unter fixed Header – nur Desktop */
@media (min-width: 992px) {
  section#top-banner.banner-main {
    padding: 0 !important;
    margin-top: 206px !important;
  }
}

/* Mobile: kein künstlicher Abstand für fixed Header */
@media (max-width: 991.98px) {
  body:not(.path-frontpage) section#top-banner.banner-main {
    padding: 0 !important;
    margin-top: 0 !important;
  }
}

/* Logo-Position aus style-legacy im Child-Theme überschreiben */
a.logo {
  margin-top: 20px !important;
  position: absolute !important;
  left: 30px !important;
  top: 0px !important;
  padding: 0px !important;
}

.flexslider {
  margin: 0px 0 60px;
}

/* --------------------------------------------------
   Sticky-Header: dunkle Hintergrundfarbe ausschalten
   -------------------------------------------------- */

#header.sticky,
#header.main.sticky,
#header .sticky {
  background-color: transparent !important;
  background: transparent !important;
}


/* --------------------------------------------------
   Navigation: Desktop normal, Mobile/Tablet Hamburger
   -------------------------------------------------- */

/* Desktop ab 1150px: normales Menü, Hamburger aus */
@media (min-width: 1150px) {

  #mainNav .navbar-toggler {
    display: none !important;
  }

  #mainNav #navbarResponsive {
    display: flex !important;
    height: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* Mobile / Tablet bis 1149px */
@media (max-width: 1149px) {

  #mainNav .container {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
  }

  /* Logo links – wird im kleineren Mobile-Block bis 991.98px überschrieben */
  #mainNav .logo {
    order: 1;
    margin-right: auto !important;
    flex: 0 1 auto !important;
  }

  /* Hamburger rechts, aber NICHT absolut positioniert –
     wird im kleineren Mobile-Block bis 991.98px überschrieben */
  #mainNav .navbar-toggler,
  #mainNav .navbar-toggler-right,
  #mainNav.navbar-expand-lg .navbar-toggler {
    order: 2 !important;

    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;

    position: static !important;
    top: auto !important;
    right: auto !important;
    transform: none !important;

    float: none !important;
    margin-left: auto !important;
    margin-right: 0 !important;

    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 40px !important;

    padding: 0 !important;
    line-height: 1 !important;

    align-items: center !important;
    justify-content: center !important;

    z-index: 99999 !important;
    pointer-events: auto !important;
  }

  #mainNav .navbar-toggler i {
    font-size: 22px !important;
    line-height: 1 !important;
  }

  /* Menü geschlossen halten */
  #mainNav #navbarResponsive.collapse:not(.show):not(.in) {
    display: none !important;
  }

  /* Geöffnetes Menü rechts unter dem Button */
  #mainNav #navbarResponsive.show,
  #mainNav #navbarResponsive.in {
    order: 3 !important;
    display: block !important;

    flex: 0 0 auto !important;
    width: auto !important;
    max-width: calc(100vw - 30px) !important;

    margin-left: auto !important;
    margin-right: 0 !important;
    margin-top: 10px !important;

    text-align: right !important;
    height: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  #mainNav #navbarResponsive .navbar-nav {
    display: block !important;
    width: auto !important;
    margin-left: auto !important;
  }

  #mainNav #navbarResponsive .nav-item {
    width: auto !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  #mainNav #navbarResponsive .nav-link {
    display: block !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  #mainNav #navbarResponsive .dropdown-menu {
    position: static !important;
    float: none !important;
    width: auto !important;
    min-width: auto !important;
    text-align: right !important;
  }
}


/* ==================================================
   Simple Timeline – Friendship with Nature
   stabile Gesamtfassung
   Zeitraum oben in der Karte
   Bild feste Breite
   Text schmaler unter dem Bild
   Marker/Linie werden NICHT verschoben
   ================================================== */

/* --------------------------------------------------
   1. Gesamte Timeline zentrieren
   -------------------------------------------------- */

.fwn-timeline-wrapper {
  width: min(1200px, calc(100% - 40px));
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 0;
  box-sizing: border-box;
}

/* --------------------------------------------------
   2. Liste neutralisieren
   -------------------------------------------------- */

.fwn-timeline-wrapper .timeline-list,
.fwn-timeline-wrapper .fwn-timeline-list,
.fwn-timeline-wrapper ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* --------------------------------------------------
   3. Einzelne Timeline-Einträge
   -------------------------------------------------- */

.fwn-timeline-wrapper .timeline-item {
  position: relative !important;
  margin-bottom: 80px !important;
  box-sizing: border-box;
  overflow: visible !important;
}

/* --------------------------------------------------
   4. Karte / Inhaltsbereich
   -------------------------------------------------- */

.fwn-timeline-wrapper .timeline-item-wrapper {
  position: relative !important;
  max-width: 520px !important;
  box-sizing: border-box;

  background: #fffdf4;
  border: 1px solid rgba(0, 0, 0, 0.14);
  border-radius: 14px;
  padding: 22px;

  overflow: visible !important;
}

/* --------------------------------------------------
   5. Zeitraum / Jahr – echtes Feld: field_year
   stabile Variante: oben in der Karte
   -------------------------------------------------- */

.fwn-timeline-wrapper .views-field-field-year {
  position: static !important;
  transform: none !important;
  z-index: auto !important;

  display: block !important;
  width: fit-content;
  min-width: 100px;

  margin: 0 0 18px auto !important;

  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;

  white-space: nowrap !important;
  text-align: right !important;

  font-size: 2.25rem !important;
  font-weight: 1200 !important;
  line-height: 1.25 !important;
  color: #3a3128 !important;
}

/* Falls Label und Wert getrennt ausgegeben werden */
.fwn-timeline-wrapper .views-field-field-year .views-label,
.fwn-timeline-wrapper .views-field-field-year .field-content {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

/* --------------------------------------------------
   6. Bild / Medienfeld – echtes Feld: field_medien
   feste Bildbreite
   -------------------------------------------------- */

.fwn-timeline-wrapper .views-field-field-medien {
  width: 420px !important;
  max-width: 420px !important;
  margin: 0 auto 18px auto !important;
  box-sizing: border-box;
}

.fwn-timeline-wrapper .views-field-field-medien img {
  width: 320px !important;
  max-width: 320px !important;
  height: auto !important;

  display: block !important;
  margin: 0 auto !important;

  border-radius: 10px;
}

/* --------------------------------------------------
   7. Titel, Text und Link unter dem Bild
   -------------------------------------------------- */

.fwn-timeline-wrapper .views-field-title,
.fwn-timeline-wrapper .views-field-field-card-text-long,
.fwn-timeline-wrapper .views-field-view-node {
  width: 360px !important;
  max-width: 360px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
  text-align: center;
}

.fwn-timeline-wrapper .views-field-title {
  margin-bottom: 12px !important;
}

.fwn-timeline-wrapper .views-field-title a {
  font-size: 1.25rem !important;
  line-height: 1.25 !important;
  font-weight: 500 !important;
}

.fwn-timeline-wrapper .views-field-field-card-text-long {
  font-size: 1rem !important;
  line-height: 1.45 !important;
  margin-top: 12px !important;
}

.fwn-timeline-wrapper .views-field-view-node {
  margin-top: 14px !important;
}

/* --------------------------------------------------
   8. Allgemeine Bildsicherheit
   -------------------------------------------------- */

.fwn-timeline-wrapper img {
  max-width: 100%;
  height: auto;
}

/* --------------------------------------------------
   9. Mobile Darstellung
   -------------------------------------------------- */

@media (max-width: 768px) {

  .fwn-timeline-wrapper {
    width: calc(100% - 24px);
    padding: 30px 0;
  }

  .fwn-timeline-wrapper .timeline-item {
    margin-bottom: 50px !important;
  }

  .fwn-timeline-wrapper .timeline-item-wrapper {
    max-width: 100% !important;
    padding: 16px;
  }

  .fwn-timeline-wrapper .views-field-field-year {
    width: fit-content;
    min-width: 0;
    margin: 0 auto 16px auto !important;
  }

  .fwn-timeline-wrapper .views-field-field-medien,
  .fwn-timeline-wrapper .views-field-field-medien img {
    width: 100% !important;
    max-width: 320px !important;
  }

  .fwn-timeline-wrapper .views-field-title,
  .fwn-timeline-wrapper .views-field-field-card-text-long,
  .fwn-timeline-wrapper .views-field-view-node {
    width: 100% !important;
    max-width: 360px !important;
  }
}

/* --------------------------------------------------
   Timeline Zeitraum – echtes Ausgabeelement
   -------------------------------------------------- */

.fwn-timeline-wrapper .fwn-timeline-date-label {
  display: block !important;
  width: fit-content !important;
  margin: 0 0 18px auto !important;

  font-size: 1.6rem !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  color: #3a3128 !important;
  text-align: right !important;

  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* --------------------------------------------------
   Simple Timeline – ab schmaleren Breiten wie Mobile darstellen
   verhindert den kaputten Zwischenbereich
   -------------------------------------------------- */

@media (max-width: 1100px) {

  /* Timeline-Linie ausblenden */
  .fwn-timeline-wrapper .timeline-list::before,
  .fwn-timeline-wrapper .timeline-list::after,
  .fwn-timeline-wrapper .fwn-timeline-list::before,
  .fwn-timeline-wrapper .fwn-timeline-list::after,
  .fwn-timeline-wrapper ul.timeline-list::before,
  .fwn-timeline-wrapper ul.timeline-list::after {
    display: none !important;
    content: none !important;
  }

  /* Marker/Punkte ausblenden */
  .fwn-timeline-wrapper .timeline-marker {
    display: none !important;
  }

  /* Alternierung komplett aufheben */
  .fwn-timeline-wrapper .timeline-item,
  .fwn-timeline-wrapper .timeline-item.odd,
  .fwn-timeline-wrapper .timeline-item.even {
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    left: auto !important;
    right: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Karten wie im kleinsten Bereich zentrieren */
  .fwn-timeline-wrapper .timeline-item-wrapper {
    width: 100% !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Bilder responsiv halten */
  .fwn-timeline-wrapper .views-field-field-medien,
  .fwn-timeline-wrapper .views-field-field-medien img {
    width: 100% !important;
    max-width: 320px !important;
  }

  /* Textbereich schmal halten */
  .fwn-timeline-wrapper .views-field-title,
  .fwn-timeline-wrapper .views-field-field-card-text-long,
  .fwn-timeline-wrapper .views-field-view-node {
    width: 100% !important;
    max-width: 360px !important;
  }
}


/* ==================================================
   FWN Header NUR Handy / Tablet
   Hintergrund vollbreit, Logo mittig, Burger rechts
   Header scrollt normal mit und verschwindet beim Scrollen.
   ================================================== */

@media (max-width: 991.98px) {

  :root {
    /* HIER Logo-Größe mobil anpassen */
    --fwn-mobile-logo-width: 240px;
    --fwn-mobile-logo-max-width: 68vw;

    /* HIER Höhe des mobilen Kopfbereichs anpassen */
    --fwn-mobile-header-height: 240px;

    /* HIER Hintergrundfarbe des mobilen Kopfbereichs anpassen */
    --fwn-mobile-header-bg: #f4f0e9;
  }

  /*
     Bootstrap fixed-top mobil neutralisieren.
     Dadurch bleibt der Header NICHT kleben,
     sondern scrollt normal nach oben weg.
  */
  #header,
  #header-top,
  #mainNav,
  #mainNav.fixed-top,
  #mainNav.navbar.fixed-top {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: auto !important;
  }

  /* äußerer Header-Bereich vollflächig einfärben */
  #header,
  #header.other-page-header,
  #header-top {
    background-color: var(--fwn-mobile-header-bg) !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  /* der Bootstrap-Container im Header darf mobil nicht begrenzen */
  #header-top > .container {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background-color: transparent !important;
  }

  /* Navbar selbst vollbreit machen */
  #mainNav,
  #mainNav.navbar {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;

    position: relative !important;
    height: var(--fwn-mobile-header-height) !important;
    min-height: var(--fwn-mobile-header-height) !important;

    background-color: var(--fwn-mobile-header-bg) !important;
    display: block !important;
    overflow: visible !important;
  }

  /*
     Logo mobil exakt mittig.
     Wichtig: Das echte Logo-Element ist a.logo, nicht .navbar-brand.
  */
  #mainNav a.logo,
  #mainNav .logo {
    position: absolute !important;
    left: 50% !important;
    top: 30px !important;
    transform: translateX(-50%) !important;

    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;

    float: none !important;
    order: initial !important;
    flex: none !important;
  }

  #mainNav a.logo img,
  #mainNav .logo img {
    display: block !important;
    width: var(--fwn-mobile-logo-width) !important;
    max-width: var(--fwn-mobile-logo-max-width) !important;
    height: auto !important;
    margin: 0 auto !important;
  }

  /* Hamburger rechts oben */
  #mainNav .navbar-toggler,
  #mainNav .navbar-toggler-right,
  #mainNav.navbar-expand-lg .navbar-toggler {
    position: absolute !important;
    right: 22px !important;
    top: 75px !important;

    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;

    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 40px !important;

    padding: 0 !important;
    line-height: 1 !important;

    align-items: center !important;
    justify-content: center !important;

    z-index: 20 !important;
    pointer-events: auto !important;
  }

  #mainNav .navbar-toggler i {
    font-size: 22px !important;
    line-height: 1 !important;
  }
}



/* ==================================================
   DESKTOP: Header als EINE einheitliche transparente Fläche
   keine doppelte Balkenstruktur
   ================================================== */

@media (min-width: 992px) {

  /* Der gesamte Header bekommt EINEN gemeinsamen Hintergrund */
  #header {
    background-color: rgba(244, 240, 233, 0.55) !important;
    background-image: none !important;
    background: rgba(244, 240, 233, 0.55) !important;
  }

  /* Die inneren Teilbereiche dürfen KEINEN eigenen Hintergrund mehr haben */
  #header-top,
  #mainNav,
  #mainNav.navbar,
  #mainNav.navbar-fixed-top,
  #mainNav.fixed-top,
  #mainNav .container,
  #header-top .container {
    background-color: transparent !important;
    background-image: none !important;
    background: transparent !important;
  }
}



/* ==================================================
   Mobile Menü: immer über Logo und Slider legen
   ================================================== */

@media (max-width: 991.98px) {

  /* Eltern dürfen das aufgeklappte Menü nicht abschneiden */
  #header,
  #mainNav,
  #mainNav .container {
    overflow: visible !important;
  }

  /* Header bleibt unter dem offenen Menü */
  #mainNav {
    position: relative !important;
    z-index: 1000 !important;
  }

  /* Logo darunter */
  #mainNav a.logo,
  #mainNav .logo {
    z-index: 1001 !important;
  }

  /* Hamburger darüber */
  #mainNav .navbar-toggler,
  #mainNav .navbar-toggler-right,
  #mainNav.navbar-expand-lg .navbar-toggler {
    z-index: 1003 !important;
  }

  /* Das aufgeklappte Menü ganz nach vorn */
  #mainNav #navbarResponsive,
  #mainNav #navbarResponsive.show,
  #mainNav #navbarResponsive.in {
    position: absolute !important;
    top: 58px !important;
    right: 0 !important;
    z-index: 1002 !important;

    background: rgba(20, 20, 20, 0.96) !important;
    padding: 12px 18px !important;
  }

  /* Slider und alles darunter bewusst tiefer */
  .flexslider,
  .flexslider .slides,
  .flex-direction-nav,
  .flex-control-nav {
    position: relative !important;
    z-index: 1 !important;
  }
}



/* ==================================================
   DESKTOP: header-top ausblenden, mainNav nach oben
   ================================================== */

@media (min-width: 992px) {

  /* oberen leeren Header-Top-Bereich komplett entfernen */
  #header-top {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    border: 0 !important;
  }

  /* Hauptnavigation ganz nach oben schieben */
  #mainNav,
  #mainNav.navbar,
  #mainNav.navbar-fixed-top,
  #mainNav.fixed-top {
    top: 0 !important;
    margin-top: 0 !important;
  }

  /* Headerhöhe entspricht nur noch der Navbar */
  #header {
    height: 206px !important;
    min-height: 206px !important;
  }
}


/* --------------------------------------------------
   Views Responsive Grid – Bilder in den Karten zentrieren
   -------------------------------------------------- */

.views-view-responsive-grid__item img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}



/* ==================================================
   MediaCards allgemein:
   Bild oben, darunter Textblock mit Titel als erster Zeile
   für alle MediaCards in Views Responsive Grid
   ================================================== */

/* Jede Card als vertikale Flexbox aufbauen */
.views-view-responsive-grid__item article {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  box-sizing: border-box !important;
}

/* 1) Bild / Medienfeld oben */
.views-view-responsive-grid__item article .field--name-field-medien {
  order: 1 !important;
  width: 100% !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

/* Bild selbst zentrieren */
.views-view-responsive-grid__item article .field--name-field-medien img {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100% !important;
  height: auto !important;
}

/* 2) Titel: erste Zeile im Textblock unter dem Bild */
.views-view-responsive-grid__item article > h2,
.views-view-responsive-grid__item article .node__title {
  order: 2 !important;
  display: block !important;

  width: 100% !important;
  box-sizing: border-box !important;

  margin: 14px 0 8px 0 !important;
  padding: 0 14px !important;

  text-align: center !important;

  font-size: 1.15rem !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}

/* Titel-Link */
.views-view-responsive-grid__item article > h2 a,
.views-view-responsive-grid__item article .node__title a {
  color: #2f2a24 !important;
  text-decoration: none !important;
}

.views-view-responsive-grid__item article > h2 a:hover,
.views-view-responsive-grid__item article .node__title a:hover {
  text-decoration: underline !important;
}

/* 3) Kurztext direkt unter dem Titel */
.views-view-responsive-grid__item article .field--name-field-card-text {
  order: 3 !important;

  width: 100% !important;
  box-sizing: border-box !important;

  padding: 0 14px 4px 14px !important;
  text-align: center !important;

  font-weight: 700 !important;
}

/* 4) Langtext darunter */
.views-view-responsive-grid__item article .field--name-field-card-text-long {
  order: 4 !important;

  width: 100% !important;
  box-sizing: border-box !important;

  padding: 0 14px 14px 14px !important;
  text-align: center !important;
}

/* 5) Link / Weitere Infos zuletzt */
.views-view-responsive-grid__item article .field--name-field-card-link {
  order: 5 !important;

  width: 100% !important;
  box-sizing: border-box !important;

  text-align: center !important;
}


/* ==================================================
   MediaCards allgemein:
   Bild oben, darunter Titel als erste Zeile des Textblocks
   ================================================== */

/* Card als Flexbox */
.views-view-responsive-grid__item article {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  box-sizing: border-box !important;
}

/* Erst einmal alle direkten Elemente nach hinten */
.views-view-responsive-grid__item article > * {
  order: 50 !important;
}

/* 1) ALLE direkten Card-Elemente, die ein Bild enthalten, nach oben */
.views-view-responsive-grid__item article > *:has(img) {
  order: 10 !important;
  width: 100% !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

/* Bild selbst zentrieren */
.views-view-responsive-grid__item article img {
  display: block !important;
  max-width: 100% !important;
  height: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 2) Titel direkt unter das Bild */
.views-view-responsive-grid__item article > h2,
.views-view-responsive-grid__item article .node__title,
.views-view-responsive-grid__item article .fwn-mediacard__title {
  order: 20 !important;
  display: block !important;

  width: 100% !important;
  box-sizing: border-box !important;

  margin: 18px 0 10px 0 !important;
  padding: 0 14px !important;

  text-align: center !important;

  font-size: 1.75rem !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}

/* Titel-Link */
.views-view-responsive-grid__item article > h2 a,
.views-view-responsive-grid__item article .node__title a,
.views-view-responsive-grid__item article .fwn-mediacard__title a {
  color: #2f2a24 !important;
  text-decoration: none !important;
}

.views-view-responsive-grid__item article > h2 a:hover,
.views-view-responsive-grid__item article .node__title a:hover,
.views-view-responsive-grid__item article .fwn-mediacard__title a:hover {
  text-decoration: underline !important;
}

/* 3) Kurztext */
.views-view-responsive-grid__item article .field--name-field-card-text {
  order: 30 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 0 14px 4px 14px !important;
  text-align: center !important;
  font-weight: 700 !important;
}

/* 4) Langtext */
.views-view-responsive-grid__item article .field--name-field-card-text-long {
  order: 40 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 0 14px 14px 14px !important;
  text-align: center !important;
}

/* 5) Link / Weitere Infos */
.views-view-responsive-grid__item article .field--name-field-card-link {
  order: 45 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  text-align: center !important;
}



/* ==================================================
   Timeline / MediaCard: Video-Breite begrenzen
   robuste Version ohne path-timeline-Abhängigkeit
   ================================================== */

.views-field-field-medien video,
.field--name-field-media-video-file video,
video[controls] {
  width: 320px !important;
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
  object-fit: contain !important;
}




/* ==================================================
   Timeline: Datum links/rechts sauber nach Seite ausrichten
   ================================================== */

/* Grundregel:
   nicht alternierende Timeline → Datum immer linksbündig */
.fwn-timeline-wrapper .fwn-timeline-date-label {
  width: fit-content !important;
  margin: 0 auto 18px 0 !important;
  text-align: left !important;
}

/* Alternierende Timeline:
   linke Karten → Datum rechtsbündig */
.fwn-timeline-wrapper ul.timeline-list.alternate li.timeline-item.odd
.timeline-item-wrapper .fwn-timeline-date-label {
  width: fit-content !important;
  margin: 0 0 18px auto !important;
  text-align: right !important;
}

/* Alternierende Timeline:
   rechte Karten → Datum linksbündig */
.fwn-timeline-wrapper ul.timeline-list.alternate li.timeline-item.even
.timeline-item-wrapper .fwn-timeline-date-label {
  width: fit-content !important;
  margin: 0 auto 18px 0 !important;
  text-align: left !important;
}

/* ==================================================
   Get-served-Bereich: Tomato-/Kinderbild ausblenden
   ================================================== */

section#get-served img.tomato,
section#get-served img.img-responsive.tomato,
section#get-served img.img-responsive.tomato.wow.fadeInDown {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}




/* =====================================================
   Simple Events: einspaltig, alle Bilder gleich breit
   ===================================================== */

.path-events .fwn-simple-event {
  width: min(760px, calc(100% - 40px));
  margin: 0 auto 60px auto;
  box-sizing: border-box;
}

.path-events .fwn-simple-event-image {
  width: 100%;
}

.path-events .fwn-simple-event-image a {
  display: block;
  width: 100%;
}

.path-events .fwn-simple-event-image img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  border-radius: 8px;
}

.path-events .fwn-simple-event-date {
  margin-top: 10px;
  font-size: 20px;
}

.path-events .fwn-simple-event-content h3 {
  margin-top: 14px;
  margin-bottom: 10px;
}

.path-events .fwn-simple-event-time {
  margin-top: 12px;
}





/* ==================================================
   MediaCard-Detailseite
   Betrifft Node-Seiten vom Typ MediaCard, z.B. /node/114
   ================================================== */

/* Videobereich begrenzen und zentrieren */
body.page-node-type-mediacard .fwn-mediacard__media {
  max-width: 900px !important;
  margin: 0 auto 32px auto !important;
  overflow: hidden;
}

/* Eingebettetes YouTube/oEmbed responsiv begrenzen */
body.page-node-type-mediacard .fwn-mediacard__media iframe {
  display: block;
  width: 100% !important;
  max-width: 900px !important;
  aspect-ratio: 16 / 9;
  height: auto !important;
  margin: 0 auto !important;
}

/* Titel zentrieren */
body.page-node-type-mediacard .fwn-mediacard__title {
  text-align: center !important;
  margin: 24px auto 20px auto !important;
}

/* Beschreibung zentrieren und Abstand zum Footer */
body.page-node-type-mediacard .fwn-mediacard__text-long {
  text-align: center !important;
  max-width: 900px !important;
  margin: 0 auto 30px auto !important;
}

/* Sicherheitsabstand der ganzen MediaCard zum Footer */
body.page-node-type-mediacard .fwn-mediacard {
  margin-bottom: 30px !important;
}

body.page-node-type-mediacard .fwn-mediacard {
  padding-bottom: 30px !important;
}

/* Eigenes YouTube-iframe auf MediaCard-Detailseiten */
.fwn-video-iframe {
  display: block;
  width: 100% !important;
  max-width: 900px !important;
  aspect-ratio: 16 / 9;
  height: auto !important;
  margin: 0 auto !important;
  border: 0 !important;
}

/* Link um das Thumbnail in der Grid-Ansicht */
.fwn-mediacard__media-link {
  display: block;
  text-decoration: none !important;
  color: inherit !important;
}

.fwn-mediacard__media-link img {
  display: block;
}




/* ==================================================
   MediaCard-Detailseite: Video-Banner
   erscheint nur, wenn Twig fwn-video-page-heading ausgibt
   ================================================== */

.fwn-video-page-heading {
  display: flex;
  align-items: center;
  justify-content: center;

  height: 168px;
  margin: 206px auto 40px auto;

  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  color: #3f3228;
  text-align: center;

  background: #c7d9a4;
}

/* ==================================================
   Externe-Medien-Hinweisseite:
   normale Inhaltsbreite unter dem Banner
   ================================================== */

body.path-externe-medien-erforderlich .fwn-external-media-notice p {
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box !important;

  font-size: 1.1rem !important;
  line-height: 1.6 !important;
  color: #2f2a24 !important;
}

/* Zurück-Link sauber wie Button einrücken */
body.path-externe-medien-erforderlich .fwn-external-media-button {
  display: block !important;
  width: fit-content !important;

  max-width: 1100px !important;
  margin: 24px auto 0 auto !important;
  padding: 12px 22px !important;

  background: #3f6f3f !important;
  color: #ffffff !important;
  text-decoration: none !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
}

body.path-externe-medien-erforderlich .fwn-external-media-button:hover,
body.path-externe-medien-erforderlich .fwn-external-media-button:focus {
  background: #315831 !important;
  color: #ffffff !important;
}