/* barlow-condensed-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 400;
  src: url('../Fonts/barlow-condensed-v13-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* barlow-condensed-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  src: url('../Fonts/barlow-condensed-v13-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* barlow-condensed-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 900;
  src: url('../Fonts/barlow-condensed-v13-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}


/* Colors */
:root {
  --fit-blau: #00aeef;
  --fit-blau-hell: #80FFFF;
  --fit-grau: #5d6f79;
  /*--fit-grau-hell: #C7D9D9;*/
  --fit-grau-hell: #d6dbde;
  --fit-grau-schrift: #5A6F7A;
  --fit-schwarz: #000000;
  --fit-weiss: #FFFFFF;
  --fit-rot: #D90000;
  --fit-grau-footer: #4A6B6B;
  --content-width: 1280px;
  --header-total-height: 104px;
}

.pagination {
  --bs-pagination-padding-x: 0.75rem;
  --bs-pagination-padding-y: 0.375rem;
  --bs-pagination-font-size: 1rem;
  --bs-pagination-color: var(--fit-blau);
  --bs-pagination-bg: var(--bs-body-bg);
  --bs-pagination-border-width: var(--bs-border-width);
  --bs-pagination-border-color: var(--bs-border-color);
  --bs-pagination-border-radius: var(--bs-border-radius);
  --bs-pagination-hover-color: var(--fit-blau);
  --bs-pagination-hover-bg: var(--bs-tertiary-bg);
  --bs-pagination-hover-border-color: var(--bs-border-color);
  --bs-pagination-focus-color: var(--bs-link-hover-color);
  --bs-pagination-focus-bg: var(--bs-secondary-bg);
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
  --bs-pagination-active-color: #fff;
  --bs-pagination-active-bg: var(--fit-blau);
  --bs-pagination-active-border-color: var(--fit-blau);
  --bs-pagination-disabled-color: var(--bs-secondary-color);
  --bs-pagination-disabled-bg: var(--bs-secondary-bg);
  --bs-pagination-disabled-border-color: var(--bs-border-color);
  list-style: none;
}

/* --- CSS Reset --- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  scroll-padding-top: 120px;
}

body {
  font-family: 'Barlow Condensed', 'Helvetica Neue', sans-serif;
  font-size: 20px;
  line-height: 1.55;
  color: #5A6F7A;
  background: #FFFFFF;
}

img, svg { display: block; max-width: 100%; height: auto; }
a { text-decoration: none; color: inherit; }
main .frame p a:not(.btn), a.default-link { color:var(--fit-rot); text-decoration:none; border-bottom:1px solid var(--fit-rot); }
button { cursor: pointer; background: none; border: none; font: inherit; }
input { font: inherit; }

/* --- Container --- */
.container, main > .tx-srfeuserregister-pi1 {
	max-width:1304px;
}
.container .container {
	padding-left:0;
	padding-right:0;
}
/*main > .frame {
	max-width:1304px;
	margin-left:auto;
	margin-right:auto;
	width: 100%;
	padding-right: 12px;
	padding-left: 12px;
}
.container {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0 64px;
}
.container--narrow {
  max-width: 800px;
}
div[class*="frame-space-after"] {
	padding-bottom:0.05px;
}*/
.frame-space-before-padding-xs {
	padding-top:1em;
}
.frame-space-before-padding-s {
	padding-top:2em;
}
.frame-space-before-padding-m {
	padding-top:3em;
}
.frame-space-before-padding-l {
	padding-top:4em;
}
.frame-space-before-padding-xl {
	padding-top:1em;
}
.frame-space-after-padding-xs {
	padding-bottom:1em;
}
.frame-space-after-padding-s {
	padding-bottom:2em;
}
.frame-space-after-padding-m {
	padding-bottom:3em;
}
.frame-space-after-padding-l {
	padding-bottom:4em;
}
.frame-space-after-padding-xl {
	padding-bottom:1em;
}

/* ============================================
   META-NAV
   ============================================ */
.meta-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 422;
  background: var(--fit-weiss);
  border-bottom: 1px solid var(--fit-grau-hell);
  height: 40px;
}
.meta-nav__inner {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0 64px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position:relative;
}
.meta-nav__right {
  display: flex;
  align-items: center;
  gap: 20px;
}
.language-menu {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--fit-grau-schrift);
  margin:1px 0 0 0;
}
.language-menu li {
	display:inline-block;
	border-right:2px solid var(--fit-grau-hell);
}
.language-menu li:last-child {
	border-right:0;
}
.language-menu li a {
  color: var(--fit-grau-schrift);
  font-size: 1.25rem;
  line-height:0.8;
  transition: color 150ms ease;
  padding:4px 8px;
  display:block;
}
.language-menu li.active a { color: var(--fit-rot); }
.language-menu li a:hover { color: var(--fit-rot); }
.language-menu li span {
  font-size: 1.25rem;
  color: var(--fit-grau-schrift);
  padding:4px 8px;
  display:block;
}

.meta-nav__search {
  color: var(--fit-grau-schrift);
  display: flex;
  align-items: center;
  transition: color 150ms ease;
}
.meta-nav__search:hover { color: var(--fit-rot); }
.meta-nav__logo {
	position:absolute;
	left:0;
	top:0;
	background:#fff;
	padding:10px;
	border-left:1px solid var(--fit-grau-hell);
	border-bottom:1px solid var(--fit-grau-hell);
	border-right:1px solid var(--fit-grau-hell);
}
.meta-nav__logo img {
  height: 125px;
  width: auto;
}

/* --- Search Panel --- */
.search-panel {
  position: absolute;
  top: 40px;
  right: 0;
  width: 100%;
  max-width: 400px;
  background: var(--fit-weiss);
  border: 1px solid var(--fit-grau-hell);
  border-top: none;
  padding:0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.search-panel[hidden] { display: none; }
.search-panel form {
  display: flex;
  padding: 12px 16px;
  gap: 8px;
}
.search-panel__input {
  flex: 1;
  border: 1px solid var(--fit-grau-hell);
  padding: 8px 12px;
  font-size: 1rem;
  color: var(--fit-grau-schrift);
  background: var(--fit-weiss);
}
.search-panel__input:focus {
  outline: none;
  border-color: var(--fit-blau);
}
.search-panel__btn {
  background: var(--fit-blau);
  color: var(--fit-schwarz);
  padding: 8px 12px;
  display: flex;
  align-items: center;
}

/* ============================================
   INDEXSUCHE
   ============================================ */
.tx-indexedsearch-searchbox legend, .tx-indexedsearch-info, .tx-indexedsearch-percent {
	display:none;
}
main #tx-indexedsearch-searchbox-sword {
	vertical-align:middle;
	margin:0 8px;
}
main #tx-indexedsearch-searchbox-button-submit {
	vertical-align:baseline;
}
.tx-indexedsearch-info-sword {
	margin:1rem 0;
}
.tx-indexedsearch-browsebox {
	margin:1rem 0;
}
ul.tx-indexedsearch-browsebox {
	list-style:none;
	padding-left:0;
}
div.tx-indexedsearch-browsebox:last-child {
	border-top:1px solid var(--fit-grau-hell);
	margin-top:0;
}
ul.tx-indexedsearch-browsebox li {
	display:inline-block;
}
ul.tx-indexedsearch-browsebox li.page-label {
	padding-right:8px;
}
.tx-indexedsearch-res {
	padding:1rem 0;
	border-top:1px solid var(--fit-grau-hell);
}


/* ============================================
   HAUPTNAVIGATION
   ============================================ */
.main-nav {
  position: fixed;
  top: 40px;
  left: 0;
  right: 0;
  z-index: 421;
  background: var(--fit-weiss);
  border-bottom: 2px solid var(--fit-grau-hell);
  height: 64px;
  transition: box-shadow 200ms ease;
}
.main-nav.scrolled {
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.main-nav ul {
	list-style:none;
}
.main-nav__inner {
  max-width: var(--content-width);
  margin: 0 auto;
  padding: 0 130px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.main-nav__list {
  display: flex;
  align-items: center;
  gap: 0;
  margin:0;
  padding:0;
}
.main-nav__item {
  position: relative;
}
.main-nav__trigger, .main-nav__link {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--fit-grau-schrift);
  padding: 8px 20px;
  transition: color 150ms ease;
  position: relative;
}
.main-nav__trigger:hover,
.main-nav__trigger.active,
.main-nav__link:hover,
.main-nav__link.active {
  color: var(--fit-rot);
}
/*.main-nav__trigger:hover::after,
.main-nav__trigger.active::after {
  content: '';
  position: absolute;
  bottom: -22px;
  left: 20px;
  right: 20px;
  height: 2px;
  background: var(--fit-rot);
}*/
.main-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  background: var(--fit-weiss);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 150ms ease, transform 150ms ease, visibility 150ms;
  padding: 8px 0;
  z-index: 10;
}
.main-nav__dropdown--wide { min-width: 280px; }
.main-nav__item:hover .main-nav__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.main-nav__dropdown li a {
  display: block;
  padding: 8px 20px;
  font-size: 1.25rem;
  color: var(--fit-grau-schrift);
  transition: background 150ms ease, color 150ms ease;
}
.main-nav__dropdown li a:hover {
  background: rgba(199, 217, 217, 0.4);
  color: var(--fit-schwarz);
}
.main-nav__dropdown li + li {
  border-top: 1px solid var(--fit-grau-hell);
}

/* --- Hamburger --- */
.main-nav__hamburger {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  margin-left: auto;
}
.main-nav__hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--fit-grau-schrift);
  transition: transform 200ms ease, opacity 200ms ease;
}

/* ============================================
   MOBILE MENU
   ============================================ */
.mobile-menu {
  position: fixed;
  top: 0;
  right: -320px;
  width: 320px;
  height: 100vh;
  background: var(--fit-weiss);
  z-index: 200;
  transition: right 250ms ease-in-out;
  overflow-y: auto;
  padding: 64px 24px 24px;
}
.mobile-menu.open { right: 0; }
.mobile-menu__close {
  position: absolute;
  top: 16px;
  right: 16px;
  color: var(--fit-grau-schrift);
}
.mobile-menu__content {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mobile-menu__item {
  border-bottom: 1px solid var(--fit-grau-hell);
}
.mobile-menu__item summary {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--fit-grau-schrift);
  padding: 16px 0;
  cursor: pointer;
  list-style: none;
}
.mobile-menu__item summary::-webkit-details-marker { display: none; }
.mobile-menu__item summary::after {
  content: '▸';
  float: right;
  transition: transform 200ms ease;
}
.mobile-menu__item[open] summary::after {
  transform: rotate(90deg);
}
.mobile-menu__item a {
  display: block;
  padding: 8px 0 8px 16px;
  font-size: 1rem;
  color: var(--fit-grau-schrift);
  transition: color 150ms ease;
}
.mobile-menu__item a:hover { color: var(--fit-rot); }
.mobile-menu__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 199;
  opacity: 0;
  visibility: hidden;
  transition: opacity 250ms ease, visibility 250ms;
}
.mobile-menu__overlay.visible {
  opacity: 1;
  visibility: visible;
}


/* ============================================
   BREADCRUMB
   ============================================ */
   
.breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 60px 0 0 0;
}
.breadcrumb-item {
    display: flex;
    align-items: center;
}
.breadcrumb-item + .breadcrumb-item::before {
	content:'';
}
.breadcrumb-item:not(:last-child)::after {
    content: "|";
    margin: 0 10px;
    color: var(--fit-blau);
    font-weight: normal;
}
.breadcrumb-item.active {
    color: #333333;
}


/* ============================================
   BUTTONS
   ============================================ */
   
.btn-primary, .button-blue {
  --bs-btn-bg: var(--fit-blau);
  --bs-btn-border-color: var(--fit-blau);
}
.btn, .button-blue {
  display: inline-block;
  font-size:18px;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  text-align: center;
  transition: background 150ms ease, transform 150ms ease, box-shadow 200ms ease;
  border: none;
  border-radius:0;
  border-top-left-radius:10px;
}
.btn + .btn {
	margin-left:12px;
}
.btn--hero {
  background: var(--fit-blau);
  color: #fff;
  padding: 12px 24px;
  font-size: 1.25rem;
}
.btn--hero:hover { background: var(--fit-blau-hell); }
.btn--teaser {
  background: var(--fit-blau);
  color: #fff;
  padding: 10px 20px;
  font-size: 1.25rem;
}
.btn--teaser:hover { background: var(--fit-blau-hell); }
.btn.button-blue {
	background: var(--fit-blau);
	color: #fff;
}
.btn.button-black {
  background: var(--fit-schwarz);
  color: var(--fit-weiss);
  padding: 16px 32px;
  font-size: 1.25rem;
}
.btn.button-black:hover {
  background: #222;
  transform: translateY(-2px);
}
.btn.button-white {
  background: var(--fit-weiss);
  color: var(--fit-schwarz);
  padding: 16px 32px;
  font-size: 1.25rem;
}
.btn.button-white:hover {
  background: #222;
  transform: translateY(-2px);
}
.btn.button-transparent {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
  padding: 14px 32px;
  font-size: 1.25rem;
}
.btn.button-transparent:hover {
  background: var(--fit-schwarz);
  color: var(--fit-weiss);
}
.text-link {
  font-size: 01.25rem;
  font-weight: 700;
  color: var(--fit-rot);
  transition: opacity 150ms ease;
}
.text-link:hover { opacity: 0.7; }

/* ============================================
   CALL-TO-ACTION
   ============================================ */
.cta {
  background: var(--fit-blau);
  padding: 48px 0;
}
.cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.cta__title {
  font-size: 2rem;
  font-weight: 600;
  color: #fff;
  margin-bottom: 8px;
  line-height: 1.2;
}
.cta__subtitle {
  font-size: 1.25rem;
  font-weight: 400;
  color: #fff;
}
.cta__buttons {
  display: flex;
  gap: 16px;
  flex-shrink: 0;
}

/* ============================================
   FiT NEWS
   ============================================ */
.news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  /*padding-left:12px;
  padding-right:12px;*/
}
.news-card {
  background: var(--fit-weiss);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  overflow: visible;
  transition: transform 200ms ease, box-shadow 200ms ease;
  position:relative;
  padding-bottom:16px;
  margin-bottom:24px;
}
.news .article.news-card:last-child {
  padding-bottom:24px;
}
.news-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}
.news-card__image {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
}
.news-card__image img {
	width:100%;
	height:auto;
}
.news-card__image--1 { background: linear-gradient(135deg, #598080, #3a5555); }
.news-card__image--2 { background: linear-gradient(135deg, #009999, #006666); }
.news-card__image--3 { background: linear-gradient(135deg, #5A6F7A, #3a454a); }
.news-card__badge {
  position: absolute;
  top: 12px;
  left: -6px;
  background: var(--fit-rot);
  color: var(--fit-weiss);
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 4px 8px;
  z-index:2;
}
.page-1 .news-card__badge {
	display:none;
}
.news-card__body {
  padding: 20px;
  display:flex;
  flex-direction:column;
  height:63%
}
.news-card__body p:last-child {
	margin-top:auto;
	/*margin-bottom:0;*/
}
.news-card__meta {
  font-size: 1rem;
  color: var(--fit-grau-schrift);
  margin-bottom: 8px;
}
.news-card__title {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--fit-schwarz);
  margin-bottom: 8px;
  line-height: 1.3;
  hyphens:auto;
}
.news-card__text {
  font-size: 1.25rem;
  color: var(--fit-grau-schrift);
  margin-bottom: 12px;
  line-height: 1.5;
  hyphens:auto;
}

.frame-type-news_categorylist .btn {
	background-color:var(--fit-blau);
}
.frame-type-news_categorylist .btn-group a:last-child button {
	border-radius:0;
}
.news .pagination {
	/*padding-left:12px;
	padding-right:12px;*/
	margin-top:2rem;
}

.news-single h1.border-bottom {
	border-bottom:0 !important;
}
.news-single .thumbnail {
	margin-bottom:1rem;
}

/* ============================================
   TERMINE
   ============================================ */
.termine__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  /*padding-left:12px;
  padding-right:12px;*/
}
.termin-card {
  background: var(--fit-weiss);
  border: 1px solid var(--fit-grau-hell);
  padding: 24px;
  margin-bottom:1rem;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  transition: box-shadow 200ms ease;
  padding-bottom:16px;
  margin-bottom:24px;
}
.termin-card:hover {
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.termin-card__date {
  background: var(--fit-blau);
  width: 66px;
  height: 66px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  /*flex-shrink: 0;*/
  flex-wrap:wrap;
  color: #fff;
  border-top-left-radius: 10px;
}
.termin-card__date time {
  width: 66px;
  height: 66px;
	display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  /*flex-shrink: 0;*/
  flex-wrap:wrap;
  padding-top: 8px;
  padding-bottom: 8px;
}
.termin-card__day {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 0.6;
  flex: 0 0 50%;
  text-align:right;
}
.termin-card__month {
  font-size: 1.5rem;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 0.6;
  flex: 0 0 50%;
  text-align:left;
}
.termin-card__year {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 0.6;
}
.termin-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  height:100%;
}
.termin-card__body p:last-child {
	margin-top:auto;
	margin-bottom:0;
}
.termin-card__title {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--fit-schwarz);
  margin-bottom: 4px;
  line-height: 1.3;
  transform: translateY(-9px);
}
.termin-card__location {
  font-size: 1.25rem;
  color: var(--fit-grau-schrift);
  margin-bottom: 8px;
}

/* ============================================
   UNTERNEHMENSTICKER
   ============================================ */
.ticker {
  background: var(--fit-weiss);
  padding: 48px 0 64px;
  position: relative;
}
.ticker__signet {
  position: absolute;
  left: 0;
  top: 48px;
  bottom: 64px;
  width: 4px;
  background: var(--fit-blau);
  display:none;
}
.ticker__list {
  display: flex;
  flex-direction: column;
  /*padding-left:12px;
  padding-right:12px;*/
}
.ticker__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--fit-grau-hell);
}
.news .article.ticker__item {
	margin-bottom:0;
}
.article.ticker__item:last-child {
	border-bottom-color: #fff;
	padding-bottom:16px;
}
.ticker__image {
	min-width:150px;
}
.ticker__bullet {
  width: 8px;
  height: 8px;
  background: var(--fit-blau);
  border-radius: 50%;
  flex-shrink: 0;
}
.ticker__date {
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--fit-grau-schrift);
  flex-shrink: 0;
  width: 120px;
  display:none;
}
.ticker__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--fit-schwarz);
  flex-grow: 1;
}
.ticker__item .text-link {
  flex-shrink: 0;
  white-space: nowrap;
}


/* ============================================
   FORMULAR
   ============================================ */
.frame-type-form_formframework img, .frame-type-form_formframework svg {
	display:inline-block;
}
.frame-type-form_formframework textarea {
	resize:none;
	height:100px;
}
.frame-type-form_formframework .captcha {
	margin-top:0.5rem;
}
.frame-type-form_formframework .actions {
	margin-top:2rem;
}

/* ============================================
   FOOTER-SUCHE
   ============================================ */
.footer-suche {
	position:relative;
	padding-top:80px;
	padding-bottom:80px;
}
.footer-suche .background-image {
	background:url(kompass-bg-blau.jpg) no-repeat;
	background-size:cover;
	background-position:center;
	mix-blend-mode: normal;
	position:absolute;
	z-index:0;
	left:0;
	top:0;
	right:0;
	bottom:0;
}
.footer-suche .container {
	position:relative;
	z-index:1;
}
/* ============================================
   SIDE-LINKS
   ============================================ */
.side-links {
	position:fixed;
	right:0;
	top:45%;
	width:60px;
	z-index:80;
}
.side-links ul {
	list-style:none;
	margin:0;
	padding:0;
}
.side-links a {
	display:flex;
	align-items:center;
	justify-content:center;
	width:60px;
	height:60px;
	background-color:var(--fit-blau);
	box-shadow:0 0 1px 1px rgba(255,255,255,0.5);
	color:#fff;
	border-top-left-radius:10px;
	font-size:1.75rem;
	margin-bottom:10px;
}

/* ============================================
   FOOTER
   ============================================ */
.footer {
  background: var(--fit-grau-footer);
  color: var(--fit-weiss);
  padding: 48px 0 32px;
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
  gap: 40px;
}
.footer__heading, .footer h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--fit-weiss);
  text-transform: uppercase;
  margin-bottom: 16px;
}
.footer ul {
	margin:0;
	padding:0;
	list-style:none;
}
.footer p {
  font-size: 1.25rem;
  color: var(--fit-weiss);
  margin-bottom: 8px;
  line-height: 1.5;
}
.footer a {
  display: block;
  font-size: 1.25rem;
  color: var(--fit-weiss);
  transition: text-decoration 150ms ease;
}
.footer a:hover { text-decoration: underline; }
.footer__social-link {
  /*width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;*/
  display:block;
  margin-bottom:1rem;
  color: var(--fit-weiss);
  transition: background 150ms ease, color 150ms ease;
}
.footer__social-link:hover {
  background: var(--fit-weiss);
  color: var(--fit-grau-footer);
}
.footer__social-link svg {
	display:inline-block;
	vertical-align:center;
}
.footer__newsletter {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
.footer__input {
  flex: 1;
  background: transparent;
  border: 1px solid var(--fit-weiss);
  color: var(--fit-weiss);
  padding: 8px 12px;
  font-size: 1.25rem;
}
.footer__input::placeholder { color: rgba(255,255,255,0.6); }
.footer__input:focus { outline: none; border-color: var(--fit-blau); }
.footer__newsletter-btn {
  background: var(--fit-weiss);
  color: var(--fit-grau-footer);
  font-weight: 700;
  font-size: 1.25rem;
  padding: 8px 16px;
  transition: background 150ms ease;
  border-top-left-radius:10px;
}
.footer__newsletter-btn:hover { background: var(--fit-blau); }

/* ============================================
   FOOTER-BAR
   ============================================ */
.footer-bar {
  background: var(--fit-schwarz);
  padding: 14px 0;
}
.footer-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.footer-bar__legal {
  display: flex;
  gap: 24px;
  align-items: center;
  font-size: 1rem;
  color: var(--fit-weiss);
}
.footer-bar__legal a {
  color: var(--fit-weiss);
  opacity: 0.7;
  transition: opacity 150ms ease;
}
.footer-bar__legal a:hover { opacity: 1; }
.footer-bar__social {
  display: flex;
  gap: 16px;
}
.footer-bar__social a {
  color: var(--fit-weiss);
  opacity: 0.7;
  transition: opacity 150ms ease;
}
.footer-bar__social a:hover { opacity: 1; }

/* ============================================
   COOKIES
   ============================================ */
.tx-cf-cookiemanager {
	position:fixed;
	right:0;
	bottom:0;
}
.tx-cf-cookiemanager a {
	padding:2px 4px;
	font-size:1rem;
	color:#333;
	background:rgba(255,255,255,0.5);
}

/* ============================================
   TOP-LINK
   ============================================ */
#top-link {
	position:fixed;
	right:10px;
	bottom:30px;
	z-index:2000;
	cursor:pointer;
	width:40px;
	height:40px;
	border-radius:50%;
	text-align:center;
	background-color:var(--fit-blau);
	box-shadow: 0 0 1px 1px rgba(255,255,255,0.5);
}
#top-link i {
	font-size:1.5rem;
	line-height:1.65rem;
	color:#fff;
	margin-top:6px;
}

/* ============================================
   CONTENT
   ============================================ */
main {
	padding-top:104px;
}
h1 {
	font-size: 3rem;
	font-weight: 600;
	margin-bottom: 2rem;
	color: var(--fit-schwarz);
	text-transform: none;
	line-height: 1.2;
	position:relative;
}
main h1:after {
  width: 60px;
  height: 3px;
  background: var(--fit-blau);
  content:'';
  position:absolute;
  left:0;
  bottom:-20px;
}
main header > h2 {
	font-size: 3rem;
	font-weight: 600;
	color: var(--fit-schwarz);
	text-transform: none;
	line-height: 1.2;
}
body:not(.page-1) main header > h2 {
	font-size:2rem;
	font-weight: 500;
	color:#5A6F7A;
}
.frame-100 {
	padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
	border: 1px solid rgb(222, 226, 230);
	border-radius: 0;
	border-top-left-radius: 20px;
	padding:16px 16px 8px 16px;
}
.frame-class-110 {
	background-color:var(--fit-blau);
	color:#fff;
	padding-top:0.05px;
	padding-bottom:0.05px;
}
.frame-class-110 h2, .frame-class-110 h3 {
	color:#fff;
}
.frame-class-111 {
	background-color:var(--fit-grau-hell);
	padding-top:0.05px;
	padding-bottom:0.05px;
}
.frame-layout-1 {
	max-width:800px;
	margin-left:auto;
	margin-right:auto;
	padding:0 64px;
}
.frame-layout-2 > .frame > .container > .row, .frame-layout-2 > .container > .row {
	align-items:center;
}
.frame-layout-3 > .frame > .container > .row, .frame-layout-3 > .container > .row {
	align-items:flex-end;
}
p.text-right {
	text-align:right;
}

#darkbox_description {
	left:24px;
	text-align:center;
}


/* ============================================
   AKKORDEONS
   ============================================ */

.accordion-item:first-of-type, .accordion-item:first-of-type > .accordion-header .accordion-button {
	border-top-right-radius:0;
}
.accordion-item:last-of-type, .accordion-item:last-of-type > .accordion-header .accordion-button.collapsed {
	border-radius:0;
}
.accordion-button {
	font-size:24px;
	font-weight:bold;
}
.accordion-item:nth-child(even) .accordion-button.collapsed {
	background-color:#fafafa;
}
.accordion-button:not(.collapsed) {
	background-color:var(--fit-blau);
	color:#fff;
}
.accordion-button:focus {
	box-shadow:none !important;
}
.accordion-body p:last-child {
	margin-bottom:0;
}


/* ============================================
   WENDE-KACHELN
   ============================================ */

.flip-tile {
	text-align:center;
	aspect-ratio: 3 / 4 auto;
	margin-bottom:1rem;
}
.flip-tile .front {
	color:#fff;
	background-color:var(--fit-blau);
}
.flip-tile h3 {
	margin-top:12px;
}
.flip-tile .back {
	background-color:#fff;
	border:1px solid var(--fit-grau-hell);
}
.flip-tile .back p:first-child {
	padding-top:1rem;
}
.flip-tile ul {
	list-style:none;
	margin-left:0;
	padding-left:0;
}


/* ============================================
   KACHELN
   ============================================ */

.tile {
	padding:12px;
	border:1px solid var(--fit-grau);
	border-top-left-radius:20px;
	height:calc(100% - 24px);
}
.tile:not([class*="frame-space-after"]) {
	margin-bottom:0;	
}
.frame-class-110 .tile {
	background-color:#fff;
	border-color:#fff;
	color:#000;
}
.frame-class-110 .tile * {
	color:#000;
}
.tile p:last-child {
	margin-bottom:0;
}
.tile-dist {
	display:block;
	height:20px;
}
.tile_icon {
	margin-bottom:1rem;
}


/* ============================================
   VIDEOS
   ============================================ */
.external-video {
	position:relative;
	background-color:#f8f8f8;
	/*aspect-ratio:16 / 9 auto;
	overflow:hidden;*/
}
.external-video .ce-gallery {
	margin-bottom:0;
}

.video-consent {
	width:340px;
	margin-top:0;
	margin-left:-170px;
	padding:0.75rem 1.25rem;
	position:absolute;
	left:50%;
	top:calc(50% - 150px);
	z-index:8;
	background:rgba(237,237,239,0.9);
	text-align:center;
}

.video-consent p {
	margin-bottom:0.15rem;
}
.video-consent p:last-child {
	margin-bottom:0;
}

.video-consent .button {
	margin-top:1rem;
	margin-bottom:0;
}

.video-embed {
	padding-left:0;
	padding-right:0;
}
.video-embed-item {
	max-width:100%;
	display:block;
}

/* ============================================
   LINKS
   ============================================ */
.leading-arrow {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--fit-rot);
	/*border-bottom: 2px solid var(--fit-rot);*/
	padding-bottom: 2px;
	transition: opacity 150ms ease;
	position:relative;
}
.leading-arrow:after {
	content:' →';
}
.leading-arrow:hover {
	opacity: 0.7;
}

main .frame p a.download {
	font-size: 1.25rem;
	color: var(--fit-blau);
	text-decoration:none;
	border-bottom:0;
	padding-left:32px;
	position:relative;
}
main .frame p a.download:before {
	font-family: "Font Awesome 5 Free";
	content:'\f358';
	color: var(--fit-blau);
	position:absolute;
	left:0;
	top:-2px;
}


/* ============================================
   LOGIN
   ============================================ */
   
.frame-type-felogin_login .input-row {
	margin-bottom:0.5rem;
}

.frame-type-felogin_login .input-row label {
	width:120px;
}
.frame-type-felogin_login .input-row label[for="tx-felogin-input-data"] {
	width:auto;
	margin-right:16px;
}


/* ============================================
   REGISTRIERUNG
   ============================================ */
   
main > .tx-srfeuserregister-pi1 {
	margin-left:auto;
	margin-right:auto;
	margin-bottom:3rem;
}

.tx-srfeuserregister-pi1 input[type="submit"] {
	padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
}

.tx-srfeuserregister-pi1 legend {
	font-weight:normal;
}
.tx-srfeuserregister-pi1 p {
	padding: 0 .5em;
}
.tx-srfeuserregister-pi1 h4 {
	padding: 0 .4em;
}
.tx-srfeuserregister-pi1 input[type="password"] {
	width:150px;
}
   

/* ============================================
   RESPONSIVE
   ============================================ */
@media (min-width: 1024px) {
	.column-container {
		display:flex;
		flex-direction:row;
		margin-left:-20px;
		margin-right:-20px;
	}
	.column-container .col {
		padding-left:20px;
		padding-right:20px;
	}
	.cols-3 {
		flex:0 0 25%;
	}
	.cols-9 {
		flex:0 0 75%;
	}
	
	.form-element {
		width:50%;
	}
}
@media (max-width: 1023px) {
  .container { padding: 0 48px; }
  .meta-nav__inner { padding: 0 48px; }
  .main-nav__inner { padding: 0 48px; }

  .teasers__grid { grid-template-columns: repeat(2, 1fr); }
  .termine__grid { grid-template-columns: repeat(2, 1fr); }
  .news__grid { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: repeat(2, 1fr); }

  .hero { height: 360px; }
  .hero__content { padding-left: 48px; }
  .hero__title { font-size: 1.75rem; }

  .cta__inner { flex-direction: column; text-align: center; align-items: center; }
  
  /* ============================================
   SIDE-LINKS
   ============================================ */
	.side-links {
		top:auto;
		bottom:60px;
		width:40px;
	}
	.side-links a {
		width:40px;
		height:40px;
		font-size:1.25rem;
	}
  /* ============================================
   TOP-LINK
   ============================================ */
	#top-link {

		right:2px;
		bottom:20px;
		width:40px;
		height:40px;
		border-radius:40px;
	}
}

@media (max-width: 820px) {
	
	.frame-layout-4 .col-md-3, .frame-layout-4 .col-md-4, .frame-layout-4 .col-md-6 {
		width:100%;
	}
}

@media (max-width: 767px) {
  .container { padding: 0 24px; }
  .container .container { padding: 0; }
  .meta-nav__inner { padding: 0 24px; }
  .main-nav__inner { padding: 0 24px; }

  /* Meta-Nav: reduce items */
  .meta-nav__link { display: none; }
  .meta-nav__logo img { height: 82px; }

  /* Main nav: hamburger */
  .main-nav__list { display: none; }
  .main-nav__hamburger { display: flex; }

  .hero { height: 300px; }
  .hero__content { padding-left: 24px; }
  .hero__title { font-size: 1.75rem; }
  .hero__text { font-size: 1rem; }

  .teasers__grid { grid-template-columns: 1fr; }
  .termine__grid { grid-template-columns: 1fr; }
  .news__grid { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; gap: 32px; }

  .section-title { font-size: 1.5rem; }
  .section-title--sm { font-size: 1.375rem; }
  
  .frame-type-header.frame-space-before-extra-large {
	  margin-top:1em;
  }
  .frame-type-header header h1 {
	  font-size:2.25rem;
  }
  
  .ce-intext.ce-right .ce-gallery {
	  margin-left:0;
	  float:none;
  }
  .ce-intext.ce-left .ce-gallery {
	  margin-right:0;
	  float:none;
  }

  .ticker__item { flex-wrap: wrap; }
  .ticker__date { width: auto; }
  
	.news__grid {
	  display: block;
	  grid-template-columns: unset;
	  gap: unset;
	  padding-left:0;
	  padding-right:0;
	}
	.news .article.news-card {
	  display: block;
	  gap: unset;
	  align-items: unset;
	  padding-bottom:24px;
	}
  
	.termine__grid {
	  display: block;
	  grid-template-columns: unset;
	  gap: unset;
	  padding-left:0;
	  padding-right:0;
	}
	.news .article.termin-card {
	  display: block;
	  gap: unset;
	  align-items: unset;
	  padding-bottom:24px;
	}
	.termin-card__date {
		margin-bottom:24px;
	}
	
	.ticker__list {
		padding-left:0;
		padding-right:0;
	}
	.ticker__bullet {
		display:none;
	}
  
  .frame-layout-1 {
	padding: 0;
  }  
  
	p.text-right {
		text-align:left;
	}
	
	.btn + .btn {
		margin-left:0;
		margin-top:1.5rem;
	}

  .cta { padding: 32px 0; }
  .cta__buttons { flex-direction: column; width: 100%; }
  .cta__buttons .btn { width: 100%; }

  .footer-bar__inner { flex-direction: column; gap: 12px; }
  .footer-bar__legal { flex-wrap: wrap; justify-content: center; gap: 12px; }

  .intro { padding: 32px 24px; }
  
  .text-bild { margin-top:40px; }
  .tb-text { margin:0; width:auto; padding:120px 20px 80px 20px; }
  .tb-copytext { max-width:100%; }
  .tb-topline { padding-left:30px; }
  .tb-bild { position:relative; right:auto; top:auto; width:100%; margin-top:-20px;}
  
  .accordion-button {
	  font-size:20px;
  }
}

/* ============================================
   REDUCED MOTION
   ============================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
