/* =============================================================================
   Tables
   ========================================================================== */

table.ce-table {
  border-collapse: separate;
  border-spacing: 0 2px;
}

table.ce-table thead {
  border-spacing: 0 6px;
}

table.ce-table td {
  border: none;
  background: rgb(var(--c-neutral-lighter));
  padding: 1rem 2.2rem;
}

.content .frame-bg-grey table.ce-table td {
  border: none;
  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-bottom: 2px solid rgb(var(--c-neutral-lightest));
  padding: 0.8rem 2.2rem;
  font-weight: var(--f-weight-sb);
}

table.ce-table th:first-child,
table.ce-table caption:first-child {
  border-top-left-radius: var(--b-radius-s);
  border-bottom-left-radius: var(--b-radius-s);
}

table.ce-table tr:first-child td:first-child {
  border-top-left-radius: var(--b-radius-s);
}

table.ce-table tr:first-child td:last-child {
  border-top-right-radius: var(--b-radius-s);
}

table.ce-table tr:last-child td:first-child {
  border-bottom-left-radius: var(--b-radius-s);
}

table.ce-table tr:last-child td:last-child {
  border-bottom-right-radius: var(--b-radius-s);
}

table.ce-table th:last-child,
table.ce-table caption {
  border-top-right-radius: var(--b-radius-s);
  border-bottom-right-radius: var(--b-radius-s);
}

.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;
}

.ce-table-firstcol30 tbody tr th:first-child,
.ce-table-firstcol30 tbody tr td:first-child {
  width: 30%;
}


/* =============================================================================
   Standard contentelements
   ========================================================================== */

/* Login */
#tx-felogin-input-username,
#tx-felogin-input-password {
  margin-bottom: 1rem;
}

/* Maps */
a.js-gme-show {
  text-decoration: none;
}

input.js-gme-saddress {
  width: auto;
}

/* Uploads */
.uploads__item {
  background-color: rgb(var(--c-neutral-lighter));
  border-radius: var(--b-radius-s);
}

.content .frame-bg-grey .uploads__item {
  background-color: rgb(var(--c-neutral-lightest));
}

.uploads__link {
  color: rgb(var(--c-neutral-dark));
  text-decoration: none;
}

.uploads__title {
  color: rgb(var(--c-primary));
  font-size: var(--f-size-l-1);
}

.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));
  }
}

/* Menus */
.frame-type-menu_pages li a,
.frame-type-menu_sitemap li a {
  color: rgb(var(--c-neutral-dark));
  text-decoration: none;
}

/* 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);
}

/* Images */
.gallery__item > a[rel="noreferrer"]::after {
  font-size: 10px;
}

/* =============================================================================
   Layouts
   ========================================================================== */

.page .frame.frame-layout-30 {
  padding: 0;

  &:not(:last-child) {
    margin-bottom: var(--p);
  }

  & > .grid__12 {
    grid-column: span 5;
    display: grid;
    grid-template-columns: 4% 1fr 4%;
    grid-gap: var(--g-gap) 0;

    & > .grid__col:first-child {
      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
   ========================================================================== */

/* Footer */
.footer {
  background-color: rgb(var(--c-neutral-lighter));

  & h3 {
    font-size: var(--f-size-l-5);
  }

  & .gallery__image {
    filter: grayscale(1);
    transition: 0.5s ease all;
  }
}

@media (hover: hover) {
  .footer {
    & .gallery__image:hover {
      filter: grayscale(0);
    }
  }
}

/* =============================================================================
   Menus
   ========================================================================== */

/* Metanav */
.metanav {
  background-color: rgb(var(--c-neutral-lighter));
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.topscroll {
  width: 80px;
  height: 80px;
  display: flex;
  background-color: rgb(var(--c-neutral-lightest));
  border-top-left-radius: var(--b-radius-s);
  border-top-right-radius: var(--b-radius-s);
  justify-content: center;
  align-items: center;
  margin-left: 4%;
  cursor: pointer;

  &::after {
    content: '\f077';
    font-family: 'FaThin';
    font-size: 34px;
  }
}

.metanav__link {
  color: rgb(var(--c-neutral-dark));
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-decoration: none;
  font-size: var(--f-size-s-1);
}

@media (hover: hover) {
  .metanav__link:hover {
    color: rgb(var(--c-primary));
  }
}

.metanav__nav {
  background-color: rgb(var(--c-neutral-lightest));
  border-top-left-radius: var(--b-radius-s);
  padding: 0.6rem 4%;
  margin-left: var(--g-gap);
  min-height: 80px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

/* =============================================================================
   Forms
   ========================================================================== */

input,
select,
textarea {
  border: 1px solid rgb(var(--c-neutral-light));
  padding: calc(0.6rem - 1px) 0.6rem;
  margin: 0 0 0.5rem 0;
  line-height: 1.4;
}

/* =============================================================================
   Media Queries
   ========================================================================== */

@media (min-width: 400px) {
  /* Footer */
  .footer {
    & .grid__col.-w33:first-child,
    & .grid__col.-w33:nth-child(2) {
      grid-column: 1 / 10;
    }
    & .grid__col.-w33:last-child {
      grid-column: span 3;
      grid-row: span 2;
    }
  }
}

@media (min-width: 1024px) {
  /* Layout */
  .page .frame.frame-layout-30 {
    & > .grid__12 {
      grid-template-columns: 4% 2fr 1fr 4%;
      min-height: 50vw;
      grid-gap: 0;

      & > .grid__col:first-child {
        padding: var(--g-gap) var(--g-gap) var(--g-gap) 0;
      }

      & > .grid__col:last-child {
        grid-column: span 2;
        position: relative;

        & > .frame {
          height: 100%;
        }

        & .frame-type-image {
          position: absolute;
          top: 0;
          left: 0;
        }

        & .frame-type-image,
        & .image,
        & .gallery {
          width: 100%;
          height: 100%;
        }

        & picture {
          display: block;
          height: 100%;

          & .gallery__image {
            object-fit: cover;
            width: 100%;
            height: 100%;
          }
        }

        & .gallery__item {
          aspect-ratio: auto;
        }
      }
    }
  }

  /* Footer */
  .footer {
    & .grid__col.-w33:first-child {
      grid-column: 1 / 5;
    }

    & .grid__col.-w33:nth-child(2) {
      grid-column: 6 / 10;
    }

    & .grid__col.-w33:last-child {
      grid-column: 11 / 13;
    }
  }
}

@media (min-width: 1580px) {
  /* Menus */
  .topscroll {
    margin-left: calc(50vw - 720px);
  }

  .metanav__nav {
    padding: 0.6rem calc(50vw - 720px) 0.6rem 2rem;
  }

  /* Layout */
  .page .frame.frame-layout-30 {
    & > .grid__12 {
      min-height: 500px;
      grid-template-columns: 1fr 970px 470px 1fr;
    }
  }
}