@charset "UTF-8";
@font-face {
  font-family: 'NotoSansRegular';
  src: url(../Fonts/Redesign-2025/NotoSans-Regular.ttf);
}
@font-face {
  font-family: 'UbuntuBold';
  src: url(../Fonts/Redesign-2025/Ubuntu-Bold.ttf);
}
@font-face {
  font-family: 'UbuntuRegular';
  src: url(../Fonts/Redesign-2025/Ubuntu-Regular.ttf);
}
@font-face {
  font-family: 'UbuntuMedium';
  src: url(../Fonts/Redesign-2025/Ubuntu-Medium.ttf);
}
/** Variablen **/
/* ==========================================================================
   IMC Hauptnavigation — Darkmode-Variante
   Entspricht optisch dem freigegebenen HTML-Prototyp (nav-menu-darkmode.html),
   hier an TYPO3-HMENU-Markup angepasst (server-gerendertes <ul>/<li>/<button>).
   ========================================================================== */

:root {
  --heading: #004985;
  --bg: #ffffff;
  --surface: #f5f8fb;
  --text: #1a1a1a;
  --text-dim: #6b7580;
  --line: #e6ebf0;
  --icon-bg: #eaf2fa;
  --icon-color: #004985;
  --topbar-grad: linear-gradient(#323844, #004782);
  --shadow: 0 10px 26px rgba(0, 30, 60, 0.08);

  --nav-dark: #323844;
  --nav-blue: #004782;
  --nav-blue-light: #0067a8;

  --text-muted: rgba(255, 255, 255, 0.68);

  --border: rgba(255, 255, 255, 0.12);
  --border-light: rgba(255, 255, 255, 0.2);

  --surface: rgba(255, 255, 255, 0.075);
  --surface-hover: rgba(255, 255, 255, 0.12);

  --radius: 12px;
  --transition: 180ms ease;

  --max-width: 1180px;

  --ink: #004279;
  --ink-2: #00305a;
  --gold: #5288c6;
  --gold-dark: #2f6199;
  --teal: #004279;
  --paper: #f5f7fb;
  --card: #ffffff;
  --line: #d9dfea;
  --accent-gold: #c9a227;
  --accent-gold-dark: #96751d;
  --text: #152233;
  --text-soft: #4a5a70;
  --radius: 2px;
  --maxw: 1180px;
  font-size: 16px;
}

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    animation: none !important;
    transition: none !important;
  }
}

/*
html[data-theme='dark'] {
  --bg: #12161c;
  --surface: #1a2029;
  --text: #dfe4ea;
  --text-dim: #8b96a3;
  --line: #262e39;
  --icon-bg: #223047;
  --icon-color: #6fb3ef;
  --shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
  --heading: #4da3d9;
}
*/

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.note-editor.note-airframe .note-editing-area .note-editable,
.note-editor.note-frame .note-editing-area .note-editable {
  background-color: #fff;
}
.jconfirm-holder {
  width: 50vw;
  margin: 0 auto;
}
.jconfirm-title {
  font-size: 1.5rem !important;
  margin: 0.75rem 0 !important;
  font-family: 'UbuntuRegular' !important;
  color: #2e4e7f;
}

.btn.btn-danger {
  background-color: rgb(132, 6, 6) !important;
  color: #fff !important;
}

.btn {
  color: #fff !important;
}

html,
body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font-family: 'Inter', system-ui, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
@media screen and (max-width: 1200px) {
  html,
  body {
    font-size: 19px;
  }
}
@media screen and (max-width: 1024px) {
  html,
  body {
    font-size: 18px;
  }
}
@media screen and (max-width: 768px) {
  html,
  body {
    font-size: 17px;
  }
}
@media screen and (max-width: 480px) {
  html,
  body {
    font-size: 16px;
  }
}

.visitenkarten {
  display: flex;
  background-color: #e9ecf0;
  padding: 1rem 2rem;
  display: flex;
  flex-direction: row;
  text-align: left;
}

.visitenkarten:not(:first-of-type) {
  margin-top: 1rem;
}

.visitenkarten .informationen {
  width: 60%;
}

.visitenkarten .name {
  font-weight: bold;
  font-size: 1.1rem;
}

.visitenkarten .bild {
  display: inline-flex;
  justify-content: end;
  align-items: flex-start;
  width: 40%;
  border-radius: 16px;
}

.visitenkarten .bild img {
  box-shadow: 10px 10px 5px 0px rgba(174, 174, 174, 0.58);
  -webkit-box-shadow: 10px 10px 5px 0px rgba(174, 174, 174, 0.58);
  -moz-box-shadow: 10px 10px 5px 0px rgba(174, 174, 174, 0.58);

  max-width: 300px;
  height: auto;
}
.visitenkarten {
  .fa-image-portrait {
    font-size: 5rem !important;
  }
}

p {
  font-family: 'NotoSansRegular';
  font-size: 1rem;
  margin: 1rem 0;
  line-height: 1.6rem;
}

div.terminWrapper div {
  font-family: 'NotoSansRegular';
  font-size: 1rem !important;
}

.lessMargin {
  margin: 1rem 0;
}
.lessMargin p {
  margin-block: 0.25rem;
}

a {
  /*
  font-size: 1rem;
  color: #004884;
  font-weight: 600;
  */
  color: #004884;
}

a.pdf::before,
span.pdf::before {
  font-family: 'Font Awesome 6 Free';
  font-weight: 600;
  content: '\f1c1';
  margin-right: 0.5rem;
  color: #ff0000;
}

a.external::before {
  font-size: 0.7rem;
  font-family: 'Font Awesome 6 Free';
  font-weight: 600;
  content: '\f08e';
  margin-right: 0.2rem;
  text-decoration: none;
  border-bottom: 0;
}

h1,
h2,
h3,
h4 {
  letter-spacing: 0.05rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'UbuntuRegular';
  color: var(--heading);
  word-break: normal;
}

h1 {
  font-size: 2.25rem;
  margin-bottom: 2rem;
  /* font-family: "UbuntuMedium"; */
}

h2 {
  font-size: 1.9rem;
  margin: 1rem 0;
  /* font-family: "UbuntuMedium"; */
}

h3 {
  font-size: 1.5rem;
  margin: 0.75rem 0;
  font-family: 'UbuntuRegular';
}

h3:not(:first-of-type) {
  margin-top: 1rem;
}

h4 {
  font-size: 1.2rem;
  font-family: 'UbuntuRegular';
}

h5 {
  font-size: 1.2rem;
  font-family: 'UbuntuRegular';
  font-weight: 100;
}

h6 {
  font-size: 1.25rem;
}

h1,
h2,
h3 {
  font-family: 'Ubuntu', 'Inter', sans-serif;
  color: var(--ink);
  margin: 0;
  letter-spacing: -0.01em;
}

.bold {
  font-weight: 700;
}

.light {
  font-weight: 300;
}

.fontMedium {
  font-family: 'UbuntuMedium';
}

.bisschenAbstand {
  padding-bottom: 0.3rem;
}

.mehrAbstand {
  padding-bottom: 0.4rem;
}

.vielAbstand {
  padding-bottom: 0.6rem;
}

small {
  font-size: 0.8rem;
}

/**
 * https://typescale.com/
 * Font-Size: 17px
 * Scale: 1.250 - Major
 * Font: Ubuntu Sans
 * Weight: 400
 * Line-height: 1.6
 * Letter-spacing: 0.004em
 * color: #1A1A1A
 * Background: #FFFFFF
 *
 *
 *
 *
**/
/* HeaderBild mit Titel und DCS Logo 
�berlegen ob das Background Image nicht vielleicht besser in das HTML geschriebwn wird f�r leichtere Anpassungen */
.headerBanner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-image: url('../img/banner/sauelen.jpg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  /* padding-block: 6rem; */
  padding-block: 12rem;
  font-family: 'UbuntuMedium';
  height: 400px;
}
.headerBanner p {
  color: #fff;
  font-family: 'UbuntuMedium';
  font-size: 3rem;
  line-height: 2.9rem;
  padding-inline: 5rem;
  text-align: center;
  /* font-weight: 600; */
  text-shadow: 4px 4px 10px rgba(0, 0, 0, 0.75);
}
.headerBanner .noShadow {
  text-shadow: none;
}
.headerBanner .light {
  font-weight: 300;
}
.headerBanner .biggerFont {
  font-size: 3.5rem;
  padding-inline: 0;
}
.headerBanner .logo-gross {
  width: 60%;
  display: flex;
  margin: 0 auto;
}
.headerBanner img {
  width: 20%;
}
@media screen and (max-width: 900px) {
  #headerBanner {
    margin-top: 50px;
  }

  .headerBanner img {
    width: 30%;
  }

  .headerBanner {
    height: 350px !important;
  }
}
@media screen and (max-width: 500px) {
  .headerBanner p {
    padding-inline: 2rem;
  }
  .headerBanner img {
    width: 40%;
  }

  .headerBanner {
    height: 200px !important;
  }
}

.blueOverlay {
  /* background-color: #3f6ba2; */
  /* background-color: rgba(255, 255, 255, 0.3); */
  background-color: rgba(63, 107, 162, 0.6);
  background-blend-mode: darken;
}

.abstandsDiv.gross {
  padding-top: 5rem;
}

.abstandsDiv.medium {
  padding-top: 3rem;
}

.abstandsDiv.mediumBottom {
  padding-bottom: 3rem;
}

.abstandsDiv.klein {
  padding-top: 2.2rem;
}

/**
 * Checkboxen
**/
.control {
  font-family: arial;
  display: block;
  position: relative;
  padding-left: 30px;
  margin-bottom: 5px;
  padding-top: 3px;
  cursor: pointer;
  font-size: 22px;
  display: inline-flex;
  align-items: center;
}
/*
.control {
  display: block;
  position: relative;
  padding-left: 30px;
  margin-bottom: 5px;
  padding-top: 3px;
  cursor: pointer;
  font-size: 20px;
}
  */
label {
  display: inline-block;
  font-weight: 600;
  margin-top: 1rem;
}
label.control input[type='checkbox'],
label.control input[type='radio'] {
  display: none;
}
.control input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}
.control_indicator {
  position: absolute;
  top: 8px;
  left: 0;
  height: 25px;
  width: 25px;
  background: #b4c3dc !important;
  border: 2px solid #2e4e7f !important;
  border-radius: 5px;
  margin-right: 1rem;
  display: inline-flex;
}
.control_indicator {
  position: absolute;
  top: 8px;
  left: 0;
  height: 20px;
  width: 20px;
  background: #b4c3dc !important;
  border: 0px solid #000000 !important;
  border: 2px solid #2e4e7f !important;
  border-radius: 0px;
}
.control input:checked ~ .control_indicator::after,
.control_indicator.checked::after {
  display: block;
}
.control-checkbox .control_indicator::after,
.control_indicator.checked::after {
  left: 6px;
  top: 1px;
  margin-left: -2px;
  margin-top: -1px;
  width: 5px;
  height: 10px;
  border: solid #ffffff;
  border-top-width: medium;
  border-right-width: medium;
  border-bottom-width: medium;
  border-left-width: medium;
  border-top-width: medium;
  border-right-width: medium;
  border-bottom-width: medium;
  border-left-width: medium;
  border-top-width: medium;
  border-right-width: medium;
  border-bottom-width: medium;
  border-left-width: medium;
  border-width: 0 4px 4px 0;
  transform: rotate(45deg);
}
.control_indicator::after {
  box-sizing: unset;
  content: '';
  position: absolute;
  display: none;
}
.control input:checked ~ .control_indicator {
  background: #2e4e7f !important;
}

/**
* WRAPPER
**/
div.contentWrapper {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
}

div#artikelInhalt img,
footer img {
  max-width: 200px;
  height: auto;
}

@media screen and (max-width: 1200px) {
  div.contentWrapper {
    max-width: 860px;
  }
}
@media screen and (max-width: 1024px) {
  div.contentWrapper {
    max-width: 780px;
  }
}
@media screen and (max-width: 768px) {
  div.contentWrapper {
    max-width: 90vw;
  }
}

/* F�r die grauen Hintergrundelemente
am besten in die Section vor div.contentWrapper */
.greyBackground {
  color: #004985;
  background-color: #e8ecf3;
}

.noBottomPadding {
  padding-bottom: 0;
}

.noTopMargin {
  margin-top: 0;
}

main {
  background-color: var(--bg);
}
main.scrolled {
  /* margin-top: 73px; */
}

.blauerWrapper {
  width: 100%;
  background-color: #6e92c4;
  color: #fff;
  padding: 0.5rem;
  margin-block: 0.5rem;
  transition:
    transform 0.5s ease,
    box-shadow 0.3s ease;
  will-change: transform;
  padding-left: 1rem;
}
.blauerWrapper a {
  color: #fff;
  text-decoration: none;
}
.blauerWrapper h2,
.blauerWrapper h3 {
  color: #fff;
  font-family: 'UbuntuRegular';
  font-weight: 300;
}

.blauerVeranstaltungsWrapper {
  display: grid;
  grid-template-columns: 1fr;
  background-color: #6e92c4;
  position: relative;
  transition:
    transform 0.5s ease,
    box-shadow 0.3s ease;
  will-change: transform;
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition:
    height 0.5s ease,
    opacity 0.5s ease;
}
.blauerVeranstaltungsWrapper a {
  text-decoration: none;
}
.blauerVeranstaltungsWrapper h2,
.blauerVeranstaltungsWrapper h3 {
  color: #fff;
}
.blauerVeranstaltungsWrapper h3 {
  font-weight: 300;
}
.blauerVeranstaltungsWrapper .veranstaltungsInnenWrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  height: 100%;
}
.blauerVeranstaltungsWrapper .veranstaltungsInnenWrapper img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
}
.blauerVeranstaltungsWrapper .veranstaltungsInnenWrapper h2,
.blauerVeranstaltungsWrapper p {
  padding-top: 0.1rem;
  padding-inline: 0.5rem;
  color: #fff;
  font-size: 1.4rem;
}
.blauerVeranstaltungsWrapper .text {
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.blauerVeranstaltungsWrapper .text p {
  font-weight: 400;
  font-size: 1rem;
}

.blauerVeranstaltungsWrapper.expanded {
  height: 10rem;
  opacity: 1;
  /* padding: 0.5rem; */
  margin-block: 0.3rem;
}

.blauerVeranstaltungsWrapper:hover {
  transform: scale(1.07);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4);
  z-index: 2;
}
@media screen and (max-width: 750px) {
  .blauerVeranstaltungsWrapper .veranstaltungsInnenWrapper img {
    display: none;
  }
  .blauerVeranstaltungsWrapper .veranstaltungsInnenWrapper {
    grid-template-columns: 1fr;
  }
}

.centered {
  text-align: center;
}

.fortbildungsTabelle {
  text-align: left;
  border-collapse: collapse;
  width: 100%;
  font-weight: 100;
  overflow-x: scroll;
}
.fortbildungsTabelle thead tr {
  color: #fff;
  background-color: #6e92c4;
  font-family: 'UbuntuRegular';
}
.fortbildungsTabelle thead tr th {
  padding: 0.5rem;
  padding-left: 1.5rem;
}
.fortbildungsTabelle tbody tr {
  color: #000;
  background-color: #d9dfea;
  border-bottom: 3px solid #fff;
}
.fortbildungsTabelle tbody tr td {
  padding: 1.5rem;
  border: none;
}
.fortbildungsTabelle tbody tr:last-child {
  border-bottom: none;
}
.firstChildBold {
  td:first-child {
    font-weight: bold;
    vertical-align: baseline;
  }
}

.kachelWrapper {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2px;
}
.kachelWrapper .kachel {
  aspect-ratio: 3/2;
  /* background-color: #3f6ba2; */
  /* background-color: #3a6b9f; */
  /* background-color: #406b99; */
  background-color: #3a608a;
  color: white;
  background-repeat: no-repeat;
  background-size: cover;
  background-blend-mode: multiply;
  /* Um Schrift sauber zu zentrieren */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  /* für Hover Animation */
  transition:
    transform 0.5s ease,
    box-shadow 0.3s ease;
  will-change: transform;
}
.kachelWrapper .platzhalter {
  background: linear-gradient(to right, #3c6c9f 0%, #aabbd3 50%, #e9ecf1 100%);
  transition: unset;
  display: none;
}
.kachelWrapper .span3mitSelect {
  grid-column: span 3;
  aspect-ratio: auto;
  height: 10rem;
  background-blend-mode: normal;
  transition: unset;
  position: relative;
}
.kachelWrapper .span3mitSelect .selectWrapper {
  position: absolute;
  right: 6rem;
  max-width: 17rem;
  display: flex;
  flex-direction: column;
  justify-content: end;
  /* align-items: anchor-center; */
}
.kachelWrapper .span3mitSelect .selectWrapper label {
  font-size: 1.2rem;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.9);
  text-align: left;
}
.kachelWrapper .span3mitSelect .selectWrapper select {
  cursor: pointer;
  background-color: #2e4e7f;
  color: #fff;
  padding: 0.75rem 1rem;
  border: none;
  font-size: 1rem;
  font-weight: 500;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  transition:
    background-color 0.3s ease,
    transform 0.2s ease,
    box-shadow 0.3s ease;
}
.kachelWrapper .kachelText {
  font-size: 1.3rem;
  /* font-weight: 700; */
  font-family: 'UbuntuRegular';
  font-weight: 100;
  letter-spacing: 0.05rem;
  text-shadow: 4px 4px 10px rgba(0, 0, 0, 0.8);
}
.kachelWrapper a {
  text-decoration: none;
}
.kachelWrapper .kachel:hover {
  transform: scale(1.1);
  /* Vergrößern um 10 % */
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  /* Optional */
  z-index: 2;
}
.kachelWrapper .kachel.span3mitSelect:hover {
  transform: none;
}
.kachelWrapper .kachel.platzhalter:hover {
  transform: none;
  box-shadow: none;
}

/* Einheitliche select-Felder */
.contentWrapper select {
  height: 3rem;
  margin-top: 0.5rem;
  background-color: #004884;
  background-color: #3c6ca0;
  color: #fff;
  border: 1px solid #ccc;
  border-radius: 0.2em;
  padding: 0.5em 1em;
  font-size: 1rem;
  font-weight: 500;
  width: 100%;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s;
}

.contentWrapper select option {
  width: 100%;
}

@media screen and (max-width: 800px) {
  /* body {
  	// overflow: hidden !important;
  } */
  /* 	Warum Footer und h1 hier dazu und font-size in pt und important angegeben?
  Hier waren vorher nur die Anpassungen des Kachelwrappers  */
  h1 {
    font-size: 30pt !important;
  }
  .kachelWrapper {
    grid-template-columns: 1fr 1fr;
  }
  .span3mitSelect {
    grid-column: span 2 !important;
  }
  div#footerContent {
    grid-template-columns: repeat(1, 1fr) !important;
    grid-template-rows: repeat(1, 0.2fr) !important;
  }
  .platzhalter {
    display: flex !important;
  }
}
@media screen and (max-width: 500px) {
  .kachelWrapper {
    grid-template-columns: 1fr;
  }
  .span3mitSelect {
    grid-column: span 1 !important;
  }
  .kachelWrapper .span3mitSelect .selectWrapper {
    right: 2rem;
  }
  .platzhalter {
    display: none !important;
  }
}
@media screen and (max-width: 350px) {
  .kachelWrapper .span3mitSelect .selectWrapper {
    right: 1rem;
  }
}
.saeulenWrapper {
  background-image: url('../img/banner/sauelen.jpg');
  display: flex;
  flex-direction: column;
  align-items: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding-block: 4rem;
}
.saeulenWrapper h2 {
  color: white;
  padding-block: 1rem;
}
.saeulenWrapper .saeulenInnenWrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  color: #004985;
  font-weight: 800;
  gap: 3px;
  /* padding-inline: 2rem; */
}
.saeulenWrapper .saeuleGridElement {
  padding: 2rem 2.5rem;
  background-color: white;
  background-image: url('../img/Schlange-mit-Saeule.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 3rem;
  text-align: center;
  text-transform: uppercase;
}

.skltbs-panel {
  border: 2px solid #003d72;
}

input[type='submit'],
button:not(.imc-pill-btn):not(#themeToggle):not(.nav-btn):not(.play-toggle):not(
    .dot
  ):not(.tab-item):not(.filterReiter):not(.skltbs-tab):not(.note-btn):not(
    .collapsible
  ):not(.unmask):not(.vjs-control):not(.Toastify__close-button):not(
    .imc-icon-btn
  ):not(.imc-burger):not(.nav-row-btn),
.button {
  cursor: pointer;
  background-color: #2e4e7f;
  color: #fff;
  padding: 0.75em 1.5em;
  border: none;
  border-radius: 0.5em;
  font-size: 1rem;
  font-weight: 500;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  transition:
    background-color 0.3s ease,
    transform 0.2s ease,
    box-shadow 0.3s ease;
}

.editTermin,
.copyTermin,
.deleteTermin {
  cursor: pointer;
  background-color: unset;
  color: unset;
  padding: 0;
  border: none;
  border-radius: 0;
  font-weight: bold;
  font-size: 1.2rem;
  padding: 0 0.5rem;
  box-shadow: unset;
}

.deleteTermin {
  color: rgb(139, 4, 4);
}

.editTermin:hover,
.copyTermin:hover,
.deleteTermin:hover {
  color: #2e4e7f;
  font-size: 1.3rem;
}

input[type='submit']:hover,
button:not(.collapsible):not(.nav-row-btn):hover {
  background-color: #3a5e9b;
  /*transform: translateY(-2px) */
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.2);
  border: 1px solid var(--accent-gold);
}

input[type='submit']:active,
button:active {
  transform: translateY(0);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
}

input[type='text'],
input[type='password'],
input[type='email'],
input[type='number'],
input[type='date'] {
  background-color: #fff;
  color: #000;
  border: 1px solid #ccc;
  border-radius: 0.2em;
  padding: 0.5em 1em;
  font-size: 1rem;
  font-weight: 500;
  width: 100%;
  max-width: 400px;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

input[type='text']::-moz-placeholder,
input[type='password']::-moz-placeholder,
input[type='email']::-moz-placeholder,
input[type='number']::-moz-placeholder,
input[type='date']::-moz-placeholder {
  color: #888;
}

input[type='text']::placeholder,
input[type='password']::placeholder,
input[type='email']::placeholder,
input[type='number']::placeholder,
input[type='date']::placeholder {
  color: #888;
}

input[type='text']:hover,
input[type='password']:hover,
input[type='email']:hover,
input[type='number']:hover,
input[type='date']:hover {
  border-color: #aaa;
}

input[type='text']:focus,
input[type='password']:focus,
input[type='email']:focus,
input[type='number']:focus,
input[type='date']:focus {
  outline: none;
  border-color: #2e4e7f;
  box-shadow: 0 0 0 3px rgba(46, 78, 127, 0.2);
}

input[type='text'].error,
input[type='password'].error,
input[type='email'].error,
input[type='number'].error,
input[type='date'].error {
  border: 2px solid rgb(132, 7, 7);
  border-radius: 5px;
}

@media screen and (max-width: 800px) {
  .saeulenWrapper .saeuleGridElement {
    padding: 2rem 1.5rem;
    background-size: 2.5rem;
  }
}
@media screen and (max-width: 600px) {
  .saeulenWrapper .saeuleGridElement {
    padding: 1.5rem 1rem;
    background-size: 2rem;
    font-size: 0.7rem;
  }
}
.saeulenWrapper .first {
  border-radius: 6rem 0 0 6rem;
}
.saeulenWrapper .last {
  border-radius: 0 6rem 6rem 0;
}

.blaueListe {
  color: #004985;
  margin: 0.5rem 1rem;
  line-height: 1.6rem;
}
.blaueListe .noBullets {
  list-style-type: none;
}

.adressListe {
  list-style: none;
}
.adressListe a {
  font-weight: 700;
  text-decoration: none;
  color: #637fb6;
}

.blauerText {
  color: #004985;
}

.zwischenBalken {
  width: 100%;
  background-color: #6e92c4;
  position: relative;
}
.zwischenBalken .contentWrapper {
  position: relative;
}
.zwischenBalken .contentWrapper h2 {
  color: #fff;
  padding: 1rem 0;
  display: inline-block;
  position: relative;
  font-weight: 100;
}
.zwischenBalken .contentWrapper h2::after {
  content: '';
  position: absolute;
  left: 0;
  top: 100%;
  width: 0;
  height: 0;
  border-left: 0.75rem solid transparent;
  border-right: 0.75rem solid transparent;
  border-top: 0.75rem solid #6e92c4;
}

.floatImgContainer {
  float: right;
}
.floatImgContainer .floatImg {
  margin-bottom: 0;
  padding: 0;
  /* height: 14rem;
  aspect-ratio: 3/4; */
  width: 10rem;
  padding: 1rem;
}
.floatImgContainer .floatImg img {
  width: 100%;
}
.floatImgContainer .floatImgText {
  background-color: #fff;
  color: #3a4246;
  margin-top: -1rem;
  font-size: 0.7rem;
  padding: 0.5rem 0.5rem 1.5rem 0.5rem;
  width: 100%;
}

.pdfDownloads {
  list-style: none;
  padding: 0;
  margin: 0;
}

.pdfDownloads li {
  background-color: #6e92c4;
  margin-bottom: 3px;
}

.pdfDownloads li a {
  display: flex;
  align-items: center;
  padding: 0.25rem 1rem;
  text-decoration: none;
  color: #fff;
  width: 100%;
  font-family: 'UbuntuRegular';
  font-weight: 100;
}

.pdfDownloads li a::before {
  content: '';
  display: inline-block;
  background: url('../img/pdf_symbol.svg') no-repeat center center;
  background-size: contain;
  width: 1rem;
  height: 1rem;
  margin-right: 0.5rem;
}

#olliPfeil {
  display: flex;
  justify-content: center;
  transform: translate(0, -60%);
}
#olliPfeil i {
  font-size: 2.5rem;
  background-color: #fff;
  border-radius: 2.5rem;
}

.spendenGrid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem;
}

.spendenGridElement {
  background-color: #e1e5ec;
  padding: 1.5rem;
  position: relative;
  height: 10rem;
}

.spendenGridElement h3 {
  width: 100%;
  color: #004985;
  font-weight: 500;
}

.spendenGridInhalt {
  position: absolute;
  bottom: 0;
  right: 0;
  transform: translate(-1.5rem, -1.5rem);
  font-size: 18px;
}

.paypalButton {
  width: 7rem;
}

.spendenLogo {
  position: absolute;
  bottom: 0;
  left: 0;
  max-height: 4rem;
  transform: translate(1.5rem, -1.5rem);
}

.textNebenBildGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
.textNebenBildGrid .gridElement {
  padding: 0;
}
.textNebenBildGrid img {
  max-width: 430px;
}

.preistraegerImgContainer img {
  max-height: 17rem;
}

.imgQuerFull img {
  max-width: 100%;
}

.bilderGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.bilderGridElement img {
  max-width: 100%;
  max-height: 100%;
}

.span2 {
  grid-column: span 2;
}

.logoFlex,
.koopFlex {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1rem;
}

.logoFlexElement img {
  max-height: 5rem;
}

.koopFlexElement img {
  max-height: 5rem;
}

#userid {
  display: none;
}

/* Collapsible */
button.collapsible::after {
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  color: #fff;
  content: '\f106';

  transform: rotateZ(90deg);
  -webkit-transition: -webkit-transform 0.25s ease-in-out;
  -ms-transition: -ms-transform 0.25s ease-in-out;
  transition: transform 0.25s ease-in-out;

  /* background: #29639a; */
  background: #5288c6;
  width: 30px;
  height: 30px;
  padding: 10px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

button.collapsible {
  font-family: 'UbuntuRegular';
  font-size: 1.9rem;
  /* background: #29639a; */
  background: #004985;
  color: #ffffff;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: none;
  border-radius: 0;
  text-align: left;
  outline: none;
  display: block;
  margin-bottom: 0;
  margin-top: 20px;
  font-weight: normal;

  display: flex;
  justify-content: space-between;
  align-items: center;
  word-break: break-word;
}

button.collapsible.active::after {
  transform: rotateZ(180deg);
  -webkit-transition: -webkit-transform 0.25s ease-in-out;
  -ms-transition: -ms-transform 0.25s ease-in-out;
  transition: transform 0.25s ease-in-out;
}

.content.active {
  max-height: inherit;
  padding: 18px;
  transition: max-height 1s ease-in-out;
}

.content {
  font-size: 1rem;
  background-color: #e9ecf0;
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
}

ol {
  padding: 0;
  margin-left: 1rem;
}

ol li {
  margin-bottom: 0.5rem;
}

ol.black-background {
  list-style: none;
}

ol.black-background li {
  counter-increment: item;
  margin-bottom: 15px;
}

ol.black-background li:before {
  margin-right: 10px;
  content: counter(item);
  background: #323844;
  border-radius: 100%;
  color: white;
  width: 1.2em;
  text-align: center;
  display: inline-block;
}

ol.black-background li:nth-child(even) {
}

ol.black-background li:nth-child(odd) {
  background-color: #e9ecf0;
}

main:not(.container) {
  margin-top: calc(124px + 2rem);
}

main ul.farbwechsel {
  list-style: none;
}

main ul.farbwechsel li {
  display: inline-flex !important;
  justify-content: flex-start;
  min-height: 2rem;
  width: 100%;
}

main ul.farbwechsel li::before {
  font-family: 'Font Awesome 6 Free';
  font-weight: 600;
  padding-right: 16px;
  padding-left: 16px;
  content: '\f0da';
  padding-top: 5px;
}

main ul li {
  color: #004985;
  margin: 0.5rem 1rem;
  line-height: 1.6rem;
}
main ul li.black {
  color: #000;
  margin: 0.5rem 1rem;
  line-height: 1.6rem;
}

main li.noBullets {
  list-style-type: none;
}

main ul.farbwechsel li:nth-child(odd) {
  background-color: #e9ecf0;
}

table.inhaltstabelle {
  background: #fff;
  overflow-x: scroll;
}
table.inhaltstabelle th,
table.inhaltstabelle td,
.grid_body {
  padding: 0.25rem 0.5rem;
}

table.inhaltstabelle th,
.grid_head {
  background-color: #003d72;
  color: #fff;
  font-weight: 600;
  text-align: left;
}

table.inhaltstabelle tr:nth-child(even) td {
  background-color: #e9ecf0;
}

table.inhaltstabelle tr:nth-child(odd) td {
  background-color: rgba(107, 150, 208, 0.5);
}

.graueTabelle {
  width: 100%;
  border-collapse: collapse;
  color: #333;
}

.graueTabelle td {
  vertical-align: top;
  padding: 0.6rem 0.7rem;
}

.graueTabelle tr:nth-child(odd) {
  background-color: #dadfe7;
}

.graueTabelle td:first-child {
  width: 80px;
  font-weight: 600;
}

/* Spinner / Wartesymbol */
#spinner {
  width: 50vw;
  min-height: 25vh;
  height: fit-content;

  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1.5rem;

  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 150;
}
.loading-container {
  position: fixed;
  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  font-family:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    sans-serif;
  font-size: 2rem;
  color: #555;
}

.loading-dots {
  display: flex;
  gap: 4px;
}

.loading-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;

  animation: loading-pulse 1.2s infinite ease-in-out;
}

.loading-dots span:nth-child(2) {
  animation-delay: 0.15s;
}

.loading-dots span:nth-child(3) {
  animation-delay: 0.3s;
}

@keyframes loading-pulse {
  0%,
  60%,
  100% {
    opacity: 0.25;
    transform: scale(0.8);
  }

  30% {
    opacity: 1;
    transform: scale(1);
  }
}

.kontaktFlex {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding-block: 1rem;
}
.kontaktFlex ul {
  list-style: none;
  li {
    margin: 0;
    color: black;
  }
}
.kontaktFlexElement strong {
  color: #003d72;
}

@media screen and (max-width: 650px) {
  .kontaktFlex {
    flex-direction: column;
    align-items: center;
  }
  .kontaktFlexElement:first-child {
    margin-bottom: 2rem;
  }
}

.registrierungContainer .title {
  font-size: 1.6rem;
}
.registrierungContainer .userDetails {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media screen and (max-width: 675px) {
  .registrierungContainer .userDetails {
    grid-template-columns: 1fr;
  }
  .password + .unmask {
    display: none;
  }
}
.registrierungContainer .userDetails .inputBox {
  width: 100%;
  margin-block: 0.2rem;
  display: flex;
  flex-direction: column;
}
.registrierungContainer .userDetails .inputBox .details {
  font-weight: 600;
}
.registrierungContainer .userDetails .inputBox input {
  width: 100%;
  height: 3rem;
  margin-top: 0.5rem;
  background-color: #ddd;
}
.registrierungContainer .userDetails .inputBox input::placeholder {
  color: #3c6ca0a3;
  /* color: #9cb6d4; */
}
.registrierungContainer .adressField {
  display: flex;
  flex-direction: row !important;
}
.registrierungContainer .adressField .adressDiv1 {
  width: 69%;
  margin-right: 1%;
}
.registrierungContainer .adressField .adressDiv2 {
  width: 20%;
}
.registrierungContainer .genderDetails .genderTitle {
  font-size: 1.6rem;
  font-weight: 600;
}
.registrierungContainer .genderDetails .category {
  display: flex;
  justify-content: space-between;
  width: 80%;
}
.registrierungContainer .genderDetails label {
  display: flex;
  align-items: center;
}
.registrierungContainer .genderDetails .dot {
  height: 1rem;
  width: 1rem;
  background: #d9d9d9;
  border-radius: 50%;
  margin-right: 0.75rem;
  border: 5px solid transparent;
  transition: all 0.3s ease;
}
.registrierungContainer .genderDetails #dot-1:checked ~ .category label .one,
.registrierungContainer .genderDetails #dot-2:checked ~ .category label .two,
.registrierungContainer .genderDetails #dot-3:checked ~ .category label .three {
  border-color: #d9d9d9;
  background-color: #3c6ca0;
}
.registrierungContainer .genderDetails input[type='radio'] {
  display: none;
}
.registrierungContainer input[type='submit'] {
  width: 100%;
  margin-top: 1rem;
}
.registrierungContainer .userDetails select {
  height: 3rem;
  margin-top: 0.5rem;
  /* background-color: #004884; */
  background-color: #3c6ca0;
  color: #fff;
  border: 1px solid #ccc;
  border-radius: 0.2em;
  padding: 0.5em 1em;
  font-size: 1rem;
  font-weight: 500;
  width: 100%;
  max-width: 400px;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s;
}

/* Erste Option im Menü (z.B. Bitte wählen) lesbarer machen */
.dropdown-el.expanded label:first-of-type {
  color: #333;
}
.password {
  /* width: 90%; */
  padding: 15px 12px;
  margin-bottom: 5px;
  border: 1px solid #e5e5e5;
  border-bottom: 2px solid #ddd;
  background: rgba(255, 255, 255, 0.2) !important;
  color: #555;
}
.passUndBtnBox {
  position: relative;
}

.password + .unmask {
  position: absolute;
  right: 9%;
  transform: translateX(-60%);
  top: 1.5rem;
  width: 1rem;
  height: 1rem;
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
  border: none;
  font-family: 'fontawesome';
  font-size: 14px;
  line-height: 1rem;
  -webkit-appearance: none;
  outline: none;
  box-shadow: 0 0 0 0;
}
.password + .unmask:before {
  content: '\f06e';
  position: absolute;
  top: 0;
  left: 0;
  width: 1rem;
  height: 1rem;
  background: rgba(205, 205, 205, 0.2);
  z-index: 1;
  color: #aaa;
  border: 2px solid;
  border-radius: 50%;
}
.password[type='text'] + .unmask:before {
  content: '\f070';
  background: rgba(105, 205, 255, 0.2);
  color: #06a;
}
#valid {
  font-size: 12px;
  color: #daa;
  height: 15px;
}
#strong span {
  display: block;
  height: 100%;
  padding: 0.1rem 0.5rem;
  transition: all 0.6s ease;
  border-radius: 5px;
  text-transform: capitalize;
}

#strong span.weak {
  background-color: #f4cccc;
  color: #a00;
}

#strong span.medium {
  background-color: #ffe599;
  color: #b36b00;
}

#strong span.strong {
  background-color: #b6d7a8;
  color: #215e21;
}

.displayNone {
  display: none;
}

/** Dropdowns **/
.dropdown-el {
  width: 90%;
  position: relative;
  display: inline-block;
  height: 3rem; /* fester Header-Bereich */
  cursor: pointer;
  text-align: left;
  outline: none;
  background-color: #3c6ca0; /* geschlossen = blau */
  border: 0.1rem solid #004985;
  border-radius: 1rem;
  overflow: visible;
}

.dropdown-el::after {
  content: '';
  position: absolute;
  right: 0.8rem;
  top: 1.2rem;
  border: 0.3rem solid #004985;
  border-color: #004985 transparent transparent transparent;
  transition: 0.3s transform ease;
  z-index: 6;
}
.dropdown-el.expanded::after {
  transform: rotate(-180deg);
}

.dropdown-el input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.dropdown-el label {
  display: none;
  height: 3rem;
  line-height: 3rem;
  padding: 0 3rem 0 1rem;
  cursor: pointer;
  background: #fff;
  color: #004985;
}

.dropdown-el input:checked + label {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: transparent;
  color: #fff;
  border-radius: 1rem;
  z-index: 7;
}

/* Expanded */
.dropdown-el.expanded {
  z-index: 100;
}

.dropdown-el.expanded label {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  border-left: 0.1rem solid #004985;
  border-right: 0.1rem solid #004985;
  z-index: 5;
}
.dropdown-el.expanded label:first-child {
  border-top: 0.1rem solid #004985;
  border-radius: 0.4rem 0.4rem 0 0;
}
.dropdown-el.expanded label:last-child {
  border-bottom: 0.1rem solid #004985;
  border-radius: 0 0 0.4rem 0.4rem;
}

/* Hover im Menü */
.dropdown-el.expanded label:hover {
  background: #f5f8fc;
}

/* Erste Option im Menü (z.B. Bitte wählen) lesbarer machen */
.dropdown-el.expanded label:first-of-type {
  color: #333;
}

select.dropdown {
  width: 100%;
  min-width: 15ch;
  max-width: 30ch;
  border: 1px solid var(--select-border);
  border-radius: 0.25em;
  padding: 0.25em 0.5em;
  font-size: 1.25rem;
  cursor: pointer;
  line-height: 1.1;
  background-color: #fff;
  background-image: linear-gradient(to top, #f9f9f9, #fff 33%);
  border: 2px solid #004884;
}

div.selectWrapper {
  margin-bottom: 1rem;
}

div.selectWrapper label {
  display: inline-block;
  font-weight: 600;
  padding-bottom: 0.5rem;
}

a.glightbox2 img {
  max-width: 250px;
  height: auto;
}

.terminWrapper {
  margin-bottom: 1rem;
}

/* Termin Arten */
/* Termin */
.termin_art_1 {
  border-left: 10px solid #940078;
}
/* Praktikum */
.termin_art_2 {
  border-left: 10px solid #009933;
}
/* Online Meeting */
.termin_art_3 {
  border-left: 10px solid #de8400;
}
/* Masterarbeit */
.termin_art_4 {
  border-left: 10px solid #c6052e;
}
/* Klausur */
.termin_art_5 {
  border-left: 10px solid #ed0400;
}
/* Lerninhalte */
.termin_art_6 {
  border-left: 10px solid #007dfa;
}

/* Video on Demand */
.termin_art_10 {
  border-left: 10px solid #20a8be;
}

/* Termin */
.termin_schrift_1 {
  color: #940078;
}
/* Praktikum */
.termin_schrift_2 {
  color: #009933;
}
/* Online Meeting */
.termin_schrift_3 {
  color: #de8400;
}
/* Masterarbeit */
.termin_schrift_4 {
  color: #c6052e;
}
/* Klausur */
.termin_schrift_5 {
  color: #ed0400;
}
/* Lerninhalte */
.termin_schrift_6 {
  color: #007dfa;
}

label {
  display: inline-block;
  font-weight: 600;
  margin-top: 1rem;
}

.error {
  color: #a83232;
}

.success {
  color: #1c5402;
}

label.custom-file-upload {
  border: 1px solid #ccc;
  display: inline-block;
  padding: 6px 12px;
  cursor: pointer;
}

input[type='file'].custom-file-upload {
  display: none;
}

.newsWrapper {
  background-color: #2e4e7f;
  display: flex;
  padding: 12px;
}

.newsWrapper ~ .newsWrapper {
  margin-top: 1rem;
}

.newsContent {
  color: #fff;
  flex: 75%;
  padding-right: 1.5rem;
}

.newsContent a {
  color: #fff;
}

.newsContent .newsDescription {
  padding: 1rem 0;
}

.newsContent .newsHeader {
  font-weight: bold;
  font-size: 1.2rem;
}

.newsImage {
  flex: 25%;
}
@media screen and (max-width: 700px) {
  .newsWrapper {
    flex-direction: column;
  }
  .newsContent {
    padding-bottom: 2rem;
  }
  .newsImage {
    max-width: 80%;
  }
}

table.tableArtikel caption,
table.tableSuchergebnisse caption {
  font-size: 28px;
  font-weight: bold;
  color: #2e4e7f;
  margin-bottom: 20px;
}

table.tableSuchergebnisse thead th {
  padding: 0px 10px;
}

table.tableSuchergebnisse td {
  padding: 0px 10px;
}

table.tableSuchergebnisse tr:nth-child(2n + 1) td {
  background-color: #e4f0ff;
}

table.tableSuchergebnisse tr:nth-child(2n) td {
  background-color: #acc6e9;
}

table.tableSuchergebnisse td.iconCentered,
table.tableLiteraturAusgabe td.iconCentered {
  text-align: center !important;
}

table.tableSuchergebnisse td:first-child,
table.tableSuchergebnisse thead th:first-child {
  text-align: center !important;
}

.contentWrapper #masterarbeitenSucheNavigation select {
  width: auto;
}

#masterarbeitenSucheNavigation #buttonSuche {
  margin: 10px 0px;
}

#divSuchbegriffe .maSucheTextfeld {
  margin: 0px 10px;
}

#masterarbeitenSucheNavigation label.control-checkbox {
  font-weight: normal;
}

#masterarbeitenSucheWrapper {
}

#printCopyright {
  display: none;
}
.required {
  color: #a00c;
}

/**
  Cookie Consent Banner
**/
.cookie-consent-container .consent-modal {
  max-width: 80% !important;
}

.frame-type-mindshapecookieconsent_consent {
  position: fixed;
  left: 0;
  bottom: 1rem;
  opacity: 0.3;
  scale: 0.75;
  height: 30px;
}

@media (min-width: 900px) {
  .cookie-consent-container .consent-modal {
    height: 35vh !important;
    max-height: calc(100vh - 100px);
    width: 40vw !important;
    padding: 2rem !important;
  }
}
.tinyText {
  color: grey;
  font-size: 0.8rem;
}

html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    animation: none !important;
    transition: none !important;
  }
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font-family: 'Inter', system-ui, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3 {
  font-family: 'Ubuntu', 'Inter', sans-serif;
  color: var(--heading);
  margin: 0;
  letter-spacing: -0.01em;
}
a {
  color: inherit;
  text-decoration: none;
}
.eyebrow {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-dark);
  font-weight: 500;
}
.typo3-content.wrap {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 28px;
}
img {
  max-width: 100%;
  display: block;
}
:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

/* ---------- Header ---------- */
header.site {
  background: var(--ink);
  color: #fff;
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 24px;
  padding: 14px 0;
}
.logo {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  flex: 1 1 auto;
  max-width: 660px;
  min-width: 140px;
}
.logo img {
  width: 100%;
  height: auto;
  display: block;
}

/* Ausklappbare Navigation — immer über den Burger-Button, unabhängig von der Bildschirmbreite */
nav.main {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--ink-2);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    max-height 0.35s ease,
    opacity 0.25s ease;
}
nav.main.open {
  max-height: 480px;
  opacity: 1;
  box-shadow: 0 16px 28px rgba(0, 10, 20, 0.3);
}
nav.main a {
  padding: 15px 28px;
  font-size: 0.94rem;
  font-weight: 500;
  opacity: 0.9;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
nav.main a:hover {
  opacity: 1;
  color: var(--accent-gold);
  background: rgba(255, 255, 255, 0.04);
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

/* Sprach-Schieberegler DE/EN */
.lang-switch {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 82px;
  height: 34px;
  padding: 3px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
}
.lang-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: calc(50% - 3px);
  height: calc(100% - 6px);
  background: var(--accent-gold);
  border-radius: 999px;
  transition: transform 0.25s ease;
}
.lang-switch.is-en .lang-thumb {
  transform: translateX(100%);
}
.lang-option {
  position: relative;
  z-index: 1;
  background: none;
  border: none;
  cursor: pointer;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.8);
}
.lang-switch:not(.is-en) .lang-option[data-lang='de'] {
  color: var(--ink);
}
.lang-switch.is-en .lang-option[data-lang='en'] {
  color: var(--ink);
}

.btn-login {
  background: none;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 9px 24px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.86rem;
  letter-spacing: 0.01em;
}
.btn-login:hover {
  border-color: var(--accent-gold);
  color: var(--accent-gold);
}

/* Burger-Button — jetzt dauerhaft sichtbar statt nur mobil */
.nav-toggle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: none;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 4px;
}
.nav-toggle .burger {
  position: relative;
  width: 19px;
  height: 2px;
  background: #fff;
}
.nav-toggle .burger::before,
.nav-toggle .burger::after {
  content: '';
  position: absolute;
  left: 0;
  width: 19px;
  height: 2px;
  background: #fff;
  transition:
    transform 0.25s ease,
    opacity 0.2s ease;
}
.nav-toggle .burger::before {
  top: -6px;
}
.nav-toggle .burger::after {
  top: 6px;
}
.nav-toggle:hover {
  border-color: var(--accent-gold);
}
.nav-toggle.active .burger {
  background: transparent;
}
.nav-toggle.active .burger::before {
  transform: translateY(6px) rotate(45deg);
}
.nav-toggle.active .burger::after {
  transform: translateY(-6px) rotate(-45deg);
}

/* ---------- Hero ---------- */
.hero {
  background: linear-gradient(
    160deg,
    var(--ink) 0%,
    var(--ink-2) 62%,
    #1e4a5f 100%
  );
  color: #fff;
  padding: 64px 0 56px;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 56px;
  align-items: center;
}
.hero .eyebrow {
  color: var(--accent-gold);
}
.hero h1 {
  color: #fff;
  font-size: 2.6rem;
  line-height: 1.14;
  margin: 14px 0 18px;
  font-weight: 700;
}
.hero p.lead {
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.08rem;
  max-width: 52ch;
  margin-bottom: 28px;
}
.hero-cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 22px;
  border-radius: var(--radius);
  font-weight: 600;
  font-size: 0.94rem;
  cursor: pointer;
  border: 1px solid transparent;
}
.btn-primary {
  background: var(--gold);
  color: #fff;
}
.btn-primary:hover {
  background: var(--gold-dark);
}
.btn-ghost {
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}
.btn-ghost:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.06);
}

/* Hero-Bildbereich: Slider mit Impressionen + darüberliegende, leicht überlappende Mitteilungs-Karte */
.hero-visual {
  position: relative;
}
.hero-slider {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 18px 34px rgba(0, 20, 40, 0.35);
}
.slider-track {
  display: flex;
  height: 100%;
  transition: transform 0.6s cubic-bezier(0.65, 0, 0.35, 1);
}
.slide {
  min-width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: linear-gradient(150deg, #0b5aa0 0%, var(--ink-2) 78%);
}
.slide:nth-child(2) {
  background: linear-gradient(150deg, #0e4e8c 0%, var(--ink) 78%);
}
.slide:nth-child(3) {
  background: linear-gradient(150deg, #12639c 0%, var(--ink-2) 78%);
}
.slide:nth-child(4) {
  background: linear-gradient(150deg, #0a4680 0%, var(--ink) 78%);
}
.slide svg {
  width: 62%;
  height: auto;
}
.slide-caption {
  position: absolute;
  left: 14px;
  top: 14px;
  max-width: 64%;
  font-family: 'Inter', sans-serif;
  font-size: 0.74rem;
  font-weight: 500;
  color: #fff;
  background: rgba(0, 20, 40, 0.45);
  backdrop-filter: blur(3px);
  padding: 6px 10px;
  border-radius: 2px;
}
.slider-arrow {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  z-index: 3;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: rgba(0, 20, 40, 0.35);
  color: #fff;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.slider-arrow:hover {
  background: rgba(0, 20, 40, 0.6);
  border-color: var(--accent-gold);
}
.slider-arrow.prev {
  left: 12px;
}
.slider-arrow.next {
  right: 12px;
}
.slider-dots {
  position: absolute;
  top: 16px;
  right: 14px;
  z-index: 3;
  display: flex;
  gap: 7px;
}
.slider-dots .dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.25);
  cursor: pointer;
}
.slider-dots .dot.active {
  background: var(--accent-gold);
  border-color: var(--accent-gold);
}

/* Hero side panel: the single, clear "Aktuell" tile instead of a wall of text */
.hero-feature {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius);
  padding: 24px;
  backdrop-filter: blur(6px);
  margin: -52px 18px 0;
  position: relative;
  box-shadow: 0 14px 30px rgba(0, 20, 40, 0.4);
}
.hero-feature .tag {
  display: inline-block;
  background: var(--accent-gold);
  color: var(--ink);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: 2px;
  margin-bottom: 14px;
}
.hero-feature h3 {
  color: #fff;
  font-size: 1.18rem;
  line-height: 1.3;
  margin-bottom: 10px;
}
.hero-feature p {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.88rem;
  margin-bottom: 16px;
}
.hero-feature a.more {
  color: var(--line);
  font-weight: 600;
  font-size: 0.88rem;
}
.hero-feature a.more:hover {
  text-decoration: underline;
}

/* ---------- Section shell ---------- */
section {
  padding: 24px 0;
}
.section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.section-head h2 {
  font-size: 1.9rem;
}
.section-head .see-all {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
}

/* ---------- News board (signature element) ---------- */
.news {
  background: var(--paper);
}
.board {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.pin-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent-gold);
  border-radius: var(--radius);
  padding: 22px 20px 20px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 230px;
}
.pin-card::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 20px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--accent-gold);
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.25);
}
.pin-card.is-doc::before {
  background: var(--teal);
}
.pin-card.is-doc {
  border-top-color: var(--teal);
}
.pin-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.badge {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-gold-dark);
}
.badge.doc {
  color: var(--teal);
}
.pin-date {
  font-size: 0.76rem;
  color: var(--text-soft);
  font-family: 'IBM Plex Mono', monospace;
}
.pin-card h3 {
  font-size: 1.06rem;
  line-height: 1.32;
  color: var(--ink);
}
.pin-card p {
  font-size: 0.87rem;
  color: var(--text-soft);
  flex-grow: 1;
}
.pin-card a.more {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  align-self: flex-start;
  border-bottom: 1px solid var(--gold);
}
.pin-card a.more:hover {
  color: var(--gold-dark);
}

/* ---------- Stats ---------- */
.stats {
  background: var(--ink);
  color: #fff;
  padding: 60px 0 64px;
}
.stats-head {
  text-align: center;
  max-width: 520px;
  margin: 0 auto 40px;
}
.stats-head .eyebrow {
  color: var(--accent-gold);
}
.stats-head h2 {
  color: #fff;
  font-size: 1.9rem;
  margin-top: 10px;
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 24px;
  text-align: center;
}
.stat b {
  font-family: 'Ubuntu', sans-serif;
  display: block;
  font-size: 2.2rem;
  color: var(--accent-gold);
  font-weight: 700;
}
.stat span {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.4;
  display: block;
  margin-top: 4px;
}

/* ---------- Studiengänge ---------- */
.programs-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
.program-card {
  position: relative;
  overflow: hidden;
  color: #fff;
  border-radius: var(--radius);
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 190px;
  background-size: cover;
  background-position: center;
  box-shadow: 0 6px 16px rgba(0, 20, 40, 0.18);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
  /* Platzhalter: Verlauf in Markenblau + dezentes Themen-Icon.
       Ersetzen Sie pro Karte unten (.pc-implant, .pc-perio, ...) EINE Zeile:
       background: linear-gradient(160deg, rgba(0,66,121,.85), rgba(11,90,160,.7)), url('ihr-foto.jpg') center/cover no-repeat;
       (Bild und Überzug in derselben "background"-Zeile, kommagetrennt — sonst löscht die
       Kurzschreibweise das Bild wieder, wie beim letzten Mal.) */
}
.program-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0, 20, 40, 0.25);
}
.program-card .program-icon {
  position: absolute;
  right: 10px;
  bottom: 8px;
  width: 64px;
  height: 64px;
  opacity: 0.22;
  z-index: 0;
}
.program-card > *:not(.program-icon) {
  position: relative;
  z-index: 1;
}
.program-card:hover .program-num,
.program-card:hover h3 {
  color: var(--accent-gold);
}

.pc-implant {
  background:
    linear-gradient(160deg, rgba(0, 66, 121, 0.85), rgba(11, 90, 160, 0.7)),
    url('imc-implantoloy-kachel-bg.webp') center/cover no-repeat;
}
.pc-perio {
  background:
    linear-gradient(160deg, rgba(0, 66, 121, 0.85), rgba(11, 90, 160, 0.7)),
    url('imc-paro-kachel-bg.webp') center/cover no-repeat;
}
.pc-aesthetic {
  background:
    linear-gradient(160deg, rgba(0, 66, 121, 0.85), rgba(11, 90, 160, 0.7)),
    url('imc-aest-kachel-bg.webp') center/cover no-repeat;
}
.pc-ortho {
  background:
    linear-gradient(160deg, rgba(0, 66, 121, 0.85), rgba(11, 90, 160, 0.7)),
    url('imc-spec-orth-kachel-bg.webp') center/cover no-repeat;
}
.pc-general {
  background:
    linear-gradient(160deg, rgba(0, 66, 121, 0.85), rgba(11, 90, 160, 0.7)),
    url('imc-dentistry-kachel-bg.webp') center/cover no-repeat;
}

.program-num {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.75rem;
  color: var(--line);
  font-weight: 600;
}
.program-card h3 {
  font-size: 1rem;
  line-height: 1.35;
  color: #fff;
}
.program-card a.more {
  margin-top: auto;
  font-size: 0.83rem;
  font-weight: 600;
  color: #fff;
  border-bottom: 1px solid var(--accent-gold);
  align-self: flex-start;
}

.finder {
  margin-top: 32px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  box-shadow: 0 18px 34px rgba(0, 20, 40, 0.3);
}
.finder h3 {
  font-size: 1.15rem;
  margin-bottom: 4px;
}
.finder p {
  font-size: 0.9rem;
  color: var(--text-soft);
  margin: 0;
}
select.finder-select {
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-family: 'Inter', sans-serif;
  font-size: 0.9rem;
  min-width: 280px;
  background: #fff;
  color: var(--text);
}
.finder-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* ---------- Fortbildungen strip ---------- */
.cont-ed {
  background: #edf1f8;
}
.cont-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.cont-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
}
.cont-card .eyebrow {
  color: var(--teal);
}
.cont-card h3 {
  font-size: 1.08rem;
  margin: 8px 0 8px;
}
.cont-card p {
  font-size: 0.88rem;
  color: var(--text-soft);
}

/* ---------- Partners ---------- */
.partners {
  padding: 48px 0;
  border-top: 1px solid var(--line);
}
.partners-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-soft);
  display: block;
  margin-bottom: 22px;
}

.partner-primary {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  padding: 16px 20px;
  margin-bottom: 28px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 3px solid var(--ink);
  border-radius: var(--radius);
}
.partner-primary-tag {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gold-dark);
}
.partner-primary-name {
  font-family: 'Ubuntu', sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--ink);
}

.partner-tier {
  margin-bottom: 22px;
}
.partner-tier:last-child {
  margin-bottom: 0;
}
.partner-tier-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-soft);
  margin-bottom: 12px;
}
.partner-logos {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.partner-logos .plogo {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  height: 64px;
  padding: 8px 16px;
  box-sizing: border-box;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
.partner-logos .plogo img {
  max-height: 100%;
  max-width: 150px;
  width: auto;
  height: auto;
  display: block;
}
.partner-logos .plogo:hover {
  border-color: var(--accent-gold);
  box-shadow: 0 6px 14px rgba(0, 20, 40, 0.14);
}
.partner-logos--sm {
  gap: 10px;
}
.plogo--sm {
  height: 48px;
  padding: 6px 12px;
}
.plogo--sm img {
  max-width: 118px;
}

/* ---------- Footer ---------- */
footer {
  background: var(--ink);
  color: rgba(255, 255, 255, 0.85);
  padding: 52px 0 24px;
  font-size: 0.88rem !important;
}

footer .wrap {
  max-width: var(--maxw);
  margin: 0 auto;
}

footer p {
  font-size: 0.88rem;
}
footer a {
  font-size: 0.88rem !important;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
footer h4 {
  color: #fff !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-family: 'IBM Plex Mono', monospace !important;
  margin-bottom: 14px !important;
  font-weight: 500 !important;
}
footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
footer a:hover {
  color: var(--gold);
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  padding-top: 20px;
  font-size: 0.78rem !important;
  color: rgba(255, 255, 255, 0.55);
  flex-wrap: wrap;
  gap: 10px;
}

.social-links {
  display: flex;
  gap: 10px;
}

.social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  transition:
    border-color 0.2s ease,
    color 0.2s ease;
}

.social-icon svg {
  width: 16px;
  height: 16px;
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }
  .board {
    grid-template-columns: repeat(2, 1fr);
  }
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
  .programs-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .cont-grid {
    grid-template-columns: 1fr;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .hero h1 {
    font-size: 2.1rem;
  }
}
@media (max-width: 560px) {
  .board {
    grid-template-columns: 1fr;
  }
  .programs-grid {
    grid-template-columns: 1fr;
  }
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .finder {
    flex-direction: column;
    align-items: flex-start;
  }
  .section-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .stats-grid {
    grid-template-columns: 1fr;
    gap: 26px;
  }
}

#themeToggle {
  display: none;
}
