body , html {
    min-height:100%;
    height:100%;
    width: 100%;
    margin:0px;
    padding:0px;
    background-color: #eeeeee;
    font-family: 'NotoSans-Light', sans-serif;
    font-weight:400;
    line-height: 1.5;
    font-size: 16px;
    color: #4f4b47;
    -ms-text-size-adjust: none !important;
    text-size-adjust: none !important;
    -webkit-text-size-adjust: none !important;
    -moz-text-size-adjust: none !important;
    -ms-text-size-adjust: none !important;
}

#page {
    position: relative;
    width:100%;
}

h2 {
    font-family: 'NotoSerif-Regular', serif;
    line-height: 1.5;
    font-size: 30px;
}

h3,
h4,
h5,
h6
{
    font-family: "NotoSerif-Light", serif;
    font-size: 20.1px;
}

/* ///////////////////////////////////////////////////////////////////////////////  PAGE CONTENT */
.page-wrapper {
    z-index:1;
    position: relative;
    min-height:100vh;
    width:100%;
    max-width:1920px;
    margin: 0 auto;
    overflow:visible;
    display:flex;
    justify-content:center;
    background-color: #FFFFFF;
}

.content-area {
    display:flex;
    flex-direction:column;
    flex-wrap:wrap;
    min-height: 100%;
    width: calc(100% - 76px);
    margin: 0 auto;
    background-color: rgba(78,0,0,0);
    /* background-color: #FFFFFF; */
    /* overflow: hidden; */
    position: relative;
}
@media screen and (max-width: 767px) {
    .content-area {
        width: calc(100% - 44px);
    }
}

.wrapper-layout-area {
    display:flex;
    position: relative;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    background-color: rgba(78,0,0,0);
}

.menu-fixed {
    top:0px;
    left: 0px;
    z-index:3000;
    height: 1px;
    width:100%;
    overflow:visible;
    position: fixed;
    background-color: rgba(0,100,163,0);
}
.menu-wrapper-outer {
    width: 100%;
    max-width:1920px;
    margin: 0 auto;
    background-color: #FFFFFF;
}
@media screen and (max-width: 767px) {
    .menu-wrapper-outer {
        max-width: calc(100vw - 1px);
        margin-left: 0px;
    }
}
.menu-wrapper-inner {
    position:relative;
    height: 90px;
    display: flex;
    justify-content: space-between;
    background-color: rgba(25,100,213,0);
}

.top-spacer-header {
    height: 90px;
    width: 100%;
    background-color: rgba(25,100,213,0);
}
.wrapper-logo {
    position:relative;
    height: 90px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-left: 38px;
    background-color: rgba(255,0,0,0);
}
.wrapper-navi {
    position:relative;
    height: 90px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-right: 38px;
    background-color: rgba(255,0,0,0);
    margin-left: 12px;
}
@media screen and (min-width: 768px) {
    .flat .menu-wrapper-inner,
    .flat .top-spacer-header,
    .flat .wrapper-logo,
    .flat .wrapper-navi {
        height: 60px;
        animation: flattenNavi;
        animation-duration: 400ms;
    }
    @keyframes flattenNavi {
        0% {
            height: 90px;
        }
        100% {
            height: 60px;
        }
    }
    .higher .menu-wrapper-inner,
    .higher .top-spacer-header,
    .higher .wrapper-logo,
    .higher .wrapper-navi {
        height: 90px;
        animation: higherNavi;
        animation-duration: 400ms;
    }
    @keyframes higherNavi {
        0% {
            height: 60px;
        }
        100% {
            height: 90px;
        }
    }
    .flat .logo {
        width: 162px;
        height: 26px;
        opacity: 1;
        animation: flattenLogo;
        animation-duration: 400ms;
    }
    @keyframes flattenLogo {
        0% {
            opacity: 0;
            width: 242px;
            height: 38px;
        }
        100% {
            opacity: 1;
            width: 162px;
            height: 26px;
        }
    }
    .higher .logo {
        width: 242px;
        height: 38px;
        opacity: 1;
        animation: higherLogo;
        animation-duration: 400ms;
    }
    @keyframes higherLogo {
        0% {
            opacity: 0;
            width: 162px;
            height: 26px;
        }
        100% {
            opacity: 1;
            width: 242px;
            height: 38px;
        }
    }
}
.navi-toggle {
    display: none;
}
.logo {
    position: relative;
    background-color: rgba(255,189,0,0);
    margin-top: 0px !important;
    cursor: pointer;
    background-image: url(../images/logo.svg);
    text-decoration: none;
    background-position: left top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    width: 242px;
    height: 38px;
}
.wrapper-navi .links a {
    display: inline-block;
    text-decoration: none;
    text-transform: uppercase;
    color: #4f4b47;
}
.wrapper-navi .languages {
    display: flex;
    align-items: center;
    background-color: rgba(255,189,0,0);
}
.wrapper-navi .languages a {
    text-decoration: none;
}
.wrapper-navi .languages .flag {
    display: block;
    width: 24px;
    height: 18px;
    width: 19.2px;
    height: 14.4px;
    text-decoration: none;
    background-position: left top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    border: 1px solid #ebebeb;
}
.wrapper-navi .languages .flag-de {
    background-image: url(../images/flag-de.png);
}
.wrapper-navi .languages .flag-fr {
    background-image: url(../images/flag-fr.png);
}
.wrapper-navi .languages .flag-en {
    background-image: url(../images/flag-en.png);
}
@media screen and (max-width: 767px) {
    .top-spacer-header {
        height: 60px;
    }
    .menu-wrapper-inner {
        height: 60px;
        flex-wrap: wrap;
    }
    .wrapper-logo {
        height: 60px;
        margin-left: 22px;
    }
    .logo {
        width: 162px;
        height: 26px;
    }
    .wrapper-navi {
        display: block;
        height: unset;
        width: 100%;
        margin-right: 0px;
        margin-left: 0px;
        background-color: #FFFFFF;
        max-height: 0px;
        overflow: hidden;
    }
    .open .wrapper-navi {
        max-height: 500px;
        animation: openNavi;
        animation-duration: 800ms;
    }
    @keyframes openNavi {
        0% {
            max-height: 0px;
        }
        100% {
            max-height: 500px;
        }
    }
    .wrapper-navi .links a,
    .wrapper-navi .languages a {
        width: calc(100% - 44px);
        margin: 0px 22px 0px 22px;
        padding: 12px 0px 12px 0px;
        border-bottom: 1px solid #ebebeb;
    }
    .wrapper-navi .links a:nth-child(1) {
        border-top: 1px solid #ebebeb;
    }
    .wrapper-navi .languages {
        flex-wrap: wrap;
    }
    .navi-toggle {
        display: block;
        position:absolute;
        right: 24px;
        top: 18px;
        width:24px;
        height:24px;
      }

      .navi-toggle {
          background-image: url(../images/hamburger-open.svg);
          background-size: auto 100%;
          background-position: 50% 50%;
          background-repeat: no-repeat;
          background-color: rgba(255,0,0,0);
      }
      .menu-wrapper-outer.open .navi-toggle {
          background-image: url(../images/hamburger-close.svg);
          animation-duration: 300ms;
          animation-name: toggleButton_open;
      }

      @keyframes toggleButton_open {
        0% {
            opacity:1;
            transform: rotate(90deg);
            background-image: url(../images/hamburger-close.svg);
        }
        100% {
            opacity:1;
            background-image: url(../images/hamburger-close.svg);
        }
      }
}
@media screen and (min-width: 768px) and (max-width: 1199px) {
    .wrapper-navi .links a {
        margin-right: 12px;
    }
    .wrapper-navi .languages {
        margin-left: 1.8vw;
    }
    .wrapper-navi .languages a {
        margin-left: 8px;
    }
    .wrapper-navi .languages a:first-child {
        margin-left: 0px;
    }
    @media screen and (max-width: 899px) {
        .logo {
            width: 162px;
            height: 26px;
        }
    }
}
@media screen and (min-width: 1200px) {
    .wrapper-navi .links a {
        margin-right: 56px;
    }
    .wrapper-navi .languages {
        margin-left: 36px;
    }
    .wrapper-navi .languages a {
        margin-left: 8px;
    }
    .wrapper-navi .languages a:first-child {
        margin-left: 0px;
    }
    @media screen and (max-width: 1400px) {
        .wrapper-navi .links a {
            margin-right: 36px;
        }
        .wrapper-navi .languages {
            margin-left: 12px;
        }
    }
}

.button {
    display: inline-block;
    text-align: center;
    padding: 14px 36px 14px 36px;
    text-decoration: none;
    text-transform: uppercase;

}
.button-white {
    background-color: #FFFFFF;
    color: #4f4b47;
}
.button-grey {
    color: #FFFFFF;
    background-color: #4f4b47;
    min-width: 174px;
    padding: 12px 36px 12px 36px;
}
.wrapper-content-standard .button-grey,
.main-teaser .button-white {
    margin-top: 68px;
}
@media screen and (max-width: 589px) {
    .button {
        padding: 12px 26px 12px 26px;
    }
    .button-grey {
        min-width: 108px;
    }
    .wrapper-content-standard .button-grey {
        margin-top: 60px;
    }
    .main-teaser .button-white {
        margin-bottom: 24px;
    }
}

.bg-white {
    background-color: #FFFFFF;
    color: #4f4b47;
}
.bg-grey-light {
    background-color: #ece8e8;
    color: #4f4b47;
}

.full-width > div {
    width: 100%;
}
.full-width.center > div {
    display: flex;
    justify-content: center;
    background-color: rgba(78,0,0,0);
}

.parted-2 {
    display: flex;
}
.parted-2 > div {
    width: 50%;
    min-width: 50%;
    min-height: 400px;
    display: flex;
    justify-content: center;
    /* border: 1px dotted red; */
}
.parted-2 > div.flex-left {
    justify-content: flex-start;
}

.wrapper-content-standard {
    background-color: rgba(255,0,0,0);
    text-align: center;
    max-width: 560px;
    margin: 60px 16px 60px 16px;
}
.full-width.center .wrapper-content-standard {
    max-width: 1140px;
    margin-top: 0px;
}
.full-width.center.padding-top {
    padding-top: 60px;
}
.wrapper-content .block-label {
    text-transform: uppercase;
}
.wrapper-content h2 {
    font-family: 'NotoSerif-Regular', serif;
    line-height: 1.5;
    font-size: 30px;
    margin-bottom: 0px;
}
.wrapper-content .subline {
    font-family: 'NotoSerif-Light', serif;
    line-height: 1.5;
    font-size: 30px;
}

.wrapper-content .subline h3,
.wrapper-content .subline h4,
.wrapper-content .subline h5,
.wrapper-content .subline h6
{
    font-family: "NotoSerif-Light", serif;
    font-size: 20.1px !important;
    line-height: 4px !important;
}

.wrapper-content .subline p {
    margin: 0px;
}
.main-teaser .wrapper-content .subline {
    line-height: 1.2;
}
.wrapper-content .text {
    margin-top: 1.2em;
}

/* IMAGES 3 - lazy like */
.wrapper-content-images {
    position: relative;
    width: 100%;
    height: 100%;
    max-width: 800px;
    display: flex;
    justify-content: center;
    padding-top: 40px;
    background-color: rgba(255,0,0,0);
    /* transform: scale(0.7); */
}
@media screen and (min-width: 1024px) and (max-width: 1299px) {
    .wrapper-content-images {
        min-height: calc((100vw - 76px) * 0.45);
    }
}
@media screen and (min-width: 1300px) {
    .wrapper-content-images {
        min-height: 550px;
    }
    @media screen and (min-width: 1400px) {
        .wrapper-content-images {
            min-height: 600px;
        }
    }
    @media screen and (min-width: 1600px) {
        .wrapper-content-images {
            min-height: 650px;
        }
    }
}
.wrapper-content-images .lazy-image {
    position: absolute;
    background-size: cover;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    width: 31%;
    padding-top: 41%;
    opacity: 0;
}
.wrapper-content-images .lazy-image.lazy-image-1 {
    z-index: 1;
}
.wrapper-content-images .lazy-image.lazy-image-2 {
    z-index: 2;
}
.wrapper-content-images .lazy-image.lazy-image-3 {
    z-index: 3;
}
.wrapper-content-images.lazylike .lazy-image.lazy-image-1 {
    margin-right: 12%;
    margin-bottom: 30%;
    opacity: 1;
    animation: lazyLike1;
    animation-duration: 800ms;
}
.wrapper-content-images.lazylike .lazy-image.lazy-image-2 {
    margin-right: 38%;
    margin-top: 30%;
    opacity: 1;
    animation: lazyLike2;
    animation-duration: 800ms;
}
.wrapper-content-images.lazylike .lazy-image.lazy-image-3 {
    margin-left: 36%;
    margin-top: 14%;
    opacity: 1;
    animation: lazyLike3;
    animation-duration: 800ms;
}

@keyframes lazyLike1 {
    0% {
        margin-right: 0%;
        margin-top: 30%;
        opacity: 0;
    }
    100% {
        margin-right: 12%;
        margin-bottom: 30%;
        margin-top: 0%;
        opacity: 1;
    }
}
@keyframes lazyLike2 {
    0% {
        margin-right: 0%;
        margin-top: 0%;
        opacity: 0;
    }
    100% {
        margin-right: 38%;
        margin-top: 30%;
        opacity: 1;
    }
}
@keyframes lazyLike3 {
    0% {
        margin-left: 0%;
        margin-top: 30%;
        opacity: 0;
    }
    100% {
        margin-left: 36%;
        margin-top: 14%;
        opacity: 1;
    }
}

@media screen and (max-width: 767px) {
    .parted-2 {
        flex-wrap: wrap;
    }
    .parted-2 > div {
        width: 100%;
        min-height: unset;
        /* background-color: rgba(255,0,0,0.44); */
    }
    .wrapper-content-images {
        min-width: calc(100% + 88px);
        margin-left: -44px;
        min-height: 80vw;
        max-width: unset;
        padding-top: 0px;
        padding-bottom: 24px;
        /* background-color: rgba(255,123,0,0.44); */
    }
    .wrapper-layout-area.house {
        border-bottom: 20px solid #FFFFFF;  /* wrapper-layout-area 3 lazy images */
    }
}

.wrapper-map {
    display: block;
    position: relative;
}
@media screen and (max-width: 767px) {
    .wrapper-map {
        padding-bottom: 2em;
    }
}
.wrapper-map img {
    width: 100%;
    position: relative;
}
.wrapper-map a {
    display: block;
    position: absolute;
    top: 45%;
    left: 52.5%;
    z-index: 2;
    width: 12%;
    height: 16%;
    background-color: rgba(255,123,0,0);
}
@media screen and (max-width: 767px) {
    .wrapper-map a {
        top: 40%;
    }
}
.flex-reverse {
    flex-direction: row-reverse;
}

.main-teaser {              /* bg grafic, text, button */
    position: relative;
    background-size: cover;
    background-position: 50% 50%;
    background-repeat: no-repeat;
    width: 100%;
    min-height: calc((100vw - 76px) * 0.35);
    max-height: 650px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.main-teaser .wrapper-content {
    /* background-color: rgba(255,123,0,0.33); */
    color: #FFFFFF;
    text-align: center;
    max-width: 820px;
    margin: 42px;
}
@media screen and (max-width: 589px) {
    .main-teaser .wrapper-content {
        margin: 42px 20px 40px 20px;
    }
}
@media screen and (max-width: 767px) {
    .main-teaser {
        max-height: unset;
        min-height: calc((100vw - 44px) * 1.2);
    }
}

.footer-area {
    background-color: #4e4a46;
    color: #FFFFFF;
    min-height: 268px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.footer-area > div:nth-child(1) {
    margin-right: 4vw;
    /* background-color: rgba(255,3,0,0.33); */
}
.footer-area > div:nth-child(2) {
    margin-left: 4vw;
    /* background-color: rgba(25,223,0,0.33); */
}
@media screen and (max-width: 767px) {
    .footer-area {
        justify-content: space-around;
        padding: 0px 12px 0px 12px;
        margin: 0 auto;
        width: calc(100% - 24px);
    }
    .footer-area > div:nth-child(1),
    .footer-area > div:nth-child(2) {
        margin-left: 16px;
        margin-right: 16px;
    }
    @media screen and (max-width: 649px) {
        .footer-area {
            flex-wrap: wrap;
            justify-content: center;
            align-items: flex-start;
            padding: 24px 12px 24px 12px;
            min-height: unset;
            margin: 0 auto;
        }
        .footer-area > div:nth-child(1),
        .footer-area > div:nth-child(2) {
            margin: 12px 4px 12px 4px;
            width: 90%;
            text-align: center;
        }
    }
}
@media screen and (min-width: 1200px) {
    .footer-area > div:nth-child(1) {
        margin-right: 64px;
    }
    .footer-area > div:nth-child(2) {
        margin-left: 64px;
    }
}
.footer-area a {
    color: #FFFFFF;
    text-decoration: none;
}
.footer-area a:hover {
    text-decoration: underline;
}

.wrapper-full-height > div {
    background-color: rgba(25,223,0,0);
    margin: 40px 0px 40px 0px;
}
.wrapper-full-height > div p:nth-child(1) {
    margin-top: 0px;
}
.wrapper-full-height > div p:nth-last-child(1) {
    margin-bottom: 0px;
}

.display-none {
    display: none;
}

@media screen and (max-width: 767px) {
    .desktop-only {
        display: none;
    }
}
@media screen and (min-width: 768px) {
    .mobile-only {
        display: none;
    }
}

.image-block {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding-top: 78%;
    width: 100%;
}
@media screen and (max-width: 767px) {
    .image-block {
        padding-top: 82%;
    }
}








/* slick carousel + light box */
.product-slider {
    width: calc(100% + 18px);
    margin-left: -18px;
    /* background-color: lime; */
    margin-bottom: 62px;
}
@media screen and (min-width: 768px) {
    .product-slider {
        margin-top: 62px;
        margin-bottom: 42px;
    }
}

/* Slick slider custom styles */
.product-slider .slick-slide {
    border-left: 18px solid transparent;
    /* border-left: 18px solid red; */
}
.product-slider .slick-slide img {
    object-fit: cover;
    width: 100%;
    max-height: 396px !important;
}
@media screen and (min-width: 1024px) {
    .product-slider .slick-slide img {
        /*  76 */
        height: calc(( (100vw - 76px) / 4) * 0.85 ) !important;
    }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
    .product-slider .slick-slide img {
        /*  76 */
        height: calc(( (100vw - 76px) / 3) * 0.85 ) !important;
    }
}
@media screen and (min-width: 460px) and (max-width: 767px) {
    .product-slider .slick-slide img {
        /*  44 */
        height: calc(( (100vw - 44px) / 2) * 0.87 ) !important;
    }
}
@media screen and (max-width: 459px) {
    .product-slider .slick-slide img {
        /*  44 */
        height: calc( (100vw - 44px) * 0.89 ) !important;
    }
}

.slick-arrow {
    position: absolute;
    top: 50%;
    font-size: 0;
    height: 62px !important;
    width: 62px !important;
    background-color: unset !important;
    border-radius: 50% !important;
    cursor: pointer;
    background-size: 100% !important;
    z-index: 1;
    background-image: url(../images/slider-arrow-left.jpg) !important;
    background-repeat: no-repeat;
    background-position: center center;
    opacity: 0.5 !important;
}
.slick-arrow.slick-prev {
    left: 28px;
}
.slick-arrow.slick-next {
    right: 10px;
    background-image: url(../images/slider-arrow-right.jpg) !important;
}
@media screen and (max-width: 460px) {
    .slick-arrow {
        height: 40px !important;
        width: 40px !important;
    }
    .slick-arrow.slick-prev {
        left: 22px;
    }
    .slick-arrow.slick-next {
        right: 4px;
        background-image: url(../images/slider-arrow-right.jpg) !important;
    }
}
.slick-arrow.slick-prev::before,
.slick-arrow.slick-next::before {
    display: none !important;
}
.slick-prev:hover, .slick-next:hover {
    background-color: unset !important;
    opacity: 0.9 !important;
}

.hidden {
    opacity: 0;
}
.fade-in {
    animation: fade-in;
    animation-duration: 600ms;
}

@keyframes fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.block-gallery {
    min-height: 40px;
    margin: 0 auto;
    margin-bottom: 62px;
    display: flex;
    flex-wrap: wrap;
}
.block-gallery-item {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
@media screen and (max-width: 460px){
    .block-gallery {
        width: 100%;
    }
    .block-gallery-item {
        margin: 12px 0px 24px 0px;
        width: 100%;
        padding-top: 136%;
    }
}
@media screen and (min-width: 461px) and (max-width: 767px){
    .block-gallery {
        width: calc(100% + 36px);
        margin-left: -9px;
    }
    .block-gallery-item {
        margin: 12px 9px 24px 9px;
        width: calc(50% - 18px);
        padding-top: 64%;
    }
}
@media screen and (min-width: 768px) {
    .block-gallery {
        width: 100%;
        max-width: 960px;
    }
    .block-gallery-item {
        margin: 9px 9px 9px 9px;
        width: calc(33.28% - 18px);
        padding-top: 43%;
    }
    @media screen and (min-width: 1024px) {
        .block-gallery {
            margin-bottom: 96px;
            width: 80%;
        }
    }
    @media screen and (min-width: 1280px) {
        .block-gallery {
            margin-bottom: 120px;
        }
    }
}

/* Preise */

.wrapper-tabelle {
    margin: 0 auto;
    width: calc(100% - 44px);
    max-width: 1010px;
    padding: 60px 0px 96px 0px;
}

.wrapper-tabelle .text {
    width: 100%;
    max-width: 690px;
    margin: 0 auto;
    text-align: center;
    background-color:  rgba(24,12,145,0);
}
.price-line {
    display:flex;
    justify-content:space-between;
    width:100%;
    padding-top:3px;
    padding-bottom:3px;
  }
.text-before + .price-table {
    margin-top:42px;
  }
.price-table + .text-after {
    margin-top:42px;
  }
.price-line:nth-child(odd) {
    background-color:#FAF6F6;
  }
.price-line div:nth-child(1) {
    width:25%;
    margin-left:6%;
    text-align:left;
    background-color: rgba(24,12,145,0);
  }
.price-line div:nth-child(2) {
    width:38%;
    text-align:center;
    background-color: rgba(24,123,0,0);
  }
.price-line div:nth-child(3) {
    width:12%;
    margin-right:13%;
    text-align:center;
    white-space:nowrap;
    background-color: rgba(230,12,0,0);
  }
@media screen and (max-width: 490px){
    .price-line {
        flex-wrap: wrap;
        background-color:#FAF6F6;
        margin-bottom: 12px;
    }
    .price-line div:nth-child(1){
        width: 100%;
        margin-left: unset;
        margin-right: unset;
        padding-left: 12px;
        background-color: rgba(230,12,0,0);
    }
    .price-line div:nth-child(2) {
        width: 50%;
        margin-left: unset;
        margin-right: unset;
        text-align: left;
        padding-left: 12px;
        background-color: rgba(20,192,0,0);
    }
    .price-line div:nth-child(3) {
        width: 50%;
        margin-left: unset;
        margin-right: unset;
        text-align: right;
        padding-right: 12px;
        background-color: rgba(30,12,200,0);
    }
}

.overflow-visible {
    overflow: visible !important;
}