/* =============================================================================
   Tables
   ========================================================================== */

table.ce-table td {
  border: 2px solid rgb(var(--c-neutral-lightest));
  background: rgb(var(--c-neutral-lighter));
  padding: 0.3rem 0.7rem;
}

.content .frame-bg-grey table.ce-table td {
  border: 2px solid rgb(var(--c-neutral-lighter));
  background: rgb(var(--c-neutral-lightest));
}

table.ce-table th,
table.ce-table caption {
  color: rgb(var(--c-neutral-lightest));
  background: rgb(var(--c-primary));
  border: 2px solid rgb(var(--c-neutral-lightest));
  padding: 0.3rem 0.7rem;
  font-weight: var(--f-weight-sb);
}

.content .frame-bg-grey table.ce-table th,
.content .frame-bg-grey table.ce-table caption {
  border: 2px solid rgb(var(--c-neutral-lighter));
}

.ios-scrollbar {
  padding-bottom: 20px;
  position: relative;
}

.ios-scrollbar::after {
  content: '\f178';
  font-family: 'FaLight', sans-serif;
  font-size: 15px;
  line-height: 100%;
  position: absolute;
  right: 0;
  bottom: 0;
}

/* =============================================================================
   Standard contentelements
   ========================================================================== */

/* Uploads */
.uploads__item {
  background-color: rgb(var(--c-neutral-lighter));
  padding: 1.5rem 4rem 1.5rem 2rem;
}

.uploads__item.-withimage {
  grid-gap: var(--g-gap-s);
}

.content .frame-bg-grey .uploads__item {
  background-color: rgb(var(--c-neutral-lightest));
}

.uploads__link {
  color: rgb(var(--c-neutral-darker));
}

.uploads__title {
  color: rgb(var(--c-neutral-darker));
  font-size: var(--f-size-l-1);
  font-family: var(--f-family-h);
}

.uploads__arrowpath {
  stroke: rgb(var(--c-primary));
}

@media (hover: hover) {
  .content .frame-bg-grey .uploads__item:hover,
  .uploads__item:hover {
    background-color: rgb(var(--c-primary));
  }

  .uploads__item:hover,
  .uploads__item:hover .uploads__description,
  .uploads__item:hover .uploads__title {
    color: rgb(var(--c-neutral-lightest));
  }

  .uploads__item:hover .uploads__arrowpath {
    stroke: rgb(var(--c-neutral-lightest));
  }
}

/* Images */
.-border img,
.-border iframe {
  border: 1px solid rgb(var(--c-neutral-light));
}

.gallery__item a[data-fancybox]::before,
.media__image a::before {
  background-color: rgba(var(--c-primary), 0.6);
}

.gallery__item > a[rel="noreferrer"]::after {
  color: rgb(var(--c-neutral-darker));
  background: rgba(var(--c-neutral-light));
}

/* Menus */
.frame-type-menu_pages li a,
.frame-type-menu_sitemap li a {
  color: rgb(var(--c-neutral-darker));
}

.frame-type-menu_pages li {
  &:not(:last-child) {
    margin-bottom: 0.4rem;
  }

  & a {
    display: grid;
    grid-template-columns: 22px 1fr;
    grid-gap: 0.8rem;
  }

  & .menu__icon {
    font-family: 'FaSharpLight';
    font-size: 17px;
    justify-self: center;
  }
}

/* Paginator */
ul.f3-widget-paginator {
  padding: 0;
  display: flex;
  flex-wrap: wrap;
}

ul.f3-widget-paginator li {
  list-style-type: none;
  width: 40px;
  height: 40px;
  margin: 0 5px 5px 0;
  background: rgb(var(--c-neutral-lighter));
  display: flex;
  justify-content: center;
  align-items: center;
}

ul.f3-widget-paginator a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
}

ul.f3-widget-paginator li.current {
  background: rgb(var(--c-primary));
  color: rgb(var(--c-neutral-lightest));
}

ul.f3-widget-paginator li.current a {
  color: rgb(var(--c-neutral-lightest));
}

@media (hover: hover) {
  ul.f3-widget-paginator li:hover {
    background: rgb(var(--c-primary));
    color: rgb(var(--c-neutral-lightest));
  }

  ul.f3-widget-paginator li:hover a {
    color: rgb(var(--c-neutral-lightest));
  }
}

ul.f3-widget-paginator li.previous a::after {
  content: '\f053';
  font-family: 'FaLight', sans-serif;;
  font-weight: normal;
  font-style: normal;
  text-decoration: inherit;
  -webkit-font-smoothing: antialiased;
  height: auto;
  line-height: normal;
  vertical-align: baseline;
  font-size: var(--f-size);
}

ul.f3-widget-paginator li.next a::after {
  content: '\f054';
  font-family: 'FaLight', sans-serif;
  font-weight: normal;
  font-style: normal;
  text-decoration: inherit;
  -webkit-font-smoothing: antialiased;
  height: auto;
  line-height: normal;
  vertical-align: baseline;
  font-size: var(--f-size);
}

/* =============================================================================
   Layout and frame classes
   ========================================================================== */

.frame-space-after-no-space {
  padding-bottom: 0 !important;
}

.frame-space-before-no-space {
  padding-top: 0 !important;
}

.frame-layout-10:not(.frame-type-table) > form,
.frame-layout-10:not(.frame-type-table) > p,
.frame-layout-10:not(.frame-type-table) > div,
.frame-layout-10:not(.frame-type-table) > ul,
.frame-layout-10:not(.frame-type-table) > figure {
  max-width: 780px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.frame-bg-image {
  overflow: hidden;
  background: rgba(var(--c-neutral-darkest), .7) !important;
  position: relative;
  color: rgb(var(--c-neutral-lightest));
}

.frame-bg-image h1,
.frame-bg-image h2,
.frame-bg-image h3,
.frame-bg-image a {
  color: rgb(var(--c-neutral-lightest));
}

.bg-image {
  width: 100%;
  height: 100%;
  z-index: -1;
  position: absolute;
  top: 0;
  left: 0;
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
  -webkit-background-size: cover;
  background-attachment: scroll;
  grid-column: span 5 !important;
}

.page .content > .frame-bg-grey + .frame-layout-20 {
  background: transparent;
  padding: 0;
}

.page .frame.frame-layout-20 {
  background: rgb(var(--c-neutral-lighter));
  padding: 0;
  display: block;

  &:not(:last-child) {
    margin-bottom: var(--p);
  }

  & > .grid__12 {
    display: grid;
    grid-template-columns: 4% 1fr 4%;
    grid-gap: 0;

    & > .grid__col:first-child {
      padding: var(--p) 0;
      grid-column: 2;
    }

    & > .grid__col:last-child {
      grid-column: span 3;

      & .gallery__item {
        aspect-ratio: 1 / 1;

        & img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          -webkit-backface-visibility: hidden;
        }
      }
    }
  }
}

/* =============================================================================
   Template
   ========================================================================== */

/* Content */
.content > .frame,
.content__top,
.content__bottom > .frame,
.footer {
  padding-bottom: var(--p);
  background: rgb(var(--c-neutral-lightest));
}

.content > .frame:first-child,
.content__top,
.content__bottom > .frame:first-child,
.content > .frame-bg-grey + .frame,
.content > .frame-bg-image,
.content > .frame-bg-image + .frame,
.footer {
  padding-top: var(--p);
}

.content .frame-bg-grey {
  padding: 2.2rem;
  background: rgb(var(--c-neutral-lighter));
}

.frame-border-primary {
  padding: 2.2rem;
  border: 2px solid rgb(var(--c-primary));
}

.content > .frame-bg-grey {
  padding: var(--p) 0;
}

/* Footer */
.footer {
  background: rgb(var(--c-neutral-darker));
  color: rgb(var(--c-neutral-lightest));
  font-size: var(--f-size-s-1);

  & h3,
  & h4,
  & button,
  & a,
  & .frame-type-menu_pages li a {
    color: rgb(var(--c-neutral-lightest));
  }

  & .gallery__item > a[rel="noreferrer"]::after {
    top: auto;
    bottom: 0;
    background: transparent;
  }
}

/* =============================================================================
   Menus
   ========================================================================== */

/* Leftmenu */
.leftmenu__link {
  color: rgb(var(--c-neutral-darker));
}

.leftmenu__link.-active {
  color: rgb(var(--c-primary));
}

@media (hover: hover) {
  .leftmenu__link:hover {
    color: rgb(var(--c-primary));
  }
}

.leftmenu__list.-level1 > .leftmenu__item {
  border-bottom: 1px solid rgb(var(--c-neutral-light));
}

/* Metanav */
.metanav {
  background: rgb(var(--c-neutral-darker));
  color: rgb(var(--c-neutral-lightest));
  padding: 1.5rem 0;
  border-top: 1px solid rgb(var(--c-neutral-dark));
  font-size: var(--f-size-s-2);

  & .anydesk {
    height: 16px;
  }
}

.metanav__link {
  color: rgb(var(--c-neutral-lightest));
}

@media (hover: hover) {
  .metanav__link:hover {
    color: rgb(var(--c-primary));
  }
}

.metanav__wrap {
  display: grid;
  grid-gap: var(--g-gap-s);
}

/* =============================================================================
   Media Queries
   ========================================================================== */
@media (min-width: 500px) {
  .footer {
    & .grid__col.-w50 {
      grid-column: span 12;

      & .grid__col.-w50 {
        grid-column: span 6;
      }
    }
  }
}

@media (min-width: 640px) {
  /* Menus */
  .metanav__wrap {
    grid-template-columns: repeat(2, 1fr);
  }

  .metanav__nav {
    justify-self: end;
  }
}

@media (min-width: 800px) {
  .footer {
    & .grid__col.-w50 {
      grid-column: span 6;
    }
  }

  /* Layout */
  .page .frame.frame-layout-20 {
    & > .grid__12 {
      grid-template-columns: 4% 1fr 1fr 4%;
      min-height: 50vw;

      & > .grid__col:first-child {
        padding-right: var(--p);
      }

      & > .grid__col:last-child {
        grid-column: span 2;
        position: relative;

        & .frame-type-image {
          position: absolute;
          top: 0;
          left: 0;
        }

        & .frame-type-image,
        & .image,
        & .gallery {
          width: 100%;
          height: 100%;
        }

        & .gallery__item {
          aspect-ratio: auto;
        }
      }
    }
  }
}

@media (min-width: 1280px) {
  /* Frames */
  .bg-image {
    background-attachment: fixed;
  }
}

@media (min-width: 1410px) {
  /* Layout */
  .page .frame.frame-layout-20 {
    & > .grid__12 {
      min-height: 500px;
      grid-template-columns: 1fr 600px 600px 1fr;
    }
  }

  .grid__col.-w100 > .frame-bg-grey {
    padding: 4rem 130px;
  }

  .accordion__content .grid__col.-w100 > .frame-bg-grey {
    padding: 4rem calc(130px - 1.6rem);
  }
}