*,*:before,*:after {
  box-sizing:border-box;
}
:root {
  --gray-dark: rgb(80,85,82);
  --gray: rgb(147,152,149);
  --gray-light: rgb(226,223,216);
  --gray-lighter: rgb(239,237,234);
  --gray-lightest: rgb(245,245,242);

  --red: rgb(165,47,51);
  --green: rgb(71,171,165);
  --green-light: rgb(135,209,205);

  --header-line-1: rgb(232,229,224);
  --header-line-2: rgb(238,236,232);
}
html {
  scroll-behavior: smooth;
}
body {
  margin:0;
  padding:0;
  background:#fff;
}
body,table,input,textarea,button,select {
  font-family:'Montserrat',arial,sans-serif;
  font-size:1rem;
  line-height:2.1818;
  color:var(--gray-dark);
}
h1,h2,h3,h4,h5,h6,p,ol,ul,dl,table,form,fieldset,object {
  margin:0 0 1.5rem 0;
}

article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary {
  display: block;
}

h1,.h1 {
  font-size:1.8181rem;
  line-height:1.3em;
  font-weight:600;
  color:var(--red);
}
h2,.h2 {
  font-size:1.25rem;
  line-height:1.3;
  font-weight:500;
  color:#000;
}
h3,.h3 {
  font-size:1.25rem;
  line-height:1.3;
  font-weight:500;
  color:var(--gray-dark);;
}
h4,.h4,
h5,.h5,
h6,.h6 {
  font-size:1.0909rem;
  line-height:1.3;
  font-weight:500;
  margin:0;
}
a:link {
  text-decoration:none;
  color:var(--gray-dark);
  transition: color .2s ease;
}
a:visited {
  color:var(--gray-dark);
}
a:hover {
  color:#000;
}
a:active {}

img {
  border:0;
  max-width:100%;
  height:auto;
}

table {
  border-spacing:1px;
}
table th,
table td {
  padding:.3em 1em .3em .3em;
  text-align:left;
  vertical-align:top;
  background:#fff;
}
table th {
  font-weight:600;
  vertical-align:bottom;
  background:#f5f4f2;
}

figure {
  margin:0 0 1.3em 0;
  padding:0;
}
figure img {
  display:block;
  width:100%;
  height:auto;
}
figure figcaption {
  margin:0;
  padding:.5em 0;
  font-style:italic;
  font-size:.875rem;
  line-height:1.6;
}
figure figcaption:empty {
  display:none;
}
@media only screen and (min-width : 580px) {
  figure {
    margin-top:2rem;
    margin-left:-1rem;
    margin-right:-1rem;
    display:flex;
  }
  figure .figure-image {
    flex:0 0 50%;
    max-width: 50%;
    padding:0 1rem;
  }
  figure figcaption {
    flex:0 0 50%;
    max-width: 50%;
    padding:0 1rem;
    align-self: flex-end;
  }
}


.highlight {
  margin:0 0 1.5rem 0;
  padding:1rem;
  background:#eee;
}
.uppercase {
  text-transform: uppercase;
  letter-spacing: .05em;
}


/* Grid
********************************/
:root {
  --gutter-x: 1.5rem;
  --gutter-y: 1.5rem;

  --header-padding: .5rem;
  --logo-height: 3.5rem;
  --header-height: calc((var(--header-padding) * 2) + var(--logo-height));

  --footer-padding:1.5rem;
}
@media only screen and (min-width : 768px) {
  :root {
    --gutter-x: 2rem;
    --gutter-y: 2rem;

    --header-padding: 1.5rem;
    --logo-height: 5rem;
    --footer-padding:1.5rem;
  }
}
@media only screen and (min-width : 1200px) {
  :root {
    --header-padding: 2.9090rem;
    --logo-height: 10.5rem;
    --logo-height:7rem;
    --footer-padding:3rem;
  }
}
@media only screen and (min-width : 1600px) {
  :root {
    --header-padding: 2.9090rem;
    --logo-height:9rem;
    --footer-padding:3rem;
  }
}
.container,
.container-fluid {
  padding:0 var(--gutter-x);
  margin:0 auto;
}
.row {
  margin-top: calc(var(--gutter-y) * -1);
  margin-right: calc(var(--gutter-x) * -.5);
  margin-left: calc(var(--gutter-x) * -.5);
  display: flex;
  flex-wrap: wrap;
}
.row > * {
  padding-right: calc(var(--gutter-x) * .5);
  padding-left: calc(var(--gutter-x) * .5);
  margin-top: var(--gutter-y);
}
@media only screen and (min-width : 768px) {
  .container {
    width:740px;
  }
}
@media only screen and (min-width : 992px) {
  html {
    /*font-size:18px;*/
  }
  .container {
    width:940px;
  }
}
@media only screen and (min-width : 1200px) {
  html {
    /*font-size:18px;*/
  }
  .container {
    width:1140px;
  }
}
@media only screen and (min-width : 1600px) {
  html {
    font-size:18px;
  }
  .container {
    width:1540px;
  }
}
@media only screen and (min-width : 2000px) {
  html {
    font-size:20px;
  }
  .container {
    width:1860px;
  }
}

/* Seitenelemente (Master)
********************************/
.site-header {
  background:#fff;
  border-bottom:solid var(--header-line-1) 1px;
  padding-top:var(--header-padding);
  padding-bottom:var(--header-padding);
}
.site-header > .container,
.site-header > .container-fluid {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.site-header-logo img {
  display:block;
  width:auto;
  height: var(--logo-height);
}
.site-nv-toggle {
  padding:.5rem;
  background:transparent;
  width:3rem;
  min-width: 0;
}
.site-nv-toggle svg {
  display:block;
  width:100%;
  height:auto;
}
.site-nv-toggle rect {
  fill:var(--gray-dark);
  transform-origin: center;
  transition: fill .2s ease, transform .2s ease, y .2s ease;
}
.site-nv-toggle:hover {
  background:transparent;
}
.site-nv-toggle:hover rect {
  fill:#000;
}
.site-nv-toggle[aria-expanded=true] rect:nth-child(1),
.site-nv-toggle[aria-expanded=true] rect:nth-child(4) {
  y: 14;
  fill: transparent;
}
.site-nv-toggle[aria-expanded=true] rect:nth-child(2) {
  transform:rotate(45deg);
}
.site-nv-toggle[aria-expanded=true] rect:nth-child(3) {
  transform:rotate(-45deg);
}



.site-nv {
  /*display:none;*/
}
.site-nv ul {
  margin:0;
  padding:0;
  list-style: none;
}
.site-nv li {
  margin:0;
  padding:0;
}
.site-nv a {
  display:block;
  position: relative;
  font-size:1.2727rem;
  font-size:1.125rem;
  font-weight: 500;
  color:var(--gray-dark);
  padding-left:1rem;
  transition: color .2s ease;
}
.site-nv a:hover {
  color:#000;
}
.site-nv a::before {
  position: absolute;
  left:0;
  top:50%;
  transform:translate(0, -50%);
  content:'';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: .375rem 0 .375rem .375rem;
  border-color: transparent transparent transparent var(--green-light);
  transition:border-color .2s ease;
}
.site-nv a:hover::before {
  border-color: transparent transparent transparent var(--green);
}
.site-nv .a1 > a {
  color:#000;
  text-decoration: none;
}
.site-nv .a1 > a::before {
  border-width: .375rem .375rem 0 .375rem;
  border-color: var(--red) transparent transparent transparent;
}

.site-main {
  border-top:solid var(--header-line-2) 2px;
  border-bottom: solid var(--header-line-2) 2px;
}
.site-footer {
  background:#fff;
  border-top:solid var(--header-line-1) 1px;
  font-weight:300;
  color:var(--gray);
  padding-top:var(--footer-padding);
  padding-bottom: var(--footer-padding);
}
.site-footer a {
  color:var(--gray);
}
.site-footer a:hover {
  color:var(--gray-dark);
}
.site-footer-contact > * {
  margin-right:1.5rem;
}
.site-footer-contact a > span {
  margin-right:.375rem;
}
.site-footer-meta {
  display: flex;
  flex-wrap: nowrap;
}
.site-footer-meta > * {
  margin-right:1.5rem;
}
.site-footer-meta a {
  position: relative;
  padding-left:1rem;
}
.site-footer-meta a::before {
  position: absolute;
  left:0;
  top:50%;
  transform:translate(0, -50%);
  content:'';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: .375rem 0 .375rem .375rem;
  border-color: transparent transparent transparent var(--green-light);
  transition:border-color .2s ease;
}
.site-footer-meta a:hover::before {
  border-color: transparent transparent transparent var(--green);
}
.site-toplink-container {
  position: fixed;
  left:0;
  right:0;
  bottom:0;
}
.site-toplink {
  display:block;
  position: absolute;
  right: var(--gutter-x);
  bottom:0;
  background:var(--gray);
  color:#fff;
  width:2.909rem;
  height:2.1818rem;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background .2s ease;
}
.site-toplink:hover {
  background:var(--gray-dark);
}
.site-toplink svg {
  display:block;
  transform-origin: 50% 50%;
  transition:transform .2s ease;
}
.site-toplink.to-top svg {
  transform:rotate(180deg);
}

@media only screen and (max-width : 991px) {
  .site-footer-contact {
    margin-bottom:1rem;
  }
  .site-footer-contact > * {
    display:block;
  }
}
/*@media only screen and (max-width : 1199px) {*/
@media only screen and (max-width : 991px) {
  .site-header-logo {
    position: relative;
    z-index: 2;
  }
  .site-nv-toggle {
    position: relative;
    z-index: 2;
  }
  .site-nv {
    position: fixed;
    z-index: 1;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(255,255,255,.95);
    opacity:0;
    visibility: hidden;
    padding-top: calc(var(--header-height) + 2rem);
    padding-bottom:4rem;
    padding-left:2rem;
    padding-right:2rem;
    display:flex;
    justify-content: center;
    align-items: center;
    transition:opacity .2s ease, visibility .2s ease;
  }
  .site-nv > ul {
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  .site-nv[aria-expanded=true] {
    opacity:1;
    visibility: visible;
  }
}
/*@media only screen and (min-width : 1200px) {*/
@media only screen and (min-width : 992px) {
  .site-nv-toggle {
    display: none;
  }
  .site-nv {
    display:block !important;
  }
  .site-nv ul {
    display:flex;
  }
  .site-nv li {
    margin-left:1.5rem;
  }

  .site-footer > .container,
  .site-footer > .container-fluid {
    display:flex;
    justify-content: space-between;
  }
  .site-footer-meta > * {
    margin-left:1.5rem;
    margin-right: 0;
  }
}
@media only screen and (min-width : 1200px) {
  .site-nv a {
    font-size:1.2727rem;
    font-size:1.1rem;
  }
}