*,*:before,*:after {
  box-sizing:border-box;
}

:root {
  --red: #a81616;
  --red-dark: #871212;
  --gray-light: #f0f0f0;
  --gray: #ccc;
  --gray-medium: #999;
  --gray-dark: #323232;
  --beige: #f0e6da;
  --beige-light: #f5f4f2;
  --beige-dark: #ab916f;
  --beige-medium: #eee9e2;

  --font-h1: 700 1.75rem/1.3 'Playfair Display', serif;
  --font-h2: 700 1.222rem/1.3  'Playfair Display', serif;
  --section-padding: 4rem;
  --container-width: 100%;

  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: var(--bs-gutter-x);
}

.row {
  --bs-gutter-y: var(--bs-gutter-x);
}

@media only screen and (min-width : 576px) {
  :root {
    --container-width: 540px;
  }
}
@media only screen and (min-width : 768px) {
  :root {
    --container-width: 720px;
  }
}
@media only screen and (min-width : 992px) {
  :root {
    --container-width: 960px;
    --font-h1: 700 2.5rem/1.3 'Playfair Display', serif;
  }
}
@media only screen and (min-width : 1200px) {
  :root {
    --container-width: 1140px;
  }
  html {
    font-size: 18px;
  }
}
@media only screen and (min-width : 1400px) {
  :root {
    --container-width: 1320px;
  }
}
body {
  margin:0;
  padding:0;
  background:#fff;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body,table,input,textarea,button,select {
  font-family:'Mulish',arial,sans-serif;
  font-weight: 300;
  font-size:1rem;
  line-height:1.6667;
  color:#000;
}
h1,h2,h3,h4,h5,h6,p,ol,ul,dl,table,form,fieldset,object {
  margin:0 0 1.3rem 0;
}

h1,.h1 {
  font: var(--font-h1);
  margin-bottom: 1.5rem;
}
h2,.h2 {
  font: var(--font-h2);
  margin-bottom:1rem;
  }
h3,.h3 {
  font-size:1.2222rem;
  line-height:1.3;
  font-weight: 700;
  margin-bottom:.5rem;
}
h4,.h4,
h5,.h5,
h6,.h6 {
  font-size:1rem;
  line-height:1.3;
  font-weight: 700;
  margin-bottom:0;
}
ul li::marker {
  color: var(--beige-dark);
}
b,strong {
  font-weight: 700;
}

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

[data-link]:not([data-link=""]) {
  cursor:pointer;
}

.red {
  color: var(--red);
}

/* Seitenelemente (Master)
********************************/
.site-header {
  position: sticky;
  top:0;
  z-index: 1020;
  background-color: #fff;
}
.site-header__observe {
  position: absolute;
  left: 0;
  top: 8rem;
  width: 1px;
  height: 5rem;
}
.site-header .navbar {
  padding-top:.5rem;
  padding-bottom:.5rem;
  transition:padding .2s ease;
}
.site-header .navbar-brand {
  padding:0;
  font-size:1rem;
  width:5.625rem;
  width: 7.5rem;
}
.site-header .navbar-brand img {
  display: block;
  width: 100%;
  height:auto;
  /*
  transition:width .2s ease, height .2s ease;
  */
}
.site-header .navbar-brand__cropper {
  height: 0;
  overflow: hidden;
  padding-bottom: 51.875%;
  transition: padding-bottom .2s ease;
}
.site-header .navbar-toggler {
  border:0;
  border-radius: 0;
  background:transparent;
  padding:.5rem;
  width:3rem;
  height:3rem;
}
.site-header .navbar-toggler:hover {
  background:transparent;
}

/* Menu icon animated */
.site-header .navbar-toggler svg rect {
  transition: .25s ease-in-out;
  transform-origin: 50% 50%;
}
.site-header .navbar-toggler[aria-expanded=true] svg rect:nth-child(1) {
  transform:translate(0, 9px) scale(0,1);
  /*width:0;*/
}
.site-header .navbar-toggler[aria-expanded=true] svg rect:nth-child(2) {
  transform: rotate(45deg);
}
.site-header .navbar-toggler[aria-expanded=true] svg rect:nth-child(3) {
  transform: rotate(-45deg);
}
.site-header .navbar-toggler[aria-expanded=true] svg rect:nth-child(4) {
  transform:translate(0, -9px) scale(0,1);
  /*width:0;*/
}

/* fixed header, anchor offset */
:target::before {
  /*content: '';*/
  /*display: block;*/
  /*height:      5.1944rem;*/
  /*margin-top: -5.1944rem;*/
  /*position: relative;*/
  /*top: -5.1944rem;*/
}
.site-nv {
  font-weight:400;
  align-items: center;
}
.site-nv__item {
  position: relative;
}
.site-nv__item a {
  display:block;
  padding:.5rem 0;
  color:var(--copy);
  transition:color .2s ease;
}
.site-nv__item a:hover:not(.btn),
.site-nv__item li:hover > a:not(.btn) {
  color:var(--red);
  text-decoration: none;
}
.site-nv__toggle {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 2.6667rem;
  padding:.5rem;
  border:0;
  margin: 0;
  background: transparent;
  text-align: right;
}
.site-nv__toggle span {
  transition: transform .2s ease;
}
.site-nv__toggle[aria-expanded="true"] > span {
  transform: rotate(180deg);
}
.site-nv__item.id-40 {
  display: none;
}
.site-nv .a1 > a,
.site-nv .s1 > a {
  color:var(--red);
}
.site-nv ul ul {
  /*display:none;*/
  display:block;
  overflow:hidden;
}
.site-nv ul ul ul {
  display:none;
  max-height: 0;
}

.site-nv .btn {
  min-width:9rem;
}
@media only screen and (max-width : 991px) {
  .site-nv > ul {
    margin-bottom: 1rem;
  }
  .site-nv > ul > li {
    border-bottom: 1px solid var(--gray-light);
  }
  .site-nv__item.id-40 {
    display: block;
  }
  /*
  .site-nv ul ul {
    padding-left: 2rem;
  }
  .site-nv ul ul li {
    list-style: disc;
  }
  */
}
@media only screen and (min-width : 992px) {
  .site-header .navbar {
    padding-top:1rem;
    padding-bottom:1rem;
  }
  .site-header .navbar > .container {
    align-items: flex-start;
  }
  .site-header .navbar-brand {
    width:10rem;
  }
  .site-header.reduced .navbar-brand__cropper {
    padding-bottom: 31.25%;
  }
  .site-header .navbar-collapse {
    flex-grow:0;
  }
  .site-nv {
    text-align:right;
    transition:padding .2s ease;
    gap: 2rem;
    align-items: flex-start;
    margin-top: .8889rem;
    margin-top: 1.1875rem;
    transition: margin-top .2s ease;
  }
  .site-header.reduced .site-nv {
    margin-top: 0.1667rem;
  }
  .site-nv .navbar-nav {
    align-items: flex-start;
  }
  .site-nv li {
    margin-left:2rem;
  }
  .site-nv__toggle {
    display: none;
  }
  .site-nv ul ul {
    /*padding-top:.5rem;*/
    display: block !important;
    max-height:0;
    max-width:0;
    opacity: 0;
    transition:max-height .5s ease, max-width .5s ease, opacity .5s ease;
  }
  .site-nv ul ul li {
    margin-left:0;
    text-align: right;
  }
  .site-nv ul ul a {
    padding-top:0;
    padding-bottom:0;
  }

  .site-nv .type-category.id-27:hover > ul,
  .site-nv .type-category.id-50:hover > ul {
    max-height:7rem;
    overflow:visible;
    opacity: 1;
  }
}
@media only screen and (min-width : 1400px) {
  .site-header .navbar-brand {
    width:16.667rem;
  }
  .site-nv {
    margin-top: 2.9444rem;
  }
  .site-header.reduced .site-nv {
    margin-top: 1.2222rem;
  }
  .site-nv__item.id-40 {
    display: list-item;
  }
}

.site-banner {
  display: grid;
}
.site-banner__image {
  grid-area: 1/-1;
}
.site-banner__image img {
  display:block;
  width: 100%;
  height: auto;
}
.site-banner__slogans {
  grid-area: 1/-1;
  color: #fff;
  margin-left: 62%;
  margin-top: 7%;
  width: 21%;
}
.site-banner__slogan:first-child {
  font: 500 3.5vw/1.125 'Playfair Display', serif;
  margin-bottom: 1.3vw;
}
.site-banner__slogan:nth-child(2) {
  font-size: 1rem;
  line-height:1.2;
  display: none;
}
@media only screen and (min-width : 992px) {
  .site-banner__slogan:nth-child(2) {
    display: block;
  }
  
}

.site-footer {
  background: var(--red);
  color:#fff;
  margin-top: auto;
}
.site-footer a {
  color:#fff;
}
.site-footer a:hover {
  text-decoration: underline;
}
.site-footer-contact {
  padding-top:5.5rem;
  padding-bottom:5.5rem;
}
.site-footer-address {
  --bs-gutter-y: 1rem;
  background: var(--red-dark);
  color:#fff;
  padding-top:3.5rem;
  padding-bottom:3.5rem;
}
.site-footer-address p {
  margin: 0;
}
.site-footer-logo img {
  width:8.889rem;
  height:auto;
  display: block;
}
.site-footer-meta {
  opacity: .6;
}
.icon-block {
  padding-left:1.5rem;
  position: relative;
}
.icon-block__icon {
  position: absolute;
  left:0;
  top: .3rem;
}
.icon-block--large {
  padding-left: 3rem;
}
.icon-block--large .icon-block__icon {
  font-size:2.5rem;
}