/* =============================================================================
   Tables
   ========================================================================== */

table.ce-table {
  border-collapse: separate;
  padding: 0;
  border-spacing: 2px;
}

table.ce-table td {
  border: none;
  background: rgb(var(--c-neutral-lightest));
  padding: 0.3rem 1.0rem;
}

.content > .frame-type-gridelements_pi1:nth-child(2n) table.ce-table td {
  background: rgb(var(--c-neutral-lighter));
}

table.ce-table th,
table.ce-table caption {
  color: rgb(var(--c-neutral-lightest));
  background: rgb(var(--c-primary));
  font-family: var(--f-family-highlight-b);
  padding: 0.3rem 1.0rem;
}

table.ce-table caption {
  border: 2px solid rgb(var(--c-neutral-lighter));
  border-top-left-radius: var(--b-radius);
  border-top-right-radius: var(--b-radius);
}

table.ce-table tbody tr:first-child th:first-child,
table.ce-table thead th:first-child {
  border-top-left-radius: var(--b-radius);
}

table.ce-table tbody tr:first-child th ~ td:last-child,
table.ce-table thead th:last-child {
  border-top-right-radius: var(--b-radius);
}

table.ce-table tbody tr:last-child th:first-child,
table.ce-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: var(--b-radius);
}

table.ce-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: var(--b-radius);
}

.content > .frame-type-gridelements_pi1:nth-child(2n) table.ce-table caption {
  border: 2px solid rgb(var(--c-neutral-lightest));
}

.frame-layout-20 .ce-table td:not(:first-child) {
  text-align: center;
}

/* =============================================================================
   Standard contentelements
   ========================================================================== */

/* Uploads */
.uploads__item {
  background-color: rgb(var(--c-neutral-lightest));
  border-radius: var(--b-radius);
}

.content > .frame:nth-child(2n) .uploads__item {
  background-color: rgb(var(--c-neutral-lighter));
}

.uploads__link {
  color: rgb(var(--c-neutral-dark));
}

.uploads__title {
  color: rgb(var(--c-primary));
  font-size: var(--f-size-l-1);
  font-family: var(--f-family-highlight-b);
}

.uploads__arrowpath {
  stroke: rgb(var(--c-primary));
}

.no-touch .content > .frame:nth-child(2n) .uploads__item:hover,
.no-touch .uploads__item:hover {
  background-color: rgb(var(--c-primary));
}

.no-touch .uploads__item:hover .uploads__link,
.no-touch .uploads__item:hover .uploads__title {
  color: rgb(var(--c-neutral-lightest));
}

.no-touch .uploads__item:hover .uploads__arrowpath {
  stroke: rgb(var(--c-neutral-lightest));
}

iframe,
.gallery__item.-video video {
  display: block;
}

.gallery__item.-video {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.gallery__item.-video video,
.gallery__item.-video iframe,
.gallery__item.-video object,
.gallery__item.-video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.gallery__item > a[rel="noreferrer"]::after {
  padding: 0.5rem 0.5rem 0.3rem 0.3rem;
  background: transparent;
}

/* Images */
.-border img,
.-border iframe {
  border: 1px solid rgb(var(--c-neutral-light));
}

.gallery__item figcaption {
  position: relative;
  bottom: inherit;
  left: inherit;
  max-width: 100%;
  background-color: transparent;
  color: rgb(var(--c-neutral-dark));
  padding: 0;
}

.gallery__item {
  border-radius: 0;
  width: 100%;
}

.video-shariff-image::before,
.gallery__item img {
  border-radius: var(--b-radius);
}

.gallery__item .video-shariff-preview a {
  position: inherit;
}

.gallery__item a[data-fancybox]::before,
.media__image a::before {
  background-color: rgba(var(--c-primary), 0.6);
  border-radius: var(--b-radius);
}

.gallery__item img {
  overflow: hidden;
}

.frame-layout-50 .gallery__item {
  position: relative;
  border-radius: var(--b-radius);
  overflow: hidden;
}

.frame-layout-60 .gallery__item,
.frame-layout-60 .gallery__item img {
  border-radius: 0 !important;
}

.frame-layout-50 img {
  filter: grayscale(1);
  opacity: 0.90;
  transition: all 0.8s ease;
}

.frame-layout-50 .gallery__item:hover img {
  filter: grayscale(0);
  opacity: 1;
}

@-webkit-keyframes circle {
  0% {
    opacity: 1;
  }
  40% {
    opacity: 0.6;
  }
  100% {
    width: 200%;
    height: 200%;
    opacity: 0;
  }
}

@keyframes circle {
  0% {
    opacity: 1;
  }
  40% {
    opacity: 0.6;
  }
  100% {
    width: 200%;
    height: 200%;
    opacity: 0;
  }
}

.frame-layout-50 .gallery__caption {
  position: absolute;
  padding: 1rem;
  bottom: 0;
  left: 0;
  color: rgb(var(--c-neutral-lightest));
  z-index: 10;
}

.frame-textindent {
  max-width: 1000px;
  margin-right: auto;
  margin-left: auto;
}

/* Menus */
.frame-type-menu_pages li,
.frame-type-menu_sitemap li,
.frame-type-menu_subpages li {
  margin: 0;
}

.frame-type-menu_subpages li a,
.frame-type-menu_pages li a,
.frame-type-menu_sitemap li a {
  color: rgb(var(--c-neutral-dark));
}

.frame-type-menu_subpages li a::after,
.frame-type-menu_pages li a::after {
  content: '\f061';
  font-family: 'FaRegular', sans-serif;
  margin-left: 0.5rem;
  font-size: 90%;
}

.frame-layout-70.frame-type-menu_pages li a {
  background: rgb(var(--c-neutral-light));
  margin-bottom: 2px;
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  display: block;
  transition: all 0.3s ease;
}

.frame-layout-70.frame-type-menu_pages li a:hover {
  background: rgb(var(--c-primary));
  color: rgb(var(--c-neutral-lightest));
}

.frame-layout-70.frame-type-menu_pages li a::after {
  content: '';
}

.frame-layout-70.frame-type-menu_subpages ul {
  display: grid;
  grid-gap: var(--g-gap-s)
}

.frame-layout-70.frame-type-menu_subpages li {
  background: rgb(var(--c-neutral-lightest));
  border-radius: var(--b-radius);
  padding: var(--g-gap);
  text-align: center;
}

@media (hover: hover) {
  .frame-layout-70.frame-type-menu_subpages li:hover {
    transform: scale(0.97);
    transition: all 0.05s ease;
  }
}

.frame-layout-70.frame-type-menu_subpages .subpage__title {
  font-size: var(--f-size-l-1);
  font-family: var(--f-family-highlight-b);
  color: rgb(var(--c-neutral-darker));
}

.frame-layout-70.frame-type-menu_subpages .subpage__image {
  margin-bottom: var(--g-gap);
}

.frame-layout-70.frame-type-menu_subpages li a::after {
  display: none;
}

.frame-layout-70.frame-type-menu_subpages li a {
  display: block;
}

/* =============================================================================
 RTE
 ========================================================================== */

.font__button,
input[type="submit"] {
  color: rgb(var(--c-primary));
  background: transparent;
  line-height: 1.4;
  padding: 0.6em 1.3em;
  border: 2px solid rgb(var(--c-primary));
  font-family: var(--f-family-b);
  border-radius: 1.5em;
  position: relative;
  z-index: 10;
}

.font__button a,
a.font__button {
  color: rgb(var(--c-primary));
  padding-right: 2.2em;
  transition: color 0.3s ease 0.3s;
}

a.font__button {
  padding-right: 3.5em;
}

input[type="submit"]::after,
.font__button a::after,
a.font__button::after {
  content: '\f061';
  font-family: 'FaSolid', sans-serif;
  background-color: rgb(var(--c-primary));
  border-radius: 1.5em;
  position: absolute;
  right: -2px;
  top: -2px;
  height: calc(100% + 4px);
  color: rgb(var(--c-neutral-lightest));
  display: flex;
  justify-content: flex-end;
  padding-right: 0.9em;
  align-items: center;
  width: 2.8em;
  box-sizing: border-box;
  transition: width 0.3s ease 0.3s;
  z-index: -1;
}

.no-touch a.font__button:hover::after,
.no-touch .font__button:hover a::after {
  width: calc(100% + 4px);
}

.no-touch .font__button:hover a,
.no-touch a.font__button:hover {
  color: rgb(var(--c-neutral-lightest));
}

.font__colored {
  color: rgb(var(--c-primary));
}

table .font__colored {
  letter-spacing: .22em;
}

.font__highlight {
  color: rgb(var(--c-neutral-darker));
  font-family: var(--f-family-highlight-b);
}

.font__highlight.-large {
  font-size: var(--f-size-l-4);
  line-height: 1.2;
}

.font__light {
  opacity: 0.6;
}

tr.-head,
tr.-content,
tr.-footer {
  background-color: rgb(var(--c-neutral-lightest));
}

.content__bottom > .frame:nth-child(odd) tr.-head,
.content > .frame:nth-child(even) tr.-head,
.content__bottom > .frame:nth-child(odd) tr.-content,
.content > .frame:nth-child(even) table tr.-content,
.content__bottom > .frame:nth-child(odd) tr.-footer,
.content > .frame:nth-child(even) tr.-footer {
  background: rgb(var(--c-neutral-lighter));
}

td {
  padding: 0.5rem 2rem;
}

td td {
  padding: 0.2rem 0.2rem 0 0;
  line-height: 1;
}

table tr td.-highlight {
  background-color: rgb(var(--c-primary));
  color: rgb(var(--c-neutral-lightest));
  border-bottom: 2px solid transparent;
}

table td.-highlight .fas,
td.-highlight .font__highlight {
  color: rgb(var(--c-neutral-lightest));
}

tr.-head {
  font-family: var(--f-family-b);
}

tr.-head td {
  padding-top: 1.5rem;
}

td.-highlight.-head,
tr.-head td:first-child {
  border-top-left-radius: 6px;
}

td.-highlight.-head,
tr.-head td:last-child {
  border-top-right-radius: 6px;
}

td.-highlight.-footer,
tr.-footer td:first-child {
  border-bottom-left-radius: 6px;
}

td.-highlight.-footer,
tr.-footer td:last-child {
  border-bottom-right-radius: 6px;
}

tr.-head td,
tr.-content td {
  border-bottom: 2px solid rgb(var(--c-neutral-lighter));
}

table .fas {
  color: rgb(var(--c-primary));
}

.frame-type-text > table {
  display: block;
  overflow-x: auto;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  width: 100%;
}

.frame-type-text > table::-webkit-scrollbar-track {
  background-color: rgb(var(--c-neutral-light));
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}

.frame-type-text > table::-webkit-scrollbar {
  height: 5px;
}

.frame-type-text > table::-webkit-scrollbar-thumb {
  background-color: rgb(var(--c-neutral));
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}

ul.-check li {
  margin: 1rem 0;
  padding-left: 1rem;
}

ul.-check li::marker {
  content: '\f058';
  font-family: 'FaRegular';
  color: rgb(var(--c-primary));
}

/* =============================================================================
   Frames & Layouts
   ========================================================================== */

div.frame-layout-10 {
  background-color: rgb(var(--c-primary)) !important;
}

div.frame-layout-30 {
  background: rgb(var(--c-neutral-light));
}

.frame-layout-10,
.frame-layout-10 h1,
.frame-layout-10 h2,
.frame-layout-10 h3,
.frame-layout-10 h4,
.frame-layout-10 a,
.frame-layout-10 a.font__button,
.frame-layout-10 .font__button a,
.frame-layout-10 .font__button {
  color: rgb(var(--c-neutral-lightest));
}

.frame-layout-10 .font__button {
  border: 2px solid rgb(var(--c-neutral-lightest));

}

.frame-layout-10 .font__button a::after,
.frame-layout-10 a.font__button::after {
  border: 2px solid rgb(var(--c-neutral-lightest));
  color: rgb(var(--c-primary));
  background-color: rgb(var(--c-neutral-lightest));
}

.no-touch .frame-layout-10 .font__button:hover a,
.no-touch .frame-layout-10 a.font__button:hover {
  color: rgb(var(--c-primary));
}

.frame-type-text.frame-layout-10,
.frame-type-text.frame-layout-30 {
  border-radius: var(--b-radius);
  padding: 2.5rem 2rem;
}

/* =============================================================================
   Template
   ========================================================================== */

.footer {
  background: rgb(var(--c-neutral-lightest));
  display: grid;
  grid-template-columns: 4% 1fr 4%;
}

.footer.-grey {
  background: rgb(var(--c-neutral-lighter));
}

.footer__left {
  grid-column: span 2;
  border-bottom-right-radius: var(--b-radius);
  border-top-right-radius: var(--b-radius);
  height: 100%;
  padding: 3rem 2rem 3rem 4vw;
  position: relative;
  top: -3rem;
}

.footer__right {
  grid-column: 2;
  margin-top: -3rem;
}

.footer .grid__main {
  display: block;
}

/* =============================================================================
   Menus
   ========================================================================== */

/* Metanav */
.metanav__link {
  color: rgb(var(--c-neutral-dark));
  text-transform: uppercase;
}

.metanav__link:hover {
  color: rgb(var(--c-primary));
}

.metanav__nav {
  padding: 0.6rem 0;
}

/* =============================================================================
   Media Queries
   ========================================================================== */

@media (min-width: 640px) {
  /* Footer */
  .footer .grid__col.-w33:first-child {
    grid-column: span 5;
  }

  .footer .grid__col.-w33:nth-child(2) {
    grid-column: span 4;
  }

  .footer .grid__col.-w33:nth-child(3) {
    grid-column: span 3;
  }
}

@media (min-width: 1280px) {
  /* Footer */
  .footer {
    grid-template-columns: 4% 30% 3rem 1fr 4%;
  }

  .footer__right {
    grid-column: 4;
    margin-top: 0;
  }

  .footer__left {
    padding: 4rem 3rem 4rem 4vw;
  }

  /* Frames & Layouts */
  .frame-type-text.frame-layout-10,
  .frame-type-text.frame-layout-30 {
    padding: 3.5rem;
  }
}

@media (min-width: 1580px) {
  /* Footer */
  .footer {
    grid-template-columns: 1fr 440px 80px 920px 1fr;
  }

  .footer__left {
    padding: 4rem 3rem 4rem calc(50vw - 720px);
  }
}