/* stand 15.04.2026 */


/* =========================================
   Basis / Reset
========================================= */

html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
  -webkit-text-size-adjust: none;
  -webkit-font-smoothing: subpixel-antialiased;
  text-rendering: optimizeLegibility;
}

body,
h1, h2, h3, h4, h5, h6,
ul, li, ol,
div, p, a, img {
  margin: 0;
  padding: 0;
}

header, section, article, nav, footer, address, aside, dialog {
  font-variant: normal;
  font-style: normal;
  margin: 0;
  padding: 0;
  display: block;
}

figcaption,
figure,
main {
  display: block;
}

hr {
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

table,
table td {
  border: none;
  border-collapse: collapse;
}

a,
a:link,
a:visited,
a:hover,
a:active {
  text-decoration: none !important;
}

i,
button,
.btn,
a {
    user-select: none;
    -webkit-user-select: none;
    caret-color: transparent;
}

img {
  vertical-align: top;
  border: 0;
  max-width: 100%;
  height: auto;
}

.img-responsive {
  width: 100% !important;
  height: auto;
}

.responsive-img img {
  width: 100% !important;
  height: auto;
}

#page {
  width: var(--wf-page-maxwidth) !important;
  max-width: 100% !important;
  overflow-x: hidden;
  height: auto;
  margin-left: auto;
  margin-right: auto;
  background-color: var(--wf-page-background);
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  font-weight: inherit;
}


/* 
footer parallax
footer-parallax.js
https://codepen.io/ostrmndev/pen/ELJymr
*/


/* =========================================
   Helper
========================================= */

.wf-flex-space-between {
  height: 100%;
  display: flex;
  display: -webkit-flex;
  display: -ms-flexbox;
  flex-flow: row wrap;
  -webkit-flex-flow: row wrap;
  -ms-flex-wrap: wrap;

  -webkit-align-content: space-between;
  -ms-align-content: space-between;
  -ms-flex-line-pack: justify;
  align-content: space-between;
}

.wf-translate-middle {
  transform: translate(-50%, -50%) !important;
}

.wf-align-items-center {
  -webkit-align-items: center;
  -ms-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.wf-justify-content-center {
  -webkit-justify-content: center;
  -ms-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.mk-relative,
.wf-relative {
  position: relative;
  z-index: 5;
}


/* =========================================
   Owl Carousel 100% height
   https://stackoverflow.com/questions/29629780/owl-carousel-100-height
========================================= */




.wf-owl-height.owl-carousel,
.wf-owl-height .owl-stage-outer,
.wf-owl-height .owl-stage,
.wf-owl-height .owl-item,
.wf-owl-height .dce-owl,
.wf-owl-height .wf-owl-height-item {
  height: 100%;
}

.wf-owl-height .img-responsive {
	/* width: auto; */
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.XXwf-owl-height .owl-stage {
    display: flex;
}

.XXwf-owl-height .owl-item {
    display: flex;
}


/* =========================================
   Swiper same height
   https://stackoverflow.com/questions/66705817/display-all-images-with-the-same-height-in-a-swiper-slider
   https://framework7.io/react/swiper#examples
========================================= */

.swiper-height {
  height: auto !important;
}

.swiper-content {
  height: 99% !important;
}


/* =========================================
   Gradient background pattern - grid, dot, square
   
   https://codepen.io/johnheiner/pen/aywyLR
https://codepen.io/vii120/pen/mdZGQeN

https://webspe.net/tools/en/border/
https://kovart.github.io/dashed-border-generator/
   
   
========================================= */

.wf-dot--1 {
  position: relative;
  background-image:
    linear-gradient(to bottom, transparent, transparent 20%, #fff 20%, #fff 90%, transparent 90%),
    linear-gradient(to right, transparent, transparent 20%, #fff 20%, #fff 90%, transparent 90%),
    linear-gradient(to right, #b0bc55, #b0bc55 20%, #fff 20%, #fff 90%, #b0bc55 90%);
  background-size: 4px 4px;
}

.wf-dot--2 {
  position: relative;
  background-image:
    linear-gradient(to bottom, transparent, transparent 20%, #fff 20%, #fff 70%, transparent 70%),
    linear-gradient(to right, transparent, transparent 20%, #fff 20%, #fff 70%, transparent 70%),
    linear-gradient(to right, #b0bc55, #b0bc55 20%, #fff 20%, #fff 70%, #b0bc55 70%);
  background-size: 4px 4px;
}


/* =========================================
   Parallax materialize
========================================= */

.parallax-container {
  position: relative;
  overflow: hidden;
  z-index: 4;
}

.parallax-container .parallax {
  position: absolute;
  top: 0;
  left: -0.5px;
  right: 0;
  bottom: 0;
  z-index: -1;
}

.parallax-container .parallax img,
.parallax-container .parallax video {
  opacity: 0;
  position: absolute;
  left: 50%;
  bottom: 0;
  min-width: 100%;
  min-height: 100%;
  -webkit-transform: translate3d(0, 0, 0) translateX(-50%);
  transform: translate3d(0, 0, 0) translateX(-50%);
}


/* =========================================
   Animation / Owl fadeOut
========================================= */

/* Feel free to change duration */
.animated {
  -webkit-animation-duration: 1000ms;
  animation-duration: 1000ms;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

/* .owl-animated-out - only for current item */
.owl-animated-out {
  z-index: 1;
}

/* .owl-animated-in - only for upcoming item */
.owl-animated-in {
  z-index: 0;
}

/* .fadeOut is style taken from Animation.css and this is how it looks in owl.carousel.css */
.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut;
}

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}


/* =========================================
   Scroll to top
========================================= */

.scrollToTop.fadeToTop {
  -webkit-animation-name: fadeToTop;
  animation-name: fadeToTop;
  -webkit-animation-duration: 0.4s;
  animation-duration: 0.4s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

@-webkit-keyframes fadeToTop {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes fadeToTop {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    -ms-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  100% {
    opacity: 1;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
  }
}

.scrollToTop.fadeToBottom {
  -webkit-animation-name: fadeToBottom;
  animation-name: fadeToBottom;
  -webkit-animation-duration: 0.4s;
  animation-duration: 0.4s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

@-webkit-keyframes fadeToBottom {
  0% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes fadeToBottom {
  0% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    -ms-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

.scrollToTop {
  color: #88c6a1;
  position: fixed;
  bottom: 10px;
  right: 0;
  width: 55px;
  height: 55px;
  text-align: center;
  cursor: pointer;
  background-color: transparent;
  z-index: 99;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  opacity: 0;
  border: none;

}

.scrollToTop i {
  line-height: 45px;
  font-size: 50px;
  position: relative;
  z-index:5;
}

.scrollToTop i:after {
	position:absolute;
	z-index:-1;
	left:0;
	content: "\e90a";
	color:#f4d684;
}

.scrollToTop i:hover {
	color:#e5a76a;
}
.scrollToTop i:hover:after{
	color:#f3cc74;
}




/* Mobile Animation V2 */
@media (max-width: 480px) {
  .scrollToTop {
    transform: translateX(120%);
    bottom: 55px;
  }

  .scrollToTop.fadeToTop {
    transform: translateX(0);
    opacity: 1;
    pointer-events: auto;
  }

  .scrollToTop.fadeToBottom {
    transform: translateX(120%);
    opacity: 0;
    pointer-events: none;
  }

  .scrollToTop {
	  display: none;
  } 
  
  .fixed-on .scrollToTop {
	  display: block;
  } 
  
}


/* =========================================
   Fixed navigation
========================================= */

.header.fixed {
  position: fixed;
  z-index: 9006;
  left: 0;
  top: 0;
  width: 100%;
}


/* =========================================
   new wf-waypoint-sticky pre-sticky
========================================= */

@media (min-width: 481px) {
  header.wf-waypoint-sticky {
    z-index: 100;
  }

  
  body:not(.fixed-on) header.wf-waypoint-sticky {
    width: var(--wf-page-maxwidth);
    max-width: 100%;
    opacity: 1;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
	
  }

  body.fixed-on header.wf-waypoint-sticky {
    position: fixed;
    width: var(--wf-page-maxwidth);
    max-width: 100%;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    animation-name: stickyfadeIn;
    animation-duration: 0.4s;

  }  

  @-webkit-keyframes stickyfadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
  }

  @keyframes stickyfadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
  }
}

@media (min-width: 1921px) {
  body.fixed-on header.wf-waypoint-sticky,
  body:not(.fixed-on) header.wf-waypoint-sticky {
    left: 50%;
  }
}

@media (max-width: 480.85px) {
  header.wf-waypoint-sticky {
    position: fixed;
    z-index: 100;
    left: 0;
    top: 0;
    width: 100%;
  }
}


/* =========================================
   Pagestart
========================================= */

.wf-pagestart {
  text-align: center;
}

.wf-pagestart i {
  color: #fff;
  font-size: 60px !important;
  line-height: 1px;
  text-shadow: 2px 3px 2px rgba(0,0,0,0.6);
}

.wf-pagestart-box {
  position: absolute;
  left: 50%;
  bottom: 0;
  z-index: 92;
  -webkit-transform: translate(-50%, 0%);
  -moz-transform: translate(-50%, 0%);
  -ms-transform: translate(-50%, 0%);
  transform: translate(-50%, 0%);
}

@media (max-width: 991px) {
  .wf-pagestart {
    display: none;
  }
}


/* =========================================
   btn pulse border
========================================= */

.wf-btn-pulse-border {
  transition: all 0.35s ease-in-out;
  position: relative;
  box-sizing: content-box;
  display: inline-flex;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
}

.wf-btn-pulse-border:after,
.wf-btn-pulse-border:before {
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  content: "";
  display: inline-block;
  width: 3em;
  height: 3em;
  border-radius: 50%;
  transition: all 0.35s ease-in-out;
  background: #8fd234;
}

.wf-btn-pulse-border:before {
  animation: pulse-border 1500ms ease-out infinite;
}

.wf-btn-pulse-border:hover:after,
.wf-btn-pulse-border:hover:before {
  opacity: .55;
}

@keyframes pulse-border {
  0% {
    transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
    opacity: 1;
  }
  100% {
    transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5);
    opacity: 0;
  }
}

.wf-slider-position-pulse-border {
  position: absolute;
  z-index: 30;
  bottom: 17%;
  left: 35.5%;
  font-size: 0.8vw;
}

.wf-btn-pulse-border i {
  position: absolute;
  z-index: 25;
  left: 49%;
  top: 51%;
  transform: translate(-50%, -50%) !important;
  color: #fff;
  font-size: 1.5em;
  line-height: 1.5em;
}


/* =========================================
   Scroll Button
========================================= */

.wf-scrollBtn {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  width: 100px;
  height: auto;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 10px;
  z-index: 1;
  transition: all ease-in-out 0.35s;
  -webkit-transition: all ease-in-out 0.35s;
}

@media (max-width: 992px) {
  .wf-scrollBtn {
    display: none;
  }
}

.wf-scrollBtn.move {
  visibility: hidden;
  opacity: 0;
}

.wf-scrollBtn span {
  width: 12px;
  height: 12px;
  display: block;
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  animation: animate 2s infinite;
  -webkit-animation: animate 2s infinite;
  margin: auto;
}

.wf-scrollBtn button,
.wf-scrollBtn a {
  font-size: 16px;
  line-height: 1.5;
  font-weight: 400;
  text-align: center;
  text-transform: uppercase;
  -webkit-text-transform: uppercase;
  letter-spacing: 2px;
  display: inline-block;
  padding: 0.75rem;
  color: #fff;
  text-shadow: 2px 2px 2px rgba(0,0,0,0.8);
  border: none;
  background-color: transparent;
  cursor: pointer;
}

.wf-scrollBtn button:hover,
.wf-scrollBtn a:hover {
  color: #1d94ad;
}

@keyframes animate {
  0% {
    opacity: 0;
    transform: rotate(45deg) translate(-10px, -10px);
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: rotate(45deg) translate(10px, 10px);
  }
}

@-webkit-keyframes animate {
  0% {
    opacity: 0;
    transform: rotate(45deg) translate(-10px, -10px);
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: rotate(45deg) translate(10px, 10px);
  }
}


/* =========================================
   Images and Overlays
========================================= */

.overlay-container {
  position: relative;
  display: block;
  text-align: center;
  overflow: hidden;
}

.overlay-link {
  position: absolute;
  z-index: 10;
  top: 0;
  padding: 15px;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(30, 30, 30, 0.5);
  overflow: hidden;
  opacity: 0;
  -webkit-transition: all ease-in-out 0.25s;
  -o-transition: all ease-in-out 0.25s;
  transition: all ease-in-out 0.25s;
  color: #ffffff;
}

.overlay-link i {
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  width: 80px;
  height: 80px;
  border: 1px solid #ffffff;
  border-radius: 100%;
  color: #ffffff;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -40px 0 0 -40px;
  font-size: 32px;
  line-height: 80px;
}

.overlay-link i:hover {
  background-color: #ffffff;
  color: #777777;
}

.overlay-link.small i {
  width: 25px;
  height: 25px;
  margin: -12.5px 0 0 -12.5px;
  font-size: 14px;
  line-height: 25px;
}

.overlay-container:hover .overlay-link {
  height: 100%;
  opacity: 1;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translateZ(0) scale(1, 1);
}


/* =========================================
   Columnize
========================================= */

.wf-columnize-2 {
  margin: 0 0 1.313em;
  column-count: 2;
  column-gap: 3rem;
  column-rule: 0 dashed #9fb3a7;
}

.wf-columnize-3 {
  margin: 0 0 1.313em;
  column-count: 3;
  column-gap: 3.5rem;
  column-rule: 1px dashed #9fb3a7;
  column-fill: balance;
}

.wf-columnize-3-item {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
}

@media only screen and (max-width: 992px) {
  .wf-columnize-2,
  .wf-columnize-3 {
    column-count: 1;
  }
}


/* =========================================
   Video responsive iframe
========================================= */

.wf-video-responsiv-iframe-content {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 0;
  height: 0;
  overflow: hidden;
}

.wf-video-responsiv-iframe-content iframe,
.wf-video-responsiv-iframe-content object,
.wf-video-responsiv-iframe-content embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


/* =========================================
   img-parallax.js
========================================= */

.img-parallax {
  position: absolute;
  top: 0;
  left: 50%;
  pointer-events: none;
  transform: translate(-50%, 0%);
  -webkit-transform: translate(-50%, 0%);
  -moz-transform: translate(-50%, 0%);
  -ms-transform: translate(-50%, 0%);
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  object-fit: cover;
}


/* =========================================
  _:-ms-lang(x),
 _:-webkit-full-screen,
========================================= */

.img-parallax {
  transition: all 300ms ease-out;
}


/* =========================================
   wf-content-bg
========================================= */

.wf-content-bg {
  display: block;
  position: relative;
  z-index: 10;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.wf-content-item-bg {
  position: absolute;
  z-index: 1;
  left: -4%;
  top: -4%;
  width: 105%;
  height: 105%;
  max-width: 105%;
  max-height: 105%;
  object-fit: cover;
}

.wf-content-item-footer-bg {
  position: absolute;
  z-index: 1;
  left: -0.1%;
  top: -0.1%;
  width: 100.2%;
  height: 100.2%;
  max-width: 100.2%;
  max-height: 100.2%;
  object-fit: cover;
}

.wf-content-item-bg.sepia {
  filter: sepia(100%);
}

.wf-content-item-bg.grayscale {
  filter: grayscale(100%);
}

.wf-content-item-bg.blur {
  filter: blur(8px);
}

.wf-content-item-body {
  position: relative;
  z-index: 15;
}

.wf-content-bg.wf-dark::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.55);
}

.wf-content-bg.wf-light::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;

  /* https://colorzilla.com/gradient-editor/#ffffff+0,ffffff+70,e6e1dd+100&0+0,0+46,0.4+70,0.9+100 */
  /* https://colorzilla.com/gradient-editor/#ffffff+0,ffffff+70,e6e1dd+100&0+0,0+55,0.4+70,0.9+100 */
  background: linear-gradient(
    to bottom,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 55%,
    rgba(255,255,255,0.4) 70%,
    rgba(230,225,221,0.9) 100%
  );
}

.wf-content-bg-footer {
  display: block;
  position: relative;
  z-index: 10;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.wf-content-item-bg-footer {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  object-fit: cover;
}

.wf-content-item-body-footer,
.content-item-body {
  position: relative;
  z-index: 15;
}


/* =========================================
   Language
========================================= */

.my-header-lang {
  position: absolute;
  top: 140px;
  right: 15px;
  z-index: 99;
  display: none;
}

.my-header-lang .wf-btn-header {
  width: 45px;
  display: block;
  text-align: center;
  padding: 10px 8px 10px 8px;
  transition: all 0.3s ease;
  color: #fff;
  font-size: 17px;
  margin-bottom: 7px;
  background-color: #000;
}

.my-header-lang .wf-btn-header:hover {
  background-color: var(--wf-color1);
}

@media (min-width: 992px) {
  .my-header-lang {
    display: block;
  }
}


/* =========================================
   WF XS Footer (Mobile Quick-Buttons)
========================================= */

.wf-xsfooterhg {
  width: 100%;
  min-height: 74px;
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 50;
  background: var(--wf-color4);
  padding-top: 2px;
  padding-bottom: 4px;
  transition:
    min-height 0.25s ease,
    padding 0.25s ease;
}

.wf-xsfooter-hg-flex {
  display: flex;
  justify-content: center;
}

.wf-xsfooter-hg-flex .wf-btn-xsfooter {
  width: 25%;
  text-align: center;
}

.wf-xsfooter-hg-flex .wf-btn-xsfooter a {
  display: block;
  position: relative;
  top: 1px;
  padding: 0.25em;
  color: #fff;
  font-size: 30px;
  line-height: 1;
}

.wf-xsfooter-hg-flex .wf-btn-xsfooter span {
  display: block;
  max-height: 20px;
  overflow: hidden;
  opacity: 1;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.1;
  transform: translateY(0);
  transition:
    max-height 0.25s ease,
    opacity 0.25s ease,
    transform 0.25s ease;
}

.fixed-on .wf-xsfooterhg {
  min-height: 48px;
  padding-top: 2px;
  padding-bottom: 2px;
}

.fixed-on .wf-xsfooterhg span.wf-hide-span {
  max-height: 0;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
}

@media (min-width: 480.85px) {
  .wf-xsfooterhg {
    display: none;
  }
}


/* =========================================
   Magnific Popup close
========================================= */

#mfp-video-model .mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  z-index: 1001;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace;
  user-select: none;
  cursor: pointer;
}

#mfp-video-model .mfp-close:after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 30px;
  height: 30px;
  right: 3px;
  top: 6px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  pointer-events: none;
  user-select: none;
  cursor: pointer;
}


/* =========================================
   funktion-parallax-srcoll-slide.js
========================================= */

.wf-parallax-silder .slide__img {
  will-change: transform;
  transform: translate3d(0,0,0);
}