.ce-gallery .ce-row {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  align-items: flex-start;
}
.ce-gallery .ce-column {
  flex: 1 1 auto;
}
.ce-gallery figure {
  margin: 0;
}
.content .ce-gallery img {
  max-width: 100%;
  height: auto;
}
/* Zweispaltige Bildergalerie: 2 Bilder pro Zeile, volle Spaltenbreite */
.content .ce-gallery[data-ce-columns="2"] .ce-row {
  gap: 20px;
  margin-bottom: 20px;
}
.content .ce-gallery[data-ce-columns="2"] .ce-column {
  flex: 0 0 auto;
  width: calc(50% - 10px);
}
.content .ce-gallery[data-ce-columns="2"] .ce-column img {
  width: 100%;
}

/* Kontaktformular: zwei Spalten (10 Felder links, Rest rechts), Label links neben dem Feld */
.frame-type-form_formframework form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(10, auto);
  grid-auto-flow: column;
  column-gap: 40px;
  row-gap: 10px;
  align-items: start;
}
.frame-type-form_formframework form > div:first-child,
.frame-type-form_formframework form > h2:empty {
  display: none;
}
.frame-type-form_formframework .form-element {
  display: grid;
  grid-template-columns: 30% 1fr;
  column-gap: 10px;
  align-items: center;
  margin: 0 !important;
}
.frame-type-form_formframework .form-element label.form-label {
  float: none;
  width: auto;
  margin: 0;
  font-weight: bold;
}
.frame-type-form_formframework .form-element .form-control,
.frame-type-form_formframework .form-element .form-select {
  width: 100%;
  box-sizing: border-box;
  padding: 5px 10px;
  border: 1px solid #ccc;
  border-radius: 3px;
}
.frame-type-form_formframework .form-element-textarea {
  grid-row: span 3;
  align-items: start;
}
.frame-type-form_formframework .form-element-textarea label.form-label {
  padding-top: 5px;
}
.frame-type-form_formframework .form-element-textarea textarea {
  height: 90px;
  resize: vertical;
}
.frame-type-form_formframework .form-element-check {
  display: block;
  grid-row: span 2;
  font-size: 11px;
  line-height: 1.8;
}
.frame-type-form_formframework .form-check-wrapping-label {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.frame-type-form_formframework .form-element-check label {
  float: none;
  width: auto;
  margin: 0;
  font-weight: normal;
}
.frame-type-form_formframework .form-element-check input {
  margin-top: 5px;
  flex: 0 0 auto;
}
.frame-type-form_formframework .actions .btn-primary {
  cursor: pointer;
}
@media (max-width: 767px) {
  .frame-type-form_formframework form {
    display: block;
  }
  .frame-type-form_formframework .form-element {
    grid-template-columns: 1fr;
    margin-bottom: 12px !important;
  }
  .frame-type-form_formframework .form-element-check {
    display: block;
  }
}

/* Raster-Container: 2 Spalten */
.wm-columns-2 {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}
.wm-columns-2 > .wm-column {
  flex: 1 1 280px;
  min-width: 0;
}
.wm-columns-2 > .wm-column > .frame {
  margin-bottom: 0;
}

/* Karte mit Zustimmung */
.wm-map {
  position: relative;
  width: 100%;
  height: 400px;
  background: #e3e4e5;
}
.wm-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.wm-map-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 20px;
  text-align: center;
  font-size: 13px;
}
.wm-map-placeholder p { max-width: 520px; margin: 0 0 15px; }

/* Suchergebnisse: Trenner zwischen den Treffern */
.tx-indexedsearch-res {
  padding: 18px 0;
  border-bottom: 1px solid #ccc;
}
.tx-indexedsearch-res:first-of-type {
  padding-top: 0;
}

/* News: Liste */
.news-list-view .article {
  display: flow-root;
  padding: 25px 0;
  border-bottom: 1px solid #ccc;
}
.news-list-view .article:first-child {
  padding-top: 10px;
}
.news-list-view .article .header h3 {
  margin: 0 0 12px;
}
.news-list-view .news-img-wrap {
  float: left;
  width: 160px;
  margin: 0 25px 10px 0;
}
.news-list-view .news-img-wrap img {
  display: block;
  width: 100%;
  height: auto;
}
.news-list-view .teaser-text > div {
  margin-bottom: 12px;
}
.news-list-view .teaser-text .more {
  display: inline-block;
  margin-bottom: 12px;
}
/* Die Klasse "footer" der News ist nicht der Seitenfuß: Rahmen/Abstände aus dem Theme zurücksetzen */
.news-list-view .article .footer {
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
}
.news-list-view .article:last-child {
  border-bottom: 0;
}
.news-list-view .footer p {
  margin: 0;
  font-style: italic;
  color: #817f7f;
  font-size: 13px;
}
.news-list-view .footer span + span {
  margin-left: 15px;
}
@media (max-width: 767px) {
  .news-list-view .news-img-wrap {
    float: none;
    width: 100%;
    margin-right: 0;
  }
}

/* News als Kacheln (Startseite): News-Element mit Layout "1/3" */
.frame-one_third .news-list-view .article {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0 0 12px;
  border: 0;
  background: #dcdbdb;
  overflow: hidden;
}
.frame-one_third .news-list-view .article:last-child {
  margin-bottom: 0;
}
.frame-one_third .news-list-view .article .header h3 {
  margin: 0;
  padding: 12px 20px;
  background: #a0101b;
  font-size: 18px;
  line-height: 1.3;
}
.frame-one_third .news-list-view .article .header h3 a {
  color: #fff;
  text-decoration: none;
}
.frame-one_third .news-list-view .teaser-text {
  position: relative;
  padding: 14px 50px 14px 20px;
  font-size: 13.5px;
  line-height: 1.5;
}
.frame-one_third .news-list-view .teaser-text > div {
  margin: 0;
}
.frame-one_third .news-list-view .teaser-text p {
  margin: 0;
}
/* "Mehr anzeigen" als Pfeil-Symbol unten rechts */
.frame-one_third .news-list-view .teaser-text .more {
  position: absolute;
  right: 12px;
  bottom: 10px;
  margin: 0;
  font-size: 0;
  line-height: 1;
  color: #555;
}
.frame-one_third .news-list-view .teaser-text .more::after {
  content: "\f0a9";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 18px;
}
.frame-one_third .news-list-view .article .footer {
  display: none;
}

/* News mit Bild: Bildkachel, Titel liegt unten über dem Bild, kein Teasertext */
.frame-one_third .news-list-view .article:has(.news-img-wrap) {
  background: #000;
}
.frame-one_third .news-list-view .article:has(.news-img-wrap) .news-img-wrap {
  order: 1;
  float: none;
  width: 100%;
  margin: 0;
  aspect-ratio: 212 / 122;
}
.frame-one_third .news-list-view .article:has(.news-img-wrap) .news-img-wrap a {
  display: block;
  float: none;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
}
.frame-one_third .news-list-view .article:has(.news-img-wrap) .news-img-wrap img {
  display: block;
  float: none;
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  object-fit: cover;
  object-position: center;
}
.frame-one_third .news-list-view .article:has(.news-img-wrap) .header {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}
.frame-one_third .news-list-view .article:has(.news-img-wrap) .header h3 {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0));
  padding: 25px 15px 8px;
  font-size: 18px;
}
.frame-one_third .news-list-view .article:has(.news-img-wrap) .teaser-text {
  display: none;
}

/* Carousel (Startseite): Titelbalken unten rechts über dem Bild */
.category-header .frame-type-wm-carousel {
  margin: 0;
  padding: 0;
}
.carousel .carousel-inner > .item > .container {
  position: absolute;
  left: 50%;
  bottom: 0;
  height: 100%;
  transform: translateX(-50%);
}
.carousel .slider-teaser,
.carousel .slider-teaser-mask {
  top: auto;
  bottom: 80px;
  z-index: 1;
}
.carousel .slider-teaser {
  z-index: 2;
  padding-left: 30px;
  box-sizing: border-box;
}
.carousel .slider-teaser h2,
.carousel .slider-teaser h2 a {
  margin: 0;
  text-transform: none;
  letter-spacing: 0.5px;
}
.carousel .carousel-control {
  z-index: 3;
}
.carousel .carousel-indicators {
  z-index: 3;
}

/* News: Zurück-Button in der Einzelansicht */
.news-single .news-backlink-wrap {
  margin-top: 30px;
}
.news-single .news-backlink-wrap a {
  display: inline-block;
  padding: 14px 18px;
  background: #0080c6;
  color: #fff;
  font-size: 18px;
  text-decoration: none;
  transition: background 200ms ease-in-out;
}
.news-single .news-backlink-wrap a:hover,
.news-single .news-backlink-wrap a:focus {
  background: #666;
}

/* Startseite: 1/3-Elemente neben einem 2/3-Element bilden die rechte Spalte */
@media (min-width: 768px) {
  .content .container > .frame-two_third ~ .frame-one_third {
    float: right;
    clear: right;
    width: 30%;
    margin: 0 0 12px;
  }
}
.frame-one_third .ce-gallery img {
  display: block;
  width: 100%;
  height: auto;
}

/* Kacheln aus "Ausgewählte Seiten": Bild mit blauer Titelleiste */
.pageMenu {
  padding: 0;
  margin-bottom: 40px;
}
.pageMenu > li {
  overflow: hidden;
  padding: 0;
}
.pageMenu > li a {
  display: block;
  color: #fff;
  text-decoration: none;
}
.pageMenu > li img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 8;
  object-fit: cover;
}
/* Kacheln unter einem 2/3-Text: gleiche Breite wie der Text, rechte Spalte läuft daneben weiter */
@media (min-width: 768px) {
  .content .container > .frame-two_third ~ .frame-type-menu_pages {
    clear: left;
    width: 65%;
    padding-top: 50px;
  }
  .content .container > .frame-two_third ~ .frame-type-menu_pages .pageMenu {
    justify-content: space-between;
  }
  .content .container > .frame-two_third ~ .frame-type-menu_pages .pageMenu > li {
    width: 46%;
    margin: 0;
  }
}
.pageMenu > li h2 {
  margin: 0;
  padding: 13px 18px;
  font-family: inherit;
  font-size: 18px;
  font-weight: normal;
  line-height: 1.3;
  color: #fff;
}

/* Lightbox */
.wm-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.85);
}
.wm-lightbox[hidden] { display: none; }
.wm-lightbox img {
  max-width: 90vw;
  max-height: 90vh;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.5);
}
.wm-lightbox button {
  position: absolute;
  background: none;
  border: 0;
  color: #fff;
  cursor: pointer;
  line-height: 1;
}
.wm-lightbox-close { top: 15px; right: 25px; font-size: 44px; }
.wm-lightbox-prev,
.wm-lightbox-next { top: 50%; transform: translateY(-50%); font-size: 40px; padding: 20px; }
.wm-lightbox-prev { left: 10px; }
.wm-lightbox-next { right: 10px; }
.wm-lightbox.single .wm-lightbox-prev,
.wm-lightbox.single .wm-lightbox-next { display: none; }
body.wm-lightbox-open { overflow: hidden; }

/* Abstand vor einem Inhaltselement (Space Before) */
.frame-space-before-small  { margin-top: 1em !important; }
.frame-space-before-medium { margin-top: 2em !important; }
.frame-space-before-large  { margin-top: 4em !important; }
.content .ce-textpic.ce-right.ce-intext .ce-gallery img {
  width: 100%;
}
.footer .ce-gallery img,
.partner .ce-gallery img {
  width: auto;
  max-width: 100%;
  height: auto;
}

.content .ce-textpic.ce-right.ce-intext {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}

.content .ce-textpic.ce-right.ce-intext .ce-bodytext {
  flex: 1;
}
.content .ce-textpic.ce-right.ce-intext .ce-gallery {
  order: 2;
  flex: 0 0 48%;
  width: 48%;
}
.content .ce-textpic.ce-left.ce-intext {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.content .ce-textpic.ce-left.ce-intext .ce-gallery {
  flex: 0 0 58%;
  width: 58%;
  float: none;
  margin: 0;
}
.content .ce-textpic.ce-left.ce-intext .ce-gallery img {
  width: 100%;
}
.content .ce-textpic.ce-left.ce-intext .ce-bodytext {
  flex: 1;
  width: auto;
  float: none;
}
.partner .ce-column {
  float: left;
  margin-top: 0;
}
.partner .ce-row {
  display: flex;
  align-items: flex-end;
}
.footer .ce-bodytext > p {
  float: none;
}
.footer > .container .ce-row {
  display: flex;
  align-items: flex-start;
}
.footer > .container .ce-column,
.footer > .container .ce-column figure {
  margin-top: 0;
}
.footer > .container .ce-column {
  margin-top: 55px;
}
.footer > .container .ce-column:last-child figure,
.footer > .container .ce-column:last-child img {
  margin: 0;
  display: block;
}
.footer > .container .ce-row {
  display: flex;
  align-items: center;
}
#cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: #e3e4e5;
  padding: 20px;
  z-index: 3000;
}
#cookie-banner[hidden] {
  display: none;
}
#cookie-banner button {
  margin-right: 10px;
}
.cookie-settings {
  position: fixed;
  right: 20px;
  bottom: 0;
  background: #e3e4e5;
  border: 0;
  padding: 10px 20px;
  font-size: 14px;
  color: #000;
  cursor: pointer;
  z-index: 2999;
}
.cookie-settings[hidden] {
  display: none;
}
.cookie-settings:hover {
  background: #d3d4d5;
}
.search-box {
  border-bottom: 3px solid #0080c6;
  padding: 10px 25px;
}
.search-box[hidden] {
  display: none;
}
.search-form {
  display: flex;
  align-items: stretch;
}
.search-form input[type="text"] {
  width: 390px;
  max-width: 70%;
  border: 2px solid #0a5bc4;
  padding: 4px 6px;
}
.search-form button {
  background: #0080c6;
  color: #fff;
  border: 0;
  padding: 4px 8px;
  cursor: pointer;
}
.topMenu .search-bar {
  position: absolute !important;
  top: 0;
  left: auto !important;
  right: 0 !important;
  width: auto;
  height: 75px;
  padding: 36px 0 0 0;
  box-sizing: border-box;
  background: #fff;
  text-align: right;
  z-index: 200;
}
.topMenu .search-bar .search-form {
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  margin: 0;
}
.topMenu .search-bar .tx-indexedsearch-searchbox-sword {
  width: 440px;
  height: 30px;
  box-sizing: border-box;
  border: 2px solid #0a5bc4;
  margin-right: 6px;
  padding: 4px 6px;
}
.topMenu .search-bar button {
  height: 30px;
  background: #0080c6;
  color: #fff;
  border: 0;
  padding: 0 12px;
  cursor: pointer;
}
@media (min-width: 1024px) {
  .dropdown-menu > li > a img {
    display: block;
    margin-left: 4px;
    width: calc(100% - 4px);
    max-width: none;
    height: 200px;
    object-fit: cover;
  }
}
.content h1 {
  font-size: 32px;
  line-height: 1.2;
}
.content h2 {
  font-size: 24px;
  color: #4e4b4a;
}
.content .ce-bodytext h3 {
  color: #017cbf;
  font-size: 20px;
  margin: 20px 0 8px;
}
.pageAbstract.items2 > li {
  width: 48%;
}
.pageAbstract li img {
  display: block;
  width: 100%;
  height: 300px;
  object-fit: contain;
  object-position: center bottom;
}
.pageAbstract li h1 {
  font-size: 28px;
  margin: 10px 0 0;
}
.content .blue {
  position: relative;
  display: flex;
  flex-wrap: nowrap;
  gap: 40px;
  align-items: flex-start;
  margin-top: 80px;
  padding: 60px 0;
  color: #fff;
  background: transparent;
}
.content .blue::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: #017cbf;
  z-index: 0;
}
/* Höhe: mindestens 420px (Seite p25: 530px), wächst mit dem Inhalt */
.content .blue,
#p25 .content .blue {
  height: auto;
  min-height: 420px;
  box-sizing: border-box;
}
#p25 .content .blue {
  min-height: 530px;
}
.content .blue::before,
#p25 .content .blue::before {
  height: auto;
}
.content .blue::after,
#p25 .content .blue::after {
  display: none;
}
.content .blue > .frame {
  position: relative;
  z-index: 1;
  float: none;
  max-width: none;
  margin: 0;
  padding: 0;
}
.content .blue > .frame.frame-one_sixth { flex: 0 0 15%; width: 15%; }
.content .blue > .frame.frame-one_half  { flex: 1 1 auto; width: auto; }
.content .blue > .frame.frame-one_third { flex: 0 0 28%; width: 28%; }
.wrapper { overflow-x: clip; }

