@font-face {
  font-family: "HindMadurai-Light";

  src: url("font/HindMadurai-Light.woff") format("woff"),
    /* Modern Browsers */ url("font/HindMadurai-Light.ttf") format("truetype");
  font-style: normal;
  font-weight: normal;
  text-rendering: optimizeLegibility;
}
@font-face {
  font-family: "HindMadurai-Regular";

  src: url("font/HindMadurai-Regular.woff") format("woff"),
    /* Modern Browsers */ url("font/HindMadurai-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: normal;
  text-rendering: optimizeLegibility;
}
@font-face {
  font-family: "HindMadurai-Medium";

  src: url("font/HindMadurai-Medium.woff") format("woff"),
    /* Modern Browsers */ url("font/HindMadurai-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: normal;
  text-rendering: optimizeLegibility;
}
@font-face {
  font-family: "HindMadurai-Bold";

  src: url("font/HindMadurai-Bold.woff") format("woff"),
    /* Modern Browsers */ url("font/HindMadurai-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: normal;
  text-rendering: optimizeLegibility;
}
/* END Fonts */

html {
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: var(--grau) var(--schreib);
}
:root {
  --dunkel: #39454e;
  --schreib: #777;
  --rot: #a41712;
  --grau: #f8f7f6;
}
body {
  font-family: "HindMadurai-Regular", sans-serif;
  font-weight: normal;
  font-style: normal;
  color: var(--schreib);
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--grau);
  font-size: 1.1em;
}
body::-webkit-scrollbar {
  width: 7px;
}
body::-webkit-scrollbar-track {
  background: var(--grau);
}
/* scrollbar*/
body::-webkit-scrollbar-thumb {
  background-color: var(--schreib);
  border-radius: 6px;
  /*  border: 1.5px solid var(--scrollbarBG);*/
}
* {
  box-sizing: border-box;
}
/*view-transition start*/
@view-transition {
  navigation: auto;
}

/* Customize the default animation behavior */

::view-transition-group(root) {
  animation-duration: 0.8s;
}

/* Create a custom animation */
/*
@keyframes move-out {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(-100%);
  }
}

@keyframes move-in {
  from {
    transform: translateX(100%);
  }

  to {
    transform: translateX(0%);
  }
}

/* Apply the custom animation to the old and new page states */
/*
::view-transition-old(root) {
  animation: 0.4s ease-in both move-out;
}

::view-transition-new(root) {
  animation: 0.4s ease-in both move-in;
}
/*fade*/
@keyframes fade-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* Apply the custom animation to the old and new page states */

::view-transition-old(root) {
  animation: 0.4s ease-in both fade-out;
}

::view-transition-new(root) {
  animation: 0.4s ease-in both fade-in;
}
/* viewtransition ende*/

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}
h3 {
  color: var(--dunkel);
  font-size: 23px;
  & span {
    color: var(--schreib);
  }
}
p {
  line-height: 1.3;
  hyphens: auto;
  hyphenate-limit-chars: 4;
  & a {
    text-decoration: underline;
  }
}
li {
  list-style: none;
  hyphens: auto;
  hyphenate-limit-chars: 4;
}
a {
  text-decoration: none;
  color: var(--schreib);
}
img {
  width: 100%;
  height: auto;
}
.max_content {
  width: max-content;
}
.dunkel {
  color: var(--dunkel);
}
.bold {
  font-weight: bold;
  color: var(--dunkel);
}
.klein {
  font-size: 0.7em;
}
.light {
  font-weight: lighter;
}
.maNull {
  margin: 0;
}
.maBottomNull {
  margin-bottom: 0;
}
.maTop30 {
  margin-top: 30px;
}
.col_25 {
  width: 24%;
  min-height: 1px;
  position: relative;
}
.col_33 {
  width: 33%;
  min-height: 1px;
  position: relative;
}
.col_40 {
  width: 40%;
  position: relative;
}
.col_50 {
  width: 50%;
  min-height: 1px;
  position: relative;
}
.col_60 {
  width: 60%;
  min-height: 1px;
  position: relative;
}
.col_66 {
  width: 65%;
  min-height: 1px;
  position: relative;
}
.col_75 {
  width: 75%;
  min-height: 1px;
  position: relative;
}
.col_80 {
  width: 80%;
  min-height: 1px;
  position: relative;
}
.col_90 {
  width: 90%;
  min-height: 1px;
  position: relative;
}
.col_100 {
  width: 100%;
  min-height: 1px;
  position: relative;
}
.flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.justify_around {
  justify-content: space-around;
}
.justify_center {
  justify-content: center;
}
.justify_end {
  justify-content: flex-end;
}
.justify_start {
  justify-content: flex-start;
}
.align_start {
  align-items: flex-start;
}
.align_end {
  align-items: flex-end;
}
.z2 {
  position: relative;
  z-index: 2;
}
.bg_weiss {
  background-color: #fff;
}
.bg_dunkel {
  background-color: var(--dunkel);
}

header {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  position: sticky;
  z-index: 4;
  top: -50px;
  height: 135px;
  background: #fff;
  box-shadow: 1px 1px 1px #d8d8d8;
  & nav {
    grid-column: 1/3;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    & .ham {
      width: 70px;
      height: 35px;
      flex-direction: column;
      transition: all 0.5s ease-in-out 0.2s;
      & span {
        display: block;
        width: 100%;
        height: 3px;
        border-radius: 1px;
        background-color: var(--dunkel);
      }
      .oben & {
        transform: translateY(25px);
      }
    }
    & .drop {
      position: absolute;
      top: 90%;
      left: 0;
      z-index: -1;
      background: rgba(255, 255, 255, 0.9);
      transition: all 0.8s;
      width: max-content;
      transform: translateX(-350px);
      opacity: 0;
      &.da {
        opacity: 1;
        transform: translateX(0);
      }
      & ul {
        display: flex;
        padding-left: 5.5vw;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        & li {
          padding: 10px 30px 5px 0;
          margin-left: 15px;
          & a {
            font-size: 1.1em;
            &.active {
              color: var(--rot);
            }
          }
        }
      }
    }
  }
  & .titel {
    grid-column: 3/11;
    text-align: center;
    & h1 {
      color: var(--dunkel);
      font-size: clamp(1.1rem, 2vw, 30px);
      transition: all 0.5s ease-in-out 0.2s;
      span {
        color: var(--schreib);
        font-size: 0.95em;
      }
      .oben & {
        font-size: 0.9em;
        transform: translateY(25px);
      }
    }
    & h2 {
      font-size: clamp(0.85rem, 1.3vw, 23px);
      transition: all 0.5s ease-in-out 0.2s;
      .oben & {
        font-size: 0.7em;
        transform: translateY(60px);
      }
    }
  }
  .kontakt {
    grid-column: 11/13;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    & div {
      text-align: center;
      & p,
      > a {
        margin: 0;
        font-size: 0.7em;
        color: var(--dunkel);
        & a {
          color: var(--dunkel);
          text-decoration: none;
        }
      }
      transition: all 0.5s ease-in-out 0.2s;
      .oben & {
        transform: translateY(40px);
      }
    }
  }
}

main {
  width: 100vw;
  overflow: hidden;
  & section {
    width: 100%;
    position: relative;
    &.slider {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      z-index: 2;
      & .links {
        grid-column: 1/2;
        background: var(--dunkel);
        height: 25vw;
      }
      & #card-slider {
        grid-column: 2/8;
        height: 25vw;
        & #card-slider-track {
          height: 100%;
          & div {
            height: 100%;
            & img {
              object-fit: cover;
              height: 100%;
            }
          }
        }
      }
      & .rechts {
        grid-column: 8/13;
        display: grid;
        grid-template-columns: repeat(12, 1fr);
        background: var(--rot);
        background-image: url(../images/icon/figuren-weiss.svg);
        background-repeat: no-repeat;
        background-position: right -38% top 0%;
        background-size: auto 100%;
        height: 25vw;
        color: #fff;
        & > div {
          grid-column: 1/8;
          & div {
            margin-top: 5vw;
            & p:first-of-type {
              font-family: "HindMadurai-Light";
              font-size: clamp(13px, 2vw, 30px);
              line-height: 1.8;
            }
            & p:last-of-type {
              font-size: 0.7em;
              text-align: center;
            }
          }
        }
      }
    }
    &.banner {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      & .links {
        grid-column: 1/2;
        background: var(--dunkel);
        height: 15vw;
      }
      & .mitte {
        grid-column: 2/8;
        & img {
          height: 15vw;
          object-fit: cover;
          object-position: top;
        }
      }
      & .rechts {
        grid-column: 8/13;
        display: grid;
        grid-template-columns: repeat(12, 1fr);
        background: var(--rot);
        background-image: url(../images/icon/figuren-weiss.svg);
        background-repeat: no-repeat;
        background-position: right -16% top 0%;
        background-size: auto 100%;
        height: 15vw;
        color: #fff;
        & div {
          grid-column: 1/8;
          & div {
            p:first-of-type {
              font-family: "HindMadurai-Light";
              font-size: clamp(18px, 2vw, 30px);
              line-height: 1.7;
            }
            & p:last-of-type {
              font-size: 0.7em;
              text-align: center;
            }
            & h2 {
              font-family: "HindMadurai-Light";
              font-size: clamp(25px, 2.5vw, 40px);
              line-height: 1.7;
            }
          }
        }
        & img {
          grid-column: 8/13;
          width: auto;
          height: 100%;
          transform: translate(23%);
        }
      }
    }
    &.headline {
      margin-top: 2.5vw;
      & .max_content {
        max-width: clamp(310px, 80vw, 1000px);
      }
      & p {
        font-size: clamp(17px, 1.5vw, 22px);
        color: var(--dunkel);
        margin-bottom: 40px;
      }
    }
    &.inhalt {
      &:last-of-type {
        margin-bottom: clamp(45px, 8vw, 100px);
      }
      & article {
        position: relative;
        margin-bottom: 10vw;
        & li {
          font-size: 1rem;
          line-height: 1.2;
          list-style-type: disc;
          margin-bottom: 8px;
        }
        & .col_80 {
          & .col_50 {
            /* transition: all 1s ease-in-out 0.5s; */
            & .text {
              padding: 30px;
              width: 90%;
              & h3 {
                line-height: 1;
              }
              & a {
                color: var(--dunkel);
                text-decoration: underline;
              }
              & p {
                margin-bottom: 0;
              }
              .re & {
                text-align: left;
              }
            }
            & .bild {
              width: 100%;
            }
            & img {
              object-fit: cover;
            }
            &:first-of-type {
              transform: translate(20px, 0);
              .re & {
                transform: translate(0);
              }
            }
            &:last-of-type {
              transform: translate(0, 5vw);
              .re & {
                transform: translate(-20px, 5vw);
              }
            }
            &.portrait {
              background: transparent;
              .col_80 {
                background: var(--dunkel);
                display: grid;
                grid-template-columns: repeat(12, 1fr);
                .links {
                  grid-column: 1/7;
                  padding-left: 5px;
                  p {
                    color: #fff;
                    font-size: 0.7em;
                    & span {
                      display: none;
                    }
                  }
                }
                .mitte {
                  grid-column: 7/11;
                }
                .rechts {
                  grid-column: 11/13;
                }
              }
            }
          }
          &.ani {
            .col_50 {
              &:first-of-type {
                transform: translate(-80vw, 0);
                .re & {
                  transform: translate(-80vw);
                }
              }
              &:last-of-type {
                transform: translate(80vw, 5vw);
                .re & {
                  transform: translate(80vw, 5vw);
                }
              }
            }
          }
          &.testen {
            .col_50 {
              transition: all 0.8s ease-in-out 0.5s;
              &:first-of-type {
                transform: translate(20px, 0);
                .re & {
                  transform: translate(0);
                }
              }
              &:last-of-type {
                transform: translate(0, 5vw);
                .re & {
                  transform: translate(-20px, 5vw);
                }
              }
            }
          }
        }
        & .texte {
          padding: 30px;
          font-size: 1rem;
          & h4 {
            color: var(--dunkel);
            margin-top: 16px;
            font-size: 0.95em;
          }
          & p {
            line-height: 1.5;
          }
          & details {
            & summary {
              cursor: pointer;
              position: relative;
              list-style: none;
              &::-webkit-details-marker {
                display: none;
              }
              &::before {
                content: "";
                width: 0;
                height: 0;
                border-top: 8px solid var(--schreib);
                border-inline: 6px solid transparent;
                transition: 0.2s;
                position: absolute;
                top: 10px;
                left: -20px;
                transform: rotate(-90deg);
              }
              [open] & {
                &::before {
                  transform: rotate(0deg);
                }
              }
            }
          }
        }
        &.tabs {
          background: #fff url(../images/icon/lupe-weiss4.svg);
          background-repeat: no-repeat;
          background-position: left 4vw center;
          background-size: auto 50%;
          & .faq {
            min-height: 10vh;
            background: #fff;
            font-size: 0.85em;
            width: clamp(310px, 70vw, 900px);
            & .tab {
              padding: 20px 0px 20px 0px;
              position: absolute;
              top: 0;
              left: 0;
              /* show/hide */
              opacity: 0;
              display: none;
              & p {
                margin: 0%;
              }
            }
            & [type="radio"] {
              display: none;
            }
            & .label_cont {
              padding-top: 30px;
              & label {
                cursor: pointer;
                position: relative;
                z-index: 2;
              }
              & span {
                position: relative;
                z-index: 2;
              }
            }

            & #tab_eins[type="radio"]:checked ~ .col_100 label[for="tab_eins"] {
              color: var(--rot);
            }
            #tab_zwei[type="radio"]:checked ~ .col_100 label[for="tab_zwei"] {
              color: var(--rot);
            }
            #tab_drei[type="radio"]:checked ~ .col_100 label[for="tab_drei"] {
              color: var(--rot);
            }
            #tab_vier[type="radio"]:checked ~ .col_100 label[for="tab_vier"] {
              color: var(--rot);
            }
            #tab_fuenf[type="radio"]:checked ~ .col_100 label[for="tab_fuenf"] {
              color: var(--rot);
            }
            #tab_eins[type="radio"]:checked ~ .tab1 {
              opacity: 1;
              display: block;
              position: relative;
            }
            #tab_zwei[type="radio"]:checked ~ .tab2 {
              opacity: 1;
              display: block;
              position: relative;
            }
            #tab_drei[type="radio"]:checked ~ .tab3 {
              opacity: 1;
              display: block;
              position: relative;
            }
            #tab_vier[type="radio"]:checked ~ .tab4 {
              opacity: 1;
              display: block;
              position: relative;
            }
            #tab_fuenf[type="radio"]:checked ~ .tab5 {
              opacity: 1;
              display: block;
              position: relative;
            }
          }
        }
        & .klappen {
          & .texte {
            & summary {
              font-size: 1.1em;
              color: var(--dunkel);
            }
          }
        }
        & .ziel {
          position: absolute;
          width: 20px;
          height: 20px;
          left: 0;
          top: -90px;
        }
        & .ohne {
          & h4 {
            color: var(--dunkel);
            margin-top: 10px;
          }
          & p {
            margin: 5px 0;
          }
        }
      }
      & .kontaktkasten {
        display: none;
        & .col_80 {
          display: grid;
          grid-template-columns: repeat(12, 1fr);
          & .k-daten {
            grid-column: 4/7;
            padding: 10px 60px 10px 10px;
            & h3 {
              font-size: 1.5vw;
            }
          }
          & .bg_dunkel {
            grid-column: 7/10;
            & p {
              padding: 0 0 0 20px;
              font-size: 0.8em;
              color: #fff;
            }
            & h4 {
              padding: 0 0 0 20px;
              font-size: 1.5vw;
              color: #fff;
            }
          }
        }
      }
    }
  }
}

.figuren {
  position: fixed;
  right: -5vw;
  bottom: 0;
  width: 20vw;
  & img {
    opacity: 0;
    transition: all 1s ease-in-out;
    &.sichtbar {
      opacity: 1;
    }
  }
}
.nachOben {
  position: fixed;
  bottom: 35px;
  right: 30px;
  width: 25px;
  height: 25px;
  transform: scale(0, 0);
  transition: transform 0.2s ease-out;
  cursor: pointer;
  &.hoch {
    transform: scale(1, 1);
  }
}
footer {
  background: #fff;
  display: flex;
  justify-content: center;
  border-bottom: 3px solid var(--rot);
  position: fixed;
  bottom: 0;
  width: 100%;
  z-index: 2;
  & div {
    & a {
      margin: 0 20px;
      font-size: 0.65em;
    }
  }
}
@media only screen and (max-width: 1440px) {
  main {
    & section {
      &.inhalt {
        & article {
          & .col_80 {
            & .col_50 {
              & .text {
                width: 100%;
              }
            }
          }
        }
      }
    }
  }
}
@media only screen and (max-width: 1300px) {
  main {
    & section {
      &.inhalt {
        & article {
          & .col_80 {
            width: 95%;
          }
        }
      }
    }
  }
}
@media only screen and (max-width: 1050px) {
  main {
    & section {
      &.inhalt {
        & article {
          & .col_80 {
            width: 100%;
          }
        }
      }
    }
  }
}
@media only screen and (max-width: 850px) {
  main {
    & section {
      &.inhalt {
        & article {
          & .col_80 {
            justify-content: center;
            & .col_50 {
              width: 90%;
              transform: translate(0) !important;
              & .bild {
                margin: 0 auto;
              }
            }
            .rev & {
              flex-direction: column-reverse;
            }
          }
        }
      }
    }
  }
}
@media only screen and (max-width: 720px) {
  main {
    & section {
      &.slider {
        & .rechts {
          & > div {
            & div {
              margin-top: 0;
            }
          }
        }
      }
      &.banner {
        & .links {
          height: 25vw;
        }
        & .mitte {
          & img {
            height: 25vw;
          }
        }
        & .rechts {
          height: 25vw;
          background-position: right -30% top 0%;
        }
      }
      &.inhalt {
        & .kontaktkasten {
          & .col_80 {
            & .k-daten {
              grid-column: 2/7;
            }
            & .bg_dunkel {
              grid-column: 7/12;
            }
          }
        }
      }
    }
  }
}
@media only screen and (max-width: 500px) {
  header {
    position: relative;
    top: 0;
    height: max-content;
    grid-template-rows: 80px 30px;
    & nav {
      grid-column: 1/4;
      & .ham {
        .oben & {
          transform: translateY(0);
        }
      }
    }
    & .titel {
      grid-row: 1;
      grid-column: 4/13;
      & h1 {
        .oben & {
          font-size: clamp(1.1rem, 2vw, 30px);
          transform: translateY(0);
        }
      }
      & h2 {
        font-size: clamp(0.9rem, 1.4vw, 23px);
        .oben & {
          font-size: clamp(0.9rem, 1.4vw, 23px);
          transform: translateY(0);
        }
      }
    }
    & .kontakt {
      grid-column: 4/13;
      & div {
        display: flex;
        gap: 20px;
        & > a {
          transform: translateY(-1.5px);
        }
        .oben & {
          transform: translateY(0);
        }
      }
    }
  }
  main {
    & section {
      &.slider {
        & .links {
          display: none;
        }
        & #card-slider {
          grid-column: 1/8;
          height: 35vw;
        }
        & .rechts {
          grid-column: 8/13;
          height: 35vw;
          background-position: right -16vw top 0%;
          & > div {
            justify-content: flex-start;
            grid-column: 1/-1;

            & div {
              margin-left: 2vw;
              & p:last-of-type {
                font-size: 0.5em;
              }
            }
          }
        }
      }
      &.banner {
        grid-template-rows: 35vw 25vw;
        & .links {
          display: none;
        }
        & .mitte {
          grid-column: 1/-1;
          & img {
            height: 100%;
          }
        }
        & .rechts {
          height: 15vw;
          grid-column: 1/-1;
          grid-row-start: 2;
          background-position: right -3vw top 0%;
          & div {
            grid-column: 1/-1;
          }
        }
      }
      &.inhalt {
        & article {
          & .col_80 {
            & .col_50 {
              & .text {
                text-align: left;
              }
              &.portrait {
                & .col_80 {
                  & .rechts {
                    & p {
                      & span {
                        display: inline;
                        & a {
                          color: #fff;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
          & .texte {
            padding: 30px 25px;
            & ul {
              padding-left: 20px;
            }
          }
        }
        & .kontaktkasten {
          display: none;
        }
      }
    }
  }
}
