/* compiled by scssphp v0.8.0 on Tue, 07 Oct 2025 06:16:30 +0000 (0.0216s) */

html {
  font-size: 62.5%; }

html, body {
  scroll-behavior: smooth; }

* {
  margin: 0;
  padding: 0;
  border: 0;
  box-sizing: border-box;
  font: inherit;
  position: relative; }
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main {
  display: block; }

ol, ul {
  list-style: none;
  list-style-image: none; }

blockquote::before, blockquote::after, q::before, q::after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

span, a {
  color: inherit;
  font-size: inherit; }

a, span {
  line-height: inherit; }

.align-center, .align_center, p:has(img.align_center) {
  text-align: center; }

.align-right, .align_right {
  text-align: right; }

.hidden {
  display: none; }

img, video {
  height: auto;
  max-width: 100%; }

img.align_left {
  float: left;
  margin-right: 2rem; }

img.align_right {
  float: right;
  margin-left: 2rem; }

img.valign_bottom {
  display: inline-block;
  vertical-align: bottom; }

.splide__list > li {
  display: flex; }

.LoginRegisterPro .LoginRegisterMessage, .LoginRegisterPro .LoginRegisterNotice {
  border: none;
  padding: 0; }
  .LoginRegisterPro .LoginForm.InputfieldForm .Inputfield:not(.InputfieldSubmit) {
    background: none;
    border: none;
    padding: 0; }
    .LoginRegisterPro .LoginForm.InputfieldForm .LoginRegisterNotice, .LoginRegisterPro .LoginForm.InputfieldForm .LoginRegisterMessage {
      padding: 0;
      border: none; }
    .LoginRegisterPro .LoginForm.InputfieldForm .InputfieldSubmit {
      margin: 3rem 0 0 0; }

#skip-navigation {
  position: fixed;
  left: 0;
  top: 1rem;
  transform: translateX(-110%);
  padding: 2rem;
  z-index: 3000;
  border-radius: 4.2rem; }
  #skip-navigation:focus {
    transform: translateX(10%); }
/**
 * InputfieldForm CSS file for FormBuilder with non-Legacy frameworks
 *
 */
.InputfieldForm textarea, .InputfieldForm .InputfieldMaxWidth {
  width: 100%; }
  .InputfieldForm input[type="text"], .InputfieldForm input[type="password"], .InputfieldForm input[type="date"], .InputfieldForm input[type="datetime"], .InputfieldForm input[type="datetime-local"], .InputfieldForm input[type="month"], .InputfieldForm input[type="week"], .InputfieldForm input[type="email"], .InputfieldForm input[type="number"], .InputfieldForm input[type="search"], .InputfieldForm input[type="tel"], .InputfieldForm input[type="time"], .InputfieldForm input[type="url"], .InputfieldForm input[type="color"], .InputfieldForm select, .InputfieldForm textarea {
    margin: 0; }
  .InputfieldForm, .InputfieldForm *, .InputfieldForm *:before, .InputfieldForm *:after {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box; }
  .InputfieldForm .Inputfields {
    height: auto;
    list-style: none;
    padding: 0; }
  .InputfieldForm .Inputfield {
    list-style: none;
    display: block; }
  .InputfieldForm .Inputfield {
    clear: both;
    margin: 0 0 1.5em 0; }
    .InputfieldForm .Inputfield:not(fieldset) {
      padding: 0; }
  .InputfieldForm fieldset, .InputfieldForm .InputfieldFieldset {
    margin: 0 0 1.5em 0;
    padding-bottom: 0; }
  .InputfieldForm .InputfieldFieldset:not(.InputfieldColumnWidth) {
    clear: both; }
  .InputfieldForm .InputfieldStateCollapsed .InputfieldHeader {
    opacity: 0.5; }
    .InputfieldForm .InputfieldStateCollapsed .InputfieldHeader:after {
      content: " \2026"; }
    .InputfieldForm .InputfieldStateCollapsed .InputfieldContent {
      display: none; }
  .InputfieldForm .InputfieldHidden {
    display: none; }
  .InputfieldForm .description, .InputfieldForm .notes {
    margin: 0.25em 0; }
  .InputfieldForm .Inputfield:not(.InputfieldStateCollapsed) > .InputfieldHeaderHidden > span {
    display: none; }
  .InputfieldForm .InputfieldSubmitPrev {
    float: left; }
    .InputfieldForm .InputfieldSubmitPrev + .InputfieldSubmit {
      clear: none;
      float: left;
      margin-left: 1em; }

.InputfieldFormWidths {
  /** the following have to do with column widths **********************************************/ }
  .InputfieldFormWidths input[type=text], .InputfieldFormWidths input[type=email], .InputfieldFormWidths input[type=url], .InputfieldFormWidths select, .InputfieldFormWidths textarea {
    width: 100%; }
  .InputfieldFormWidths .InputfieldColumnWidth {
    /* an Inputfield that has a percentage width assigned to it */
    float: left;
    clear: none;
    margin-left: 0;
    margin-right: 0; }
    .InputfieldFormWidths .InputfieldColumnWidth > .InputfieldHeader, .InputfieldFormWidths .InputfieldColumnWidth > .InputfieldContent {
      padding-left: 1.5em; }
    .InputfieldFormWidths .InputfieldColumnWidth > .InputfieldHeaderHidden::before {
      display: inline-block;
      content: "\00a0 "; }
  .InputfieldFormWidths .InputfieldColumnWidthFirst, .InputfieldFormWidths .InputfieldColumnWidth + .InputfieldSubmit, .InputfieldFormWidths .InputfieldColumnWidthFirstTmp, .InputfieldFormWidths .InputfieldColumnWidthFirst.InputfieldStateHidden + .Inputfield {
    /* for dependencies */
    /* first Inputfield with a percent width... */
    /* ...or the last percentage-width Inputifeld before the submit button */
    clear: both; }
    .InputfieldFormWidths .InputfieldColumnWidthFirst > .InputfieldHeader, .InputfieldFormWidths .InputfieldColumnWidth + .InputfieldSubmit > .InputfieldHeader, .InputfieldFormWidths .InputfieldColumnWidthFirstTmp > .InputfieldHeader, .InputfieldFormWidths .InputfieldColumnWidthFirst.InputfieldStateHidden + .Inputfield > .InputfieldHeader, .InputfieldFormWidths .InputfieldColumnWidthFirst > .InputfieldContent, .InputfieldFormWidths .InputfieldColumnWidth + .InputfieldSubmit > .InputfieldContent, .InputfieldFormWidths .InputfieldColumnWidthFirstTmp > .InputfieldContent, .InputfieldFormWidths .InputfieldColumnWidthFirst.InputfieldStateHidden + .Inputfield > .InputfieldContent {
      padding-left: 0; }
  .InputfieldFormWidths .description {
    margin: 0.25em 0; }
  .InputfieldFormWidths .notes {
    margin: 0.25em 0; }
/*** state toggles *******************************************************/
.InputfieldStateToggle {
  cursor: pointer; }
  .InputfieldStateToggle i.toggle-icon {
    /* the open/close icon that goes with most Inputfields */
    float: right;
    padding-right: 0.25em; }
  .InputfieldStateToggle i.toggle-icon {
    padding-right: 0.5em;
    line-height: 1.7em; }
  .InputfieldStateToggle i + i {
    margin-right: 0.5em;
    margin-left: 0; }
/*** misc ******************************************************************/
.InputfieldStateRequired > .InputfieldHeader:first-child:after {
  /* Required state: Add asterisk to indicate field is required */
  content: '*';
  margin-left: 0.25em;
  color: red; }

.Inputfields > .Inputfield > .InputfieldContent:before, .Inputfields > .Inputfield > .InputfieldContent:after, .InputfieldForm:after {
  content: " ";
  display: table; }

.Inputfields > .Inputfield > .InputfieldContent:after, .InputfieldForm:after {
  clear: both; }

.InputfieldSelect ul, .InputfieldRadios ul, .InputfieldCheckboxes ul {
  margin: 0; }
  .InputfieldSelect ul li, .InputfieldRadios ul li, .InputfieldCheckboxes ul li {
    margin: 0; }

#wrap_Inputfield-, .wrap_Inputfield- {
  display: none; }

.InputfieldForm .InputfieldFormBuilderPageBreak {
  /*margin-bottom: 0;*/ }
/****************************************************************************
 * Render Value Mode 
 *
 * Used when only values are being rendered in the form (no inputs)
 *
 */
.InputfieldRenderValueMode .InputfieldSelect li, .InputfieldRenderValueMode .InputfieldRadios li, .InputfieldRenderValueMode .InputfieldCheckboxes li {
  margin: 0; }
  .InputfieldRenderValueMode .InputfieldSubmit, .InputfieldRenderValueMode .InputfieldButton {
    display: none; }

.pw-no-select {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -o-user-select: none;
  user-select: none;
  /* prevent selection of this element */ }

:root {
  --font-size-default: clamp(1.8rem, 1.146vw, 2.5rem);
  --font-size-big: clamp(2rem, 1vw, 4rem);
  --font-size-bigger: clamp(3rem, 1vw, 6rem);
  --font-size-small: clamp(1.3rem, 1vw, 2rem);
  --font-size-smaller: clamp(1rem, 1vw, 1.5rem);
  --width-master: 192rem;
  --width-default: 140rem;
  --width-wide: 162rem;
  --width-xwide: 164rem;
  --width-narrow: 78rem;
  --space-default: clamp(4rem, 9vw, 9rem);
  --space-big: clamp(6rem, 8vw, 18rem);
  --space-small: 4.5rem;
  --space-xsmall: 1rem; }

#page-header {
  width: 100vw;
  max-width: var(--width-master);
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  display: flex;
  flex-wrap: wrap; }
  #page-header > * {
    width: 100%; }
  #page-header > .wrapper {
    order: 1;
    z-index: 2; }
  #page-header > h1 {
    order: 2;
    z-index: 1; }
  #page-header h1 {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  #page-header #nav-bar {
    display: grid;
    grid-template-columns: 1fr auto;
    max-width: var(--width-wide);
    margin: 0 auto 1.5rem;
    padding: 1.5rem 2rem 1rem;
    box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.25); }
  #page-header #nav-service {
    display: none;
    justify-content: flex-end; }
  #page-header button#navi-main-show {
    padding: 0;
    width: auto;
    background: none;
    border: none;
    border-radius: 0;
    margin-right: 0.5rem;
    transform: translateY(-10%); }
    #page-header button#navi-main-show span {
      line-height: 2rem; }
    #page-header button#navi-main-show::before {
      display: block;
      height: 3.3rem; }
  #page-header #nav-main {
    display: none;
    justify-content: center;
    margin: 1.5rem 0 0 0; }
    #page-header #nav-main #navi-main {
      display: flex;
      gap: 7rem;
      align-items: flex-start; }
    #page-header #nav-main #navi-main a:not([aria-expanded="true"]) + ul {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px; }
    #page-header #nav-main #navi-main a {
      text-decoration: none;
      display: flex;
      align-items: center; }
      #page-header #nav-main #navi-main a[aria-controls]::after {
        content: "\E000";
        transform-origin: center;
        transform: rotate(-90deg);
        margin-left: 1.5rem;
        transition: all 0.4s; }
      #page-header #nav-main #navi-main a[aria-expanded="true"]::after {
        transform: rotate(90deg); }
    #page-header #nav-main #navi-main > li > ul {
      position: absolute;
      left: -5rem;
      top: 100%;
      transform: translateY(1.8rem);
      min-width: 39rem; }
      #page-header #nav-main #navi-main > li > ul > li > a {
        padding: 2.2rem 5rem; }
        #page-header #nav-main #navi-main > li > ul > li > a span {
          white-space: nowrap; }
        #page-header #nav-main #navi-main > li > ul > li > a:hover span, #page-header #nav-main #navi-main > li > ul > li > a:focus span {
          text-decoration: underline;
          text-underline-offset: 3px; }
    #page-header #nav-main #navi-main > li > a::before {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -4px;
      display: block;
      height: 3px;
      background-color: black;
      opacity: 0;
      transition: opacity 0.4s; }
      #page-header #nav-main #navi-main > li > a:hover::before, #page-header #nav-main #navi-main > li > a:focus::before {
        opacity: 1; }
  #page-header #navi-service, #page-header #navi-service-mobile {
    display: flex;
    flex-wrap: wrap;
    gap: 3rem;
    justify-content: flex-end;
    align-items: center;
    padding: 1.3rem 2rem 1.3rem 2rem;
    max-width: 180rem;
    width: 100%;
    margin: auto; }
    #page-header #navi-service li.switch_language, #page-header #navi-service-mobile li.switch_language {
      display: flex;
      align-items: center; }
    #page-header #navi-service li.switch_language::before, #page-header #navi-service-mobile li.switch_language::before {
      margin-right: 1rem; }
    #page-header #navi-service li.switch_language > span, #page-header #navi-service-mobile li.switch_language > span, #page-header #navi-service li.switch_language span.label, #page-header #navi-service-mobile li.switch_language span.label {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px; }
    #page-header #navi-service li.switch_language ul, #page-header #navi-service-mobile li.switch_language ul {
      display: flex;
      gap: 1rem; }
      #page-header #navi-service li.switch_language ul a, #page-header #navi-service-mobile li.switch_language ul a {
        margin-left: 0; }
      #page-header #navi-service li.switch_language ul a span, #page-header #navi-service-mobile li.switch_language ul a span {
        text-transform: uppercase; }
    #page-header #navi-service a, #page-header #navi-service-mobile a {
      display: flex;
      align-items: center;
      margin-left: 3rem; }
    #page-header #navi-service a::before, #page-header #navi-service-mobile a::before {
      position: absolute;
      left: -3rem;
      top: 50%;
      transform: translateY(-50%); }
  #page-header #home-link img {
    width: 8em; }
  @media screen and (min-width: 62.5em) {
  #page-header #nav-bar {
    margin: 2.5rem auto 0;
    box-shadow: none; }
  #page-header #navi-main-show::before {
    height: 2.5rem; }
  #page-header #nav-service {
    display: flex; } }
  @media screen and (min-width: 75em) {
  #page-header #nav-bar {
    grid-template-columns: auto 1fr auto; }
  #page-header #nav-main, #page-header #nav-service {
    display: flex; }
  #page-header #navi-main-show {
    display: none; } }

#hero-image {
  width: 100%;
  margin-top: var(--space-small); }
  #hero-image img {
    width: 100%; }

#page-footer::after {
  display: none !important; }
  #page-footer .menu {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    width: auto;
    margin: auto; }
    @media screen and (min-width: 75em) {
  #page-footer .menu {
    flex-wrap: nowrap;
    gap: 5rem; } }
  #page-footer .menu li:not(:last-child) {
    margin-bottom: 1rem; }
  #page-footer .menu ul {
    margin-top: 1rem; }
  #page-footer #socket {
    margin-bottom: 5rem; }
    #page-footer #socket::before {
      content: "";
      position: absolute;
      top: 0;
      left: 20%;
      right: 20%;
      height: 1px; }
    #page-footer #socket .menu {
      display: block; }
  #page-footer #ce3320 {
    width: 20rem;
    margin: auto; }
    @media screen and (min-width: 60em) {
  #page-footer #ce3320 {
    position: absolute;
    right: 5rem;
    top: var(--space-small);
    width: 27rem; }
    #page-footer #ce3320 .wrapper {
      padding: 0; }
    #page-footer #ce3320 .gallery {
      display: block; } }

#bread-crumbs {
  max-width: var(--width-wide);
  margin: 1.5rem auto 0;
  padding: 0 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center; }
  @media screen and (min-width: 37.5em) {
  #bread-crumbs {
    display: flex;
    align-items: center; } }
  #bread-crumbs li {
    display: flex;
    align-items: center; }
  #bread-crumbs li:not(:last-child)::after {
    display: inline-block;
    margin: 0 1rem;
    transform: rotate(180deg); }

.TextformatterVideoEmbed {
  margin: 0 !important; }

main {
  padding-top: 10rem; }
  @media screen and (min-width: 62.5em) {
  main {
    padding-top: 20rem; } }

main .ce {
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: top left; }
  main .ce.bg-white-1 {
    background-image: url(/site/templates/images/backgrounds/style1-1.svg); }
  main .ce.bg-white-2 {
    background-image: url(/site/templates/images/backgrounds/style1-2.svg); }
  main .ce.bg-white-3 {
    background-image: url(/site/templates/images/backgrounds/style1-3.svg); }
  main .ce.bg-white-4 {
    background-image: url(/site/templates/images/backgrounds/style1-4.svg); }
  main .ce.bg-white-5 {
    background-image: url(/site/templates/images/backgrounds/style1-5.svg); }
  main .ce.bg-white-6 {
    background-image: url(/site/templates/images/backgrounds/style1-6.svg); }
  main .ce.bg-blue-1 {
    background-image: url(/site/templates/images/backgrounds/style2-2.svg); }
  main .ce.bg-blue-2 {
    background-image: url(/site/templates/images/backgrounds/style2-1.svg); }
  main .ce.bg-blue-3 {
    background-image: url(/site/templates/images/backgrounds/style2-3.svg); }
  main .ce:not([class*="bg-"]).s1-1 {
    background-image: url(/site/templates/images/backgrounds/style1-5.svg); }
    main .ce:not([class*="bg-"]).s1-2 {
      background-image: url(/site/templates/images/backgrounds/style1-2.svg); }
    main .ce:not([class*="bg-"]).s1-3 {
      background-image: url(/site/templates/images/backgrounds/style1-3.svg); }
    main .ce:not([class*="bg-"]).s2-1 {
      background-image: url(/site/templates/images/backgrounds/style2-1.svg); }
    main .ce:not([class*="bg-"]).s2-2 {
      background-image: url(/site/templates/images/backgrounds/style2-2.svg); }
    main .ce:not([class*="bg-"]).s3-3 {
      background-image: url(/site/templates/images/backgrounds/style2-3.svg); }
  main .ce.border-bottom > .wrapper {
    border-bottom: 1px solid black; }
  @media screen and (max-width: 60em) {
    main .ce[class*="num"] .text {
      padding-left: 5rem; }

    main .ce[class*="num"] div.text::before {
      position: absolute;
      left: -1rem;
      top: -0.5rem; }

    main .ce[class*="num"].num-1 div.text::before {
      content: "01"; }

    main .ce[class*="num"].num-2 div.text::before {
      content: "02"; }

    main .ce[class*="num"].num-3 div.text::before {
      content: "03"; }

    main .ce[class*="num"].num-4 div.text::before {
      content: "04"; }

    main .ce[class*="num"].num-5 div.text::before {
      content: "05"; }

    main .ce[class*="num"].num-6 div.text::before {
      content: "06"; }

    main .ce[class*="num"].num-7 div.text::before {
      content: "07"; } }
    @media screen and (min-width: 60em) {
  main .ce[class*="num"] > div.wrapper::before {
    position: absolute;
    left: 2rem;
    bottom: 2rem; }
  main .ce[class*="num"].num-1 > div.wrapper::before {
    content: "01"; }
  main .ce[class*="num"].num-2 > div.wrapper::before {
    content: "02"; }
  main .ce[class*="num"].num-3 > div.wrapper::before {
    content: "03"; }
  main .ce[class*="num"].num-4 > div.wrapper::before {
    content: "04"; }
  main .ce[class*="num"].num-5 > div.wrapper::before {
    content: "05"; }
  main .ce[class*="num"].num-6 > div.wrapper::before {
    content: "06"; }
  main .ce[class*="num"].num-7 > div.wrapper::before {
    content: "07"; } }

form.FormBuilder.InputfieldForm input, form.person-filter input, form.LoginForm input, form.FormBuilder.InputfieldForm textarea, form.person-filter textarea, form.LoginForm textarea, form.FormBuilder.InputfieldForm select, form.person-filter select, form.LoginForm select {
  border-radius: 1.5rem;
  padding: 1.5rem 1rem !important;
  height: auto !important;
  background: none !important; }

button, a.button {
  display: inline-block;
  padding: 1.7rem 2rem 1.7rem;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  border-radius: 1.5rem;
  background: none;
  border: 3px solid black;
  width: 22.5rem; }

button.v-control, button.splide__arrow {
  padding: 0;
  border: 3px solid black;
  height: 4.2rem;
  width: 4.2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: white;
  border-radius: 50%; }
  button.v-control span, button.splide__arrow span {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  button.v-control.v-control, button.splide__arrow.v-control {
    position: absolute;
    bottom: clamp(2rem, 4vw, 8rem);
    right: clamp(2rem, 4vw, 8rem); }

button.splide__arrow {
  height: 9.4rem;
  width: 9.4rem; }

p.details button, p.details a.button {
  width: 100%;
  max-width: none; }

figcaption.small {
  position: absolute;
  background: none;
  left: 1rem;
  bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 0; }
  figcaption.small button {
    padding: 0;
    border: 0;
    width: auto;
    color: white;
    width: 24px;
    height: 24px; }
    figcaption.small button::before {
      border-radius: 50%; }
    figcaption.small button:focus {
      border-radius: 50%; }
    figcaption.small button:hover::before {
      background-color: white; }
    figcaption.small button span {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px; }
  figcaption.small > span {
    animation: fadeIn 0.3s; }

figure:not(.cp) figcaption.small > span {
  opacity: 0; }
  figure.cp {
    background-color: rgba(0, 0, 0, 0.5); }
    figure.cp video, figure.cp img {
      filter: brightness(50%); }
  figure img {
    transition: all 0.3s;
    display: block; }

.ce figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 1rem;
  border-bottom-left-radius: 1.5rem; }

.ce.type-news img, .ce.type-portfolio img {
  display: block; }
  .ce.type-news figcaption:not(.small), .ce.type-portfolio figcaption:not(.small) {
    border-bottom-left-radius: 0; }

.ce.type-gallery.full img, .ce.type-gallery.full a {
  border-radius: 0; }

.ce.type-text_image .media img, .ce.type-text_image .media a {
  border-radius: 1.5rem;
  overflow: hidden; }
  .ce.type-text_image .right figcaption:not(.small) {
    left: auto;
    right: 0;
    border-bottom-right-radius: 1.5rem;
    border-bottom-left-radius: 0; }
  .ce.type-text_image.full .media img, .ce.type-text_image.full .media a {
    border-radius: 0; }
  .ce.type-text_image .element.under .media img, .ce.type-text_image .element.above .media img {
    margin: auto; }
  @media screen and (min-width: 75em) {
  .ce.type-text_image.narrow .element.under, .ce.type-text_image.narrow .element.above {
    gap: 5rem; }
    .ce.type-text_image.narrow .element.under .media, .ce.type-text_image.narrow .element.above .media {
      transform: scale(1.1); } }

header.news .wrapper {
  display: flex;
  flex-wrap: wrap; }
  header.news .wrapper > * {
    width: 100%; }
  header.news h2 {
    order: 2;
    margin-bottom: 0; }
  header.news time {
    order: 1; }

.grid article {
  border-radius: 1.5rem;
  overflow: hidden; }
  .grid article > div {
    padding: 3rem 4rem; }
  .grid article header {
    display: flex;
    flex-wrap: wrap; }
  .grid article header h4 {
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical; }
  .grid article header > * {
    width: 100%; }
  .grid article header * {
    order: 2; }
  .grid article header time {
    order: 1; }

main .ce.highlight h2 {
  margin-top: 3rem; }

main .ce ul:not(.gallery):not(.person):not(.ra-list):not(.social-channels) {
  list-style-type: disc; }

.ce table {
  border-collapse: separate;
  width: 100%; }
  .ce table caption {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  .ce table th, .ce table td {
    vertical-align: middle;
    padding: 2rem 2rem 2rem 1rem; }
  .ce table th:not(.align_right):not(.align_center), .ce table td:not(.align_right):not(.align_center) {
    text-align: left; }
  .ce table th span, .ce table td span, .ce table th time, .ce table td time {
    display: flex;
    align-items: center; }
  .ce table th span::before, .ce table td span::before, .ce table th time::before, .ce table td time::before {
    margin-right: 1.5rem; }
  .ce table tbody th, .ce table tbody td {
    border-bottom: 1px solid black; }
  @media screen and (max-width: 50em) {
  .ce table thead {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  .ce table th, .ce table td {
    display: flex;
    gap: 2rem; }
    .ce table th::before, .ce table td::before {
      content: attr(data-label);
      display: block;
      width: 30%;
      font-size: inherit; }

    .ce table th:not(:last-child), .ce table td:not(:last-child) {
      border: none; } }

figcaption {
  text-align: center;
  padding: 0.5rem; }

main .ce a, footer .ce a {
  text-decoration-thickness: 1px;
  text-underline-offset: 3px; }

a.read-more {
  margin-left: 3rem;
  white-space: nowrap; }
  a.read-more::before {
    position: absolute;
    left: -3rem;
    top: 50%;
    transform: translateY(-40%); }

a.extern {
  margin-left: 2.5rem;
  white-space: nowrap; }
  a.extern::before {
    position: absolute;
    left: -2rem;
    top: 50%;
    transform: translateY(-40%); }

.ce ul.ra-list {
  list-style-type: none;
  margin-left: 4rem; }
  @media screen and (min-width: 56.25em) {
  .ce ul.ra-list {
    margin-left: 0; } }
  .ce ul.ra-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 3rem;
    height: 3rem;
    background-color: #007b9f;
    border-radius: 50%;
    transform: translateX(-150%); }
  .ce ul.ra-list li:nth-child(1)::before {
    background-color: #203050; }
  .ce ul.ra-list li:nth-child(2)::before {
    background-color: #007b9f; }
  .ce ul.ra-list li:nth-child(3)::before {
    background-color: #379c9e; }
  .ce ul.ra-list li:nth-child(4)::before {
    background-color: #009472; }
  .ce ul.ra-list li:nth-child(5)::before {
    background-color: #88bc4d; }

.ce ul.ni-list {
  list-style-type: none; }
  @media screen and (min-width: 56.25em) {
  .ce ul.ni-list {
    margin-left: 0; } }
  .ce ul.ni-list li::before {
    content: attr(data-id);
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 3rem;
    height: 3rem;
    background-color: #007b9f;
    border-radius: 50%;
    transform: translateX(-150%);
    color: white;
    text-align: center; }
  .ce ul.ni-list li[data-id="N"]::before {
    background-color: #005793; }
  .ce ul.ni-list li[data-id="I"]::before {
    background-color: #930070; }

.type-persons [itemprop="memberOf"] span.ra1 {
  background-color: #203050; }
  .type-persons [itemprop="memberOf"] span.ra2 {
    background-color: #007b9f; }
  .type-persons [itemprop="memberOf"] span.ra3 {
    background-color: #379c9e; }
  .type-persons [itemprop="memberOf"] span.ra4 {
    background-color: #009472; }
  .type-persons [itemprop="memberOf"] span.ra5 {
    background-color: #88bc4d; }
  .type-persons [itemprop="memberOf"] span.cat2 {
    background-color: #005793; }
  .type-persons [itemprop="memberOf"] span.cat3 {
    background-color: #930070; }

.type-gallery.logo img {
  max-height: 20rem; }

@media screen and (max-width: 60em) {
    .ce:not(.full) ul.gallery {
      margin-left: -2rem;
      margin-right: -2rem; } }

a.download {
  padding-left: 6rem; }
  a.download::before {
    position: absolute;
    left: 0.5rem;
    top: 50%;
    transform-origin: center;
    transform: translateY(-50%);
    content: "";
    display: block;
    width: 4.4rem;
    height: 4.4rem;
    background-image: url(/site/templates/images/icons/arrow.svg);
    background-size: contain; }

blockquote p::before, blockquote p::after {
  display: inline-block;
  content: "";
  width: 3rem;
  height: 3rem;
  background-image: url(/site/templates/images/backgrounds/blockquote.svg);
  background-size: contain; }
  blockquote p::after {
    transform: translate(-50%, -100%);
    rotate: 160deg; }
  @media screen and (min-width: 62.5em) {
  blockquote {
    background-image: url(/site/templates/images/backgrounds/baum.svg);
    background-repeat: no-repeat;
    background-position: top right;
    padding: 10rem 15vw 0 0; }
    blockquote p::before {
      transform: translate(-100%, -100%); }
      blockquote p::before, blockquote p::after {
        width: 5.6rem;
        height: 5.6rem; } }

.ce hr {
  height: 0.2rem; }

@media screen and (max-width: 60em) {
    .ce header h2 span br {
      display: none; } }

p:has(img[class*="align_left"]), p:has(img[class*="align_right"]) {
  overflow: auto; }

@media screen and (max-width: 90em) {
    .element.splide {
      padding: 0;
      max-width: calc(100vw - 6rem); } }
  .element.splide .splide__arrows {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%); }
  .element.splide .splide__arrows .splide__arrow {
    opacity: 1; }
  .element.splide .splide__arrows .splide__arrow--next::before {
    transform: rotate(180deg); }
  .element.splide .splide__arrows .splide__arrow--next {
    right: 0; }
  .element.splide .splide__arrows .splide__arrow--prev {
    left: 0; }
  .element.splide .splide__pagination {
    bottom: 0;
    transform: translateY(200%);
    display: none; }
  .element.splide .splide__pagination button.splide__pagination__page {
    background: none;
    border: 1px solid black;
    width: 1.2rem;
    height: 1.2rem;
    opacity: 1;
    transform: none; }
  .element.splide .splide__pagination button.splide__pagination__page.is-active {
    background-color: black; }
  @media screen and (max-width: 100em) {
  .element.splide {
    padding: 0 8rem; } }
  @media screen and (max-width: 50em) {
  .element.splide {
    padding: 0; }
    .element.splide .splide__arrows {
      display: none; }

    .element.splide .splide__pagination {
      display: flex; } }
  @media screen and (min-width: 100em) {
  .element.splide .splide__arrow--next {
    transform: translate(200%, -50%); }
  .element.splide .splide__arrow--prev {
    transform: translate(-200%, -50%); } }

.type-research_areas ul.control {
  max-width: var(--width-narrow);
  gap: 0;
  list-style-type: none !important;
  margin: 0 auto var(--space-default) auto !important;
  border: 3px solid black;
  border-radius: 2rem;
  grid-template-columns: repeat(5, 1fr) !important; }
  .type-research_areas ul.control li {
    margin: 0; }
  .type-research_areas ul.control button {
    width: 100%;
    border: none;
    z-index: 10; }
  .type-research_areas details[open] {
    animation: fadeIn 0.5s; }
  .type-research_areas details summary {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  .type-research_areas details div.content {
    padding-bottom: var(--space-default); }
  .type-research_areas details h4 {
    max-width: var(--width-narrow);
    margin-left: auto;
    margin-right: auto;
    padding: 0 2rem;
    text-align: center; }
  .type-research_areas details section > div {
    aspect-ratio: 1.5;
    background-size: contain;
    background-position: bottom center;
    background-repeat: no-repeat;
    margin-bottom: 5rem; }
  .type-research_areas details div[data-cols] {
    grid-template-rows: auto auto auto;
    grid-auto-flow: column; }
  .type-research_areas details section {
    display: contents; }

form.person-filter {
  margin-bottom: 4rem;
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
  gap: 4rem 2rem; }
  form.person-filter select, form.person-filter input {
    border-width: 3px !important; }
  form.person-filter label span {
    display: block;
    margin-bottom: 1rem; }
  form.person-filter > div {
    width: 100%; }
  form.person-filter > div:first-child {
    display: grid;
    gap: 2rem; }
  form.person-filter > div:nth-child(2) ul {
    justify-content: right; }
  @media screen and (min-width: 62.5em) {
  form.person-filter {
    grid-template-columns: 1fr;
    gap: 4rem; }
    form.person-filter > div:first-child {
      grid-template-columns: repeat(4, 1fr);
      gap: 6rem; } }

ul.features {
  display: flex;
  gap: 2rem; }

.lazy {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px; }

:root {
  --color-background-master: #fff;
  --text-primary: #1c1c1c;
  --text-secondary: #fff;
  --color-accent-1: #005793;
  --color-accent-2: #183457;
  --color-accent-3: #203050;
  --background-secondary: #ebebeb; }

body {
  background-color: #efefef; }

#page-header {
  background-color: white; }

#master {
  background-color: var(--color-background-master); }

#page-footer, .grid article, ul.person.card li {
  background-color: var(--background-secondary); }

#socket::before {
  background-color: var(--text-primary); }

#nav-service, #navi-main li ul, .ce.style2, div.style2.contacts, .ce.type-timeline dl::before, ul.control button[aria-expanded="true"], .ce.style1 a:not(:has(img)):hover, .ce.style1 button:hover, dialog#nav-mobile[open], dialog header {
  background-color: var(--color-accent-1); }

#navi-main li ul a:hover, #navi-main li ul a:focus {
  background-color: var(--color-accent-2); }

.ce.style2 a:not(:has(img)):hover, #navi-service a:hover, div.style2.contacts.style2 a:not(:has(img)):hover {
  background-color: var(--text-secondary); }

figcaption {
  background-color: var(--color-accent-3); }

body, main .ce header.news h2 {
  color: var(--text-primary); }

figcaption, ul.control button[aria-expanded="true"], .ce.style1 a:hover, button:not(#navi-main-show):hover, .splide__arrow:hover::before, button.v-control:hover::after {
  color: white; }

#nav-service, #navi-main li ul, .ce.style2, div.style2.contacts, .ce.style2 a:hover::before, dialog#nav-mobile[open] {
  color: var(--text-secondary); }

#navi-main-show::before, main .ce h2, button.v-control::after, .splide__arrow::before, button, [class*="num"] > .wrapper::before, [class*="num"] .text::before, dl span, .ce.style1 h3, .ce.style2 a:hover, .ce.style1 a:hover::before, div.style2.contacts.style2 a:hover, figcaption.small button::before, form select, #navi-service a:hover span, .LoginRegisterPro .LoginRegisterMessage {
  color: var(--color-accent-1); }

form.person-filter select, form.person-filter input, button.v-control, button.splide__arrow, button, .ce.type-timeline dl dt span, .ce.type-timeline dl dt span::after, .type-research_areas ul.control {
  border-color: var(--color-accent-1) !important; }

form input, form textarea {
  border-color: var(--color-accent-3) !important; }

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

  src: url(/site/templates/fonts/noto-sans/NotoSans-Light.woff2); }

@font-face {
  font-family: "NotoSans Regular";

  src: url(/site/templates/fonts/noto-sans/NotoSans-Regular.woff2); }

@font-face {
  font-family: "NotoSans SemiBold";

  src: url(/site/templates/fonts/noto-sans/NotoSans-SemiBold.woff2); }

@font-face {
  font-family: "NotoSans Bold";

  src: url(/site/templates/fonts/noto-sans/NotoSans-Bold.woff2); }

@font-face {
  font-family: "NotoSans ExtraBold";

  src: url(/site/templates/fonts/noto-sans/NotoSans-ExtraBold.woff2); }

@font-face {
  font-family: "NotoSans Black";

  src: url(/site/templates/fonts/noto-sans/NotoSans-Black.woff2); }

@font-face {
  font-family: "MDIF";

  src: url(/site/templates/fonts/mdi_filled/MaterialIcons-Regular.woff2); }

@font-face {
  font-family: "CI";

  src: url(/site/templates/fonts/customicons/iconsv1-Regular.woff2); }

.ce header * span, [itemprop="jobTitle"] {
  font-family: "NotoSans Light", sans-serif; }

body, .grid article header time {
  font-family: "NotoSans Regular", sans-serif; }

#bread-crumbs, a.read-more, form label, .Inputfield:not(.InputfieldCheckbox) label, .card [itemprop="jobTitle"], .card [itemprop="memberOf"] {
  font-family: "NotoSans SemiBold", sans-serif; }

#nav-service a.active, #navi-service a[aria-current="page"], ul.menu > li > a, #socket h2, header time, .grid article h3, .grid article h4, .grid article h5, main .ce h4, main .ce h5, main .ce h6, table th, tbody td::before, tbody th::before, .ce button, strong, dl span, [itemprop="name"] {
  font-family: "NotoSans Bold", sans-serif; }

main .ce h3, main .ce header.news h2 {
  font-family: "NotoSans ExtraBold", sans-serif; }

.ce h2, [class*="num"] > .wrapper::before, [class*="num"] .text::before {
  font-family: "NotoSans Black", sans-serif; }

#nav-main a::after, #nav-service a::before, #nav-service li::before, #navi-service-mobile a::before, #navi-service-mobile li::before, #bread-crumbs li::after, #navi-main-show::before, .v-control::after, a.read-more::before, a.extern::before, a.login::before, a.logout::before, .splide__arrow::before, tbody *:not(td):not(th)::before, div.contacts *::before, [itemprop]::before, ul#navi-main-mobile a[aria-expanded] span::after, figcaption.small button::before {
  font-family: "CI", sans-serif; }

#nav-service {
  font-size: 1.2rem; }

#navi-main-show span, .v-control::after, a.extern::before, figcaption {
  font-size: 1.4rem; }

#nav-service a::before, #nav-service li::before {
  font-size: 2.2rem; }

body {
  font-size: clamp(1.4rem, 2vw, 2rem); }

dialog {
  font-size: 2rem; }

.grid article h3, .grid article h4, .grid article h5, main .ce h4, main .ce h5, main .ce h6, table thead th, tbody *::before, button[type="submit"], ul.control button, [itemprop="name"] {
  font-size: clamp(2rem, 2vw, 3rem); }

#navi-main-show::before {
  font-size: 3.6rem; }

figcaption.small button::before {
  font-size: 2.4rem; }

main .ce h3, main .ce header.news h2, .splide__arrow::before, dl span {
  font-size: clamp(3rem, 4vw, 5rem); }

main .ce h2, main .ce h2 span, [class*="num"] > .wrapper::before, [class*="num"] .text::before {
  font-size: clamp(4rem, 5vw, 10rem); }

main .ce.highlight h2 {
  font-size: clamp(6rem, 9vw, 12rem); }

p.phone::before, a.phone::before, [itemprop="telephone"]::before {
  content: "\E007"; }

p.mail::before, a.mail::before, [itemprop="email"]::before {
  content: "\E003"; }

a.search::before {
  content: "\E00A"; }

a.easy-language::before {
  content: "\E001"; }

li.switch_language::before, [itemprop="sameAs"]::before {
  content: "\E004"; }

#bread-crumbs li:not(:last-child)::after, .splide__arrow::before {
  content: "\E000"; }

#navi-main-show::before {
  content: "\E00D"; }

td time::before {
  content: "\E012"; }

span.job-type::before {
  content: "\E011"; }

p.location::before, span.location::before, [itemprop="address"]::before {
  content: "\E005"; }

.v-control::after {
  content: "\E008"; }

.v-control.pause::after {
  content: "\E006"; }

a.read-more::before {
  content: "\E00C"; }

a.extern::before {
  content: "\E00B"; }

a.login::before {
  content: "\E014"; }

a.logout::before {
  content: "\E015"; }

figcaption.small button::before {
  content: "\E013"; }

.ce p:not(:last-child), .ce ul:not(:last-child), .ce ol:not(:last-child), .ce h4, .ce h5, .ce h6, .ce table:not(:last-child), .ce ul:not(.gallery):not(.person):not(.control) li {
  margin-bottom: clamp(1.4rem, 2vw, 3rem); }

header + p:has(a.read-more) {
  margin-top: 1rem; }

.ce h2, .ce h3 {
  margin-bottom: clamp(3rem, 3vw, 5rem); }

#socket h2 {
  margin-bottom: 1rem; }

main .ce ul:not(.gallery):not(.person):not(.control):not(.social-channels) {
  margin-left: 3rem; }

*:focus {
  outline-offset: 0px;
  outline-style: dashed;
  outline-width: 3px;
  outline-color: currentColor; }

*:hover:focus {
  outline-width: 0; }

[data-cols]:not([data-slideshow="1"]) {
  gap: 1rem; }
  [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"]) {
    display: grid;
    grid-template-columns: 1fr; }
  @media screen and (min-width: 60em) {
    [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"]):not([data-cols="1"]) {
      grid-template-columns: repeat(2, 1fr); } }
  @media screen and (min-width: 94em) {
    [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="2"] {
      grid-template-columns: repeat(2, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="3"] {
        grid-template-columns: repeat(3, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="4"] {
        grid-template-columns: repeat(4, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="5"] {
        grid-template-columns: repeat(5, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="6"] {
        grid-template-columns: repeat(6, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="7"] {
        grid-template-columns: repeat(7, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="8"] {
        grid-template-columns: repeat(8, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="9"] {
        grid-template-columns: repeat(9, 1fr); }
      [data-cols]:not([data-slideshow="1"]):not([data-cols="inline"])[data-cols="10"] {
        grid-template-columns: repeat(10, 1fr); } }
  [data-cols]:not([data-slideshow="1"])[data-cols="inline"] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; }
  [data-cols]:not([data-slideshow="1"])[data-gap="0"] {
    gap: 0; }
  @media screen and (min-width: 60em) {
  [data-cols]:not([data-slideshow="1"])[data-gap="5"] {
    gap: 0.5rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="10"] {
    gap: 1rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="15"] {
    gap: 1.5rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="20"] {
    gap: 2rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="30"] {
    gap: 3rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="40"] {
    gap: 4rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="50"] {
    gap: 5rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="60"] {
    gap: 6rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="75"] {
    gap: 7.5rem; }
  [data-cols]:not([data-slideshow="1"])[data-gap="100"] {
    gap: clamp(4rem, 4vw, 10rem); } }
  [data-cols]:not([data-slideshow="1"]) img {
    max-width: 100%;
    height: auto; }

dialog[open] {
  z-index: 1000;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  max-width: none;
  height: 100vh;
  max-height: none;
  background-color: rgba(0, 0, 0, 0.7);
  display: flex; }
  dialog[open] > div {
    width: auto;
    min-width: 100%;
    height: 100dvh;
    overflow: auto;
    padding: 13rem 0 5rem; }
  dialog[open] div.wrapper {
    margin: auto;
    max-width: var(--width-default); }
  dialog[open] header {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    padding: 2.5rem 2rem;
    display: flex;
    justify-content: space-between; }
  dialog[open] header img {
    order: 1;
    width: 12rem; }
  dialog[open] header button {
    order: 2; }
  dialog[open] button {
    background: none;
    border: none;
    text-transform: none;
    min-width: 0;
    padding: 0;
    width: auto;
    border-radius: 0;
    border: none;
    color: white;
    display: flex;
    align-items: center;
    gap: 1rem;
    z-index: 100; }
  dialog[open] button::after {
    font-family: "MDIF";
    content: "close";
    font-size: 2rem;
    border-radius: 50%;
    line-height: 100%;
    padding: 0.3rem;
    border: 2px solid white; }
  dialog[open] ul#navi-main-mobile {
    margin-bottom: 6.5rem; }
  dialog[open] ul#navi-main-mobile a {
    display: flex;
    padding: 2rem 4.5rem 1rem;
    text-decoration: none; }
  dialog[open] ul#navi-main-mobile a[aria-expanded="true"] span, dialog[open] ul#navi-main-mobile a:hover span {
    border-bottom: 1px solid white; }
  dialog[open] ul#navi-main-mobile a[aria-expanded] span {
    padding: 1rem 3rem 0.5rem 0; }
    dialog[open] ul#navi-main-mobile a[aria-expanded] span::after {
      content: "\E000";
      transform-origin: center;
      transform: translateY(-50%) rotate(-90deg);
      position: absolute;
      top: 50%;
      right: 0rem; }
  dialog[open] ul#navi-main-mobile a[aria-expanded="true"] span::after {
    transform: translateY(-50%) rotate(90deg); }
  dialog[open] ul#navi-main-mobile li ul a::after {
    content: "";
    position: absolute;
    left: 2.5rem;
    right: 2.5rem;
    bottom: 0;
    border-bottom: 1px solid white; }
  dialog[open] ul#navi-main-mobile a:not([aria-expanded="true"]) + ul {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  dialog[open] ul#navi-service-mobile {
    margin: 0 0 0 2.5rem !important;
    padding: 0 !important;
    display: block !important; }
  dialog[open] ul#navi-service-mobile span {
    font-size: 1.2rem; }
  dialog[open] ul#navi-service-mobile li {
    margin-bottom: 2rem; }

@keyframes slideInFromRight {
  0% {
    transform: translateX(100%); }

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

@keyframes fadeIn {
  0% {
    opacity: 0; }

  100% {
    opacity: 1; } }

.ce .wrapper, .ce header.default {
  margin: auto;
  max-width: var(--width-default); }
  .ce.xwide .wrapper, .ce header.xwide .wrapper {
    max-width: var(--width-xwide); }
  .ce.wide .wrapper, .ce header.wide .wrapper {
    max-width: var(--width-wide); }
  .ce.narrow .wrapper, .ce header.narrow .wrapper {
    max-width: var(--width-narrow); }
  .ce.full .wrapper, .ce header.full .wrapper {
    max-width: var(--width-master); }
  @media screen and (max-width: 120em) {
    .ce.full .wrapper, .ce header.full .wrapper {
      max-width: 100vw; } }
  .ce header span {
    display: block; }
  .ce header > .wrapper {
    padding: 0 2rem; }
  .ce > .wrapper {
    padding-left: 2rem;
    padding-right: 2rem;
    padding-top: var(--space-default);
    padding-bottom: var(--space-default); }
  .ce.header, .type-columns .ce {
    padding-top: var(--space-default); }
  .ce.after-none > .wrapper, .ce.type-stopper {
    padding-bottom: 0; }
  .ce.type-stopper {
    padding-bottom: 0; }
  .ce.before-none.header, .ce.before-none > .wrapper, .type-columns .ce.before-none {
    padding-top: 0; }
  .ce.before-xsmall.header, .ce.before-xsmall > .wrapper, .type-columns .ce.before-xsmall {
    padding-top: var(--space-xsmall); }
  .ce.after-xsmall > .wrapper {
    padding-bottom: var(--space-xsmall); }
  .ce.before-small.header, .ce.before-small > .wrapper, .type-columns .ce.before-small {
    padding-top: var(--space-small); }
  .ce.after-small > .wrapper {
    padding-bottom: var(--space-small); }
  .ce.before-big.header, .ce.before-big > .wrapper, .type-columns .ce.before-big {
    padding-top: var(--space-big); }
  .ce.after-big > .wrapper {
    padding-bottom: var(--space-big); }
  .ce.header > .wrapper {
    padding-top: 0 !important; }
  .ce.type-columns .ce .wrapper, .ce.type-text_image .element:not(.under):not(.above) .text header .wrapper {
    padding-left: 0;
    padding-right: 0; }
  .ce.full > .wrapper {
    padding-left: 0;
    padding-right: 0; }
  .ce .element {
    container-type: inline-size; }

.accordion details > *:last-child {
  margin-bottom: 3rem !important; }
  .accordion details summary {
    list-style: none;
    padding: 3rem 6rem 3rem 0;
    cursor: pointer;
    border-top-style: solid;
    border-top-width: 2px; }
  .accordion details summary::-webkit-details-marker {
    display: none; }
  .accordion details summary h2, .accordion details summary h3, .accordion details summary h4 {
    text-align: left;
    margin-bottom: 0; }
  .accordion details summary::after {
    font-family: "MDIF";
    content: "add";
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 3.5rem; }
  .accordion details[open] summary::after {
    content: "remove"; }
  .accordion details:last-of-type {
    border-bottom-style: solid;
    border-bottom-width: 2px; }
  .accordion details section.ce {
    padding: 0 !important; }

.tabbed {
  width: 100%;
  position: relative;
  justify-content: center;
  display: flex;
  flex-wrap: wrap; }
  .tabbed details {
    display: contents; }
  .tabbed details > div {
    order: 1;
    width: 100%; }
  .tabbed summary {
    position: sticky;
    top: 0;
    list-style: none;
    padding: 2rem 2rem 1.5rem;
    min-width: 30rem;
    cursor: pointer;
    text-align: center;
    margin: 0 0.5rem; }
  .tabbed summary::-webkit-details-marker {
    display: none; }

.type-persons span {
  line-height: normal; }
  .type-persons [itemprop="name"] {
    display: block; }
  .type-persons [itemprop="sameAs"], .type-persons [itemprop="address"], .type-persons [itemprop="telephone"], .type-persons [itemprop="email"] {
    margin-left: 3rem;
    display: block; }
  .type-persons [itemprop="sameAs"]::before, .type-persons [itemprop="address"]::before, .type-persons [itemprop="telephone"]::before, .type-persons [itemprop="email"]::before {
    position: absolute;
    left: -3rem;
    top: 0.5rem; }
  .type-persons figure {
    margin: auto;
    text-align: center; }
  .type-persons img {
    width: 30rem;
    border-radius: 50%; }
  .type-persons ul.highlight [itemprop="name"], .type-persons ul.highlight [itemprop="jobTitle"], .type-persons ul.highlight .title {
    text-align: center;
    width: 100%;
    display: inline-block; }
  .type-persons ul.highlight .title {
    margin-top: 3rem; }
  .type-persons ul.highlight [itemprop="jobTitle"] {
    display: block; }
  .type-persons ul.highlight [itemprop="jobTitle"] {
    margin-bottom: 4rem; }
  .type-persons ul.card li {
    border-radius: 1.5rem;
    padding: 3rem; }
  .type-persons ul.card li[data-role="5985"] {
    border: 5px solid #2276ab; }
  .type-persons ul.card li > div {
    padding-right: 13rem; }
  .type-persons ul.card figure {
    position: absolute;
    right: 0;
    top: 0; }
  .type-persons ul.card figure img {
    width: 12rem; }
  .type-persons [itemprop="memberOf"] {
    display: flex;
    width: min-content;
    gap: 1rem;
    /*
     &::before {
     content: "";
     position: absolute;
     left: 1rem;
     top: .5rem;
     bottom: .5rem;
     border-left: 2px solid black;
     }
     */ }
  .type-persons [itemprop="memberOf"] span {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    justify-content: center;
    align-content: center;
    background-color: black;
    color: white;
    border-radius: 50%; }
  .type-persons div.group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-top: -2rem; }
  .type-persons div.group > * {
    width: 100%; }
  .type-persons div.comm {
    margin-top: 2.4rem; }
  .type-persons div.comm br {
    display: none; }
  .type-persons div.comm a, .type-persons div.comm span, .type-persons div.comm div {
    margin-bottom: 2rem; }
  .type-persons ul.ra-list, .type-persons ul.ni-list {
    display: flex;
    gap: 6rem; }
  .type-persons ul.ra-list li::before, .type-persons ul.ni-list li::before {
    transform: translateX(-120%);
    content: attr(data-id);
    text-align: center;
    color: white; }

.map {
  height: 40vh; }

form .Inputfield {
  margin: 0 0 3rem; }
  form label {
    display: block;
    margin-bottom: 0.5rem; }
  form input:not([type="checkbox"]), form select, form textarea {
    width: 100%;
    display: block;
    border: 1px solid black; }
  form .InputfieldCheckbox > label {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  form .InputfieldCheckbox .InputfieldContent label {
    padding-left: 3rem; }
  form .InputfieldCheckbox .InputfieldContent label input {
    position: absolute;
    left: 0;
    top: 0.8rem;
    transform: scale(2); }

.ce.type-menu ul {
  margin-bottom: 0; }

.type-gallery img {
  display: block;
  width: 100%;
  max-width: none; }
  .type-gallery.logos li, .type-gallery.logos a {
    display: flex; }
  .type-gallery.logos img {
    width: auto !important;
    max-width: 75vw; }
  .type-gallery.logos a {
    padding: 2rem; }
  .type-gallery a {
    text-decoration: none; }

.type-text_image div.element {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  /*
   &.right,
   &.under {
   div.media {
   order: 2;
   }
   }
   */ }
  .type-text_image div.element[data-gap="0"] {
    gap: 0; }
  .type-text_image div.element div.media {
    display: flex;
    justify-content: center; }
  .type-text_image div.element div.media img, .type-text_image div.element div.media a {
    display: block; }
  .type-text_image div.element div.media p {
    margin-bottom: 0; }
  .type-text_image div.element div.media {
    order: 2; }
  @media screen and (min-width: 60em) {
    .type-text_image div.element {
      grid-template-columns: repeat(10, 1fr); }
      .type-text_image div.element div.media, .type-text_image div.element div.text {
        grid-column: span 10; }
      .type-text_image div.element.left div.media, .type-text_image div.element.before div.media {
        order: 1; }
        .type-text_image div.element.left div.text, .type-text_image div.element.before div.text {
          order: 2; }
      .type-text_image div.element.left.r5050 div.media, .type-text_image div.element.right.r5050 div.media, .type-text_image div.element.left_inline.r5050 div.media, .type-text_image div.element.right_inline.r5050 div.media, .type-text_image div.element.left.r5050 div.text, .type-text_image div.element.right.r5050 div.text, .type-text_image div.element.left_inline.r5050 div.text, .type-text_image div.element.right_inline.r5050 div.text {
        grid-column: span 5; }
        .type-text_image div.element.left.r4060 div.media, .type-text_image div.element.right.r4060 div.media, .type-text_image div.element.left_inline.r4060 div.media, .type-text_image div.element.right_inline.r4060 div.media {
          grid-column: span 4; }
          .type-text_image div.element.left.r4060 div.text, .type-text_image div.element.right.r4060 div.text, .type-text_image div.element.left_inline.r4060 div.text, .type-text_image div.element.right_inline.r4060 div.text {
            grid-column: span 6; }
        .type-text_image div.element.left.r3070 div.media, .type-text_image div.element.right.r3070 div.media, .type-text_image div.element.left_inline.r3070 div.media, .type-text_image div.element.right_inline.r3070 div.media {
          grid-column: span 3; }
          .type-text_image div.element.left.r3070 div.text, .type-text_image div.element.right.r3070 div.text, .type-text_image div.element.left_inline.r3070 div.text, .type-text_image div.element.right_inline.r3070 div.text {
            grid-column: span 7; }
        .type-text_image div.element.left.r2080 div.media, .type-text_image div.element.right.r2080 div.media, .type-text_image div.element.left_inline.r2080 div.media, .type-text_image div.element.right_inline.r2080 div.media {
          grid-column: span 2; }
          .type-text_image div.element.left.r2080 div.text, .type-text_image div.element.right.r2080 div.text, .type-text_image div.element.left_inline.r2080 div.text, .type-text_image div.element.right_inline.r2080 div.text {
            grid-column: span 8; }
        .type-text_image div.element.left.r6040 div.media, .type-text_image div.element.right.r6040 div.media, .type-text_image div.element.left_inline.r6040 div.media, .type-text_image div.element.right_inline.r6040 div.media {
          grid-column: span 6; }
          .type-text_image div.element.left.r6040 div.text, .type-text_image div.element.right.r6040 div.text, .type-text_image div.element.left_inline.r6040 div.text, .type-text_image div.element.right_inline.r6040 div.text {
            grid-column: span 4; }
        .type-text_image div.element.left.r7030 div.media, .type-text_image div.element.right.r7030 div.media, .type-text_image div.element.left_inline.r7030 div.media, .type-text_image div.element.right_inline.r7030 div.media {
          grid-column: span 7; }
          .type-text_image div.element.left.r7030 div.text, .type-text_image div.element.right.r7030 div.text, .type-text_image div.element.left_inline.r7030 div.text, .type-text_image div.element.right_inline.r7030 div.text {
            grid-column: span 3; }
        .type-text_image div.element.left.r8020 div.media, .type-text_image div.element.right.r8020 div.media, .type-text_image div.element.left_inline.r8020 div.media, .type-text_image div.element.right_inline.r8020 div.media {
          grid-column: span 8; }
          .type-text_image div.element.left.r8020 div.text, .type-text_image div.element.right.r8020 div.text, .type-text_image div.element.left_inline.r8020 div.text, .type-text_image div.element.right_inline.r8020 div.text {
            grid-column: span 2; }
      .type-text_image div.element[data-gap="5"] {
        gap: 0.5rem; }
      .type-text_image div.element[data-gap="10"] {
        gap: 1rem; }
      .type-text_image div.element[data-gap="15"] {
        gap: 1.5rem; }
      .type-text_image div.element[data-gap="20"] {
        gap: 2rem; }
      .type-text_image div.element[data-gap="30"] {
        gap: 3rem; }
      .type-text_image div.element[data-gap="50"] {
        gap: 5rem; }
      .type-text_image div.element[data-gap="100"] {
        gap: 10rem; } }
  @media screen and (min-width: 60em) {
  .type-text_image.img-right div.element div.media {
    justify-content: flex-end;
    align-items: center; } }
  .type-text_image .TextformatterVideoEmbed {
    width: 100%; }

.type-stopper div.element {
  text-align: center;
  opacity: 0.1; }
  .type-stopper div.element img {
    width: 20rem;
    padding: 0 2rem; }
  .type-stopper div.element::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    border-top: 3px dashed black;
    transform: translateY(-50%); }

div.contacts {
  border-radius: 1.5rem;
  padding: 2.5rem 4rem; }
  @container (width > 70rem) {
  div.contacts {
    display: grid; }
  div.contacts {
    grid-template-columns: repeat(2, 1fr); } }
  div.contacts > div {
    margin-bottom: 3.5rem; }
  div.contacts p {
    display: flex;
    gap: 2rem; }
  div.contacts p::before {
    transform: translateY(0.7rem); }
  div.contacts p span {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  div.contacts .social {
    grid-column: 1 / span 2; }
  div.contacts ul {
    grid-column: 1 / span 2;
    display: flex;
    gap: 2rem;
    margin-left: 0;
    list-style-type: none; }
  div.contacts ul span {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px; }
  div.contacts ul img {
    height: 3.5rem !important;
    width: auto; }

ul.downloads {
  margin-left: 0 !important; }
  ul.downloads li {
    list-style-type: none;
    list-style-image: none;
    margin-bottom: 2rem; }
  ul.downloads li a {
    margin-top: 0; }
  ul.downloads li a::before {
    background-image: url(/site/templates/images/icons/arrow-download.svg);
    transform: none; }
  ul.downloads li a:hover::before {
    background-image: url(/site/templates/images/icons/arrow-download-hover.svg); }
  ul.downloads li a span span {
    white-space: nowrap; }

.type-timeline div.element {
  padding: 5rem 0; }
  .type-timeline div.element::before, .type-timeline div.element::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    border-left: 5px dashed var(--color-accent-1);
    z-index: 0; }
  @media screen and (min-width: 60em) {
    .type-timeline div.element::before, .type-timeline div.element::after {
      left: 50%;
      transform: translateX(-50%); } }
  .type-timeline dl {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 2rem 0;
    z-index: 10; }
  .type-timeline dl dt {
    display: flex;
    align-items: flex-end; }
  .type-timeline dl dt span {
    width: 100%;
    border-bottom: 5px solid black;
    padding-bottom: 1rem;
    margin-bottom: 3rem;
    text-align: right;
    padding-right: 5rem; }
    .type-timeline dl dt span::after {
      content: "";
      position: absolute;
      bottom: 0;
      transform: translateY(50%);
      width: 3.4rem;
      height: 3.4rem;
      border: 5px solid black;
      border-radius: 50%;
      background-color: white;
      right: 0; }
  .type-timeline dl dd {
    margin-bottom: 8rem; }
  .type-timeline dl dd p {
    padding-left: 2rem; }
  .type-timeline dl img {
    max-width: 28rem; }
  .type-timeline dl::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background-color: black; }
  @media screen and (min-width: 60em) {
    .type-timeline dl {
      grid-template-columns: repeat(2, 1fr);
      padding: 6rem 0; }
      .type-timeline dl::before {
        left: 50%;
        transform: translateX(-50%); }
      .type-timeline dl dt:not(:first-child) {
        margin-top: -15rem; }
        .type-timeline dl dt span {
          padding-bottom: 2rem;
          margin-bottom: 5rem; }
      .type-timeline dl dd {
        margin-bottom: 0; }
      .type-timeline dl dt:nth-of-type(odd), .type-timeline dl dd:nth-of-type(odd) {
        grid-column: 2 / span 1; }
        .type-timeline dl dt:nth-of-type(odd) p, .type-timeline dl dd:nth-of-type(odd) p, .type-timeline dl dt:nth-of-type(odd) span, .type-timeline dl dd:nth-of-type(odd) span {
          padding-left: 6rem;
          text-align: left; }
          .type-timeline dl dt:nth-of-type(odd) p::after, .type-timeline dl dd:nth-of-type(odd) p::after, .type-timeline dl dt:nth-of-type(odd) span::after, .type-timeline dl dd:nth-of-type(odd) span::after {
            right: 0;
            left: auto; }
      .type-timeline dl dt:nth-of-type(even), .type-timeline dl dd:nth-of-type(even) {
        grid-column: 1 / span 1; }
        .type-timeline dl dt:nth-of-type(even) p:has(img), .type-timeline dl dd:nth-of-type(even) p:has(img), .type-timeline dl dt:nth-of-type(even) span, .type-timeline dl dd:nth-of-type(even) span {
          text-align: right; }
          .type-timeline dl dt:nth-of-type(even) p:has(img)::after, .type-timeline dl dd:nth-of-type(even) p:has(img)::after, .type-timeline dl dt:nth-of-type(even) span::after, .type-timeline dl dd:nth-of-type(even) span::after {
            left: 0;
            right: auto; }
        .type-timeline dl dt:nth-of-type(even) p, .type-timeline dl dd:nth-of-type(even) p, .type-timeline dl dt:nth-of-type(even) span, .type-timeline dl dd:nth-of-type(even) span {
          padding-right: 6rem; } }

#master {
  max-width: var(--width-master);
  min-height: 100vh;
  margin: auto;
  display: grid;
  grid-template-rows: auto 1fr auto; }
