/* @override 
	https://sonnebergbaude.de/wp/wp-content/themes/sbb/style.css?* */


/*
Theme Name: SONNEBERGBAUDE (SBB)
Description:
Version: 1.1
Author: ZH2
*/




/*	IMPORTS
-------------------------------------------------------------------------------*/


@import url("css/icons.css");
@import url("css/columns.css");
@import url("css/swiper.min.css");



/* @group WEBFONTS */

/*	WEBFONTS
-------------------------------------------------------------------------------*/

/* via Adobe Fonts*/

/* @end */


/* @group RESET */

/*	RESET
-------------------------------------------------------------------------------*/


/* more-intuitive box-sizing model */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Remove default margin */
* {  margin: 0; }

/* Allow percentage-based heights in the application */
html, body { height: 100%; }

/* Improve media defaults */
img, picture, video, canvas, svg, iframe, object {
  display: block;
  max-width: 100%;
  height:auto;
}

/* Remove built-in form typography styles */
input, button, textarea, select {
  font: inherit;
  outline: none;
}

/* Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
	overflow-wrap: break-word;
}

/* tables still need cellspacing="0" in the markup */
table { border-collapse: collapse; border-spacing: 0;}


input { /* remove top input shadow */
-webkit-appearance: none;
-moz-appearance: none;
}

a:hover, a:active {outline: none;}

/* standardize any monospaced elements */
pre, code, kbd, samp { font-family: monospace, sans-serif;}

/* hand cursor on clickable elements */
label,
input[type=button],
input[type=submit],
button {cursor: pointer;}

/* clear floats */
.clearfix:before, .clearfix:after { content: "\0020"; display: table; height: 0; }
.clearfix:after { clear: both; }

/* prevent flickering on touch */
* {	-webkit-tap-highlight-color:transparent; }

 /* subscript and superscript */
sub { vertical-align: sub; font-size: 70%; line-height: 0; }
sup { vertical-align: super; font-size: 70%; line-height: 0; }


/* @end */


/* @group VARS */

/*	VARS
-------------------------------------------------------------------------------*/


/* Color Info


fichtes gold			D0B173		rgba(208, 177, 115, 1)		hsl(40,49.7%,63.3%)
fichtes green		006F43		rgba(0, 111, 67, 1)			hsl(156.2,100%,21.8%)
fichtes red			A01C23		rgba(160, 28, 35, 1)		hsl(356.8,70.2%,36.9%)

bg primary			EAF3F0 (light green)
bg secondary		FBF8F2 (light gold)
bg tertiary			F7EBEC  (light red)

*/


 /* Color Info





 */

:root {
	--base-font-size: 21px;
	--base-line-height: 1.45;

	--fichtes-gold: #D0B173;
	--fichtes-green: #006F43;
	--fichtes-red: #A01C23;

	--fichtes-gold-bg: #F4EEDE;
	--fichtes-green-bg: #EAF3F0;
	--fichtes-red-bg: #F7EBEC;

	--text-color: #333;
	--link-color: var(--fichtes-green);
	--link-color-hover: var(--fichtes-red);

	--border-color: #DDD;

	--primary-color: var(--fichtes-green);
	--primary-bg: #DAE5DB;

	--secondary-color: var(--fichtes-gold);
	--secondary-bg: #F4EEDE;

	--body-bg: #FBF8F2;

	--text-gray: #999;
	--text-beige: #FBF8F2;


	--font-sans: transat-text, sans-serif;
	--font-weight-normal: 500; /* 400 vs 500 */
	--font-weight-medium: 600; 
	--font-weight-bold: 800; /* 700 vs 800 */

	--text-large: 1.20rem;
	--text-small: 0.85rem;

	--container-width: 1260px; /*1260*/
	--aligndefault-width: 800px;

	--container-padding: 30px;

	--main-padding-top: 150px;
	--main-padding-bottom: 200px;

	--vspace: 1.5rem; /* the space */
	--vspace-l: 3rem;
	--vspace-xl: 5.0rem; /*block section space*/
	--vspace-xxl: 7rem;

	--box-padding: 35px;
	--border-radius: 15px;

	--header-height: 260px;
 }

 @media screen and (max-width: 1136px) {
	:root {
		--base-font-size: 18px;
		--container-width: 970px;
		--header-height: 160px;
		--main-padding-top: 100px;
	}

}


 @media screen and (max-width: 600px) {
	:root {
		--base-font-size: 18px;

		--text-large: 21px;
		--container-padding: 20px;

		--main-padding-top: 80px;
		--main-padding-bottom: 120px;
		
		--border-radius: 10px;
		--box-padding: 30px;

		--vspace-xl: 5.0rem;
	}
}

/* @end */


/* @group GENERAL */

/* GENERAL
---------------------------------------------------------------------------------*/


html {
	height: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	 -webkit-text-size-adjust: 100%;

	font-family: var(--font-sans);
	font-size: var(--base-font-size);
	font-weight: var(--font-weight-normal);
	line-height: var(--base-line-height);
	color: var(--text-color);
}

body {
	background: var(--body-bg);
}


a {
	position: relative;
	color: var(--link-color);
	text-decoration: none;
}

a, input {
	transition: all 200ms ease;
}

a:visited {
}

a:active {
}

a:hover {
	color: var(--link-color-hover);
}

img {
    transition: all 300ms ease;
}

a:hover img {
	transition: all 300ms ease;
}


article > * + * { /* the lobotomized owl selector */
	margin-top: var(--vspace);
}

.main > *:first-child,
.stack > *:first-child {
	margin-top: 0;
}

strong, b {
	font-weight: var(--font-weight-bold);
}



/* TYPOGRAPHY
---------------------------------------------------------------------------------*/


h1, h2 {
	font-size: 44px;
	font-weight: var(--font-weight-bold);
	line-height: 1.2;
	color: var(--primary-color);
	margin-top: calc(var(--vspace) + 1rem);
	margin-bottom: calc(var(--vspace) + 0.6rem);
	letter-spacing: -.5px;
}


h1 em,
h2 em { /*use italic for decor style*/
	font-style: normal;
	display: block;
	text-align: center;
}

h1 em::after,
h2 em::after { /*decor*/
	content: "\e819";
	font-family: 'icons';
	display: block;
	color: var(--fichtes-gold);
	font-size: 2.5rem;
	line-height: 1;
	margin: .7rem 0 0 0;
}



h3 {
	font-size: 28px;
	font-size: 1.4rem;
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	margin-top: calc(var(--vspace) + 0.8rem);
	margin-bottom: -0.5rem;
}

h4 {
	font-size: 1rem;
	font-weight: var(--font-weight-bold);
	line-height: 1.4;
	margin-top: calc(var(--vspace) + 0rem);
}

h4 + p {
	margin-top: 0.5rem;
}


p {
	margin-top: var(--vspace);
}


hr {
	position: relative;
	display: block;
	height: 1px;
	border: 0;
	background: transparent;
	border-bottom: 1px solid rgba(0,0,0, .3);
	margin: 3rem 0;
}



@media screen and (max-width: 980px) {

}


@media screen and (max-width: 768px) {

}


@media screen and (max-width: 600px) {
	h1,h2 {
		font-size: 32px;
	}
	
	h1 br, h2 br {
		display: none;
	}
	
	h1::after {
	font-size: 2.0rem;
	}
	
	

	h3 {
	}

}


@media screen and (max-width: 360px) {

}


/* LAYOUT
----------------------------------------------------------------------------------*/


/* # Container */

.page-wrap {
	position: relative;
	min-height: 100%;
	height: auto !important;
	height: 100%;
	AUS_overflow: hidden;
	/*sticky footer*/
	display: flex;
	flex-direction: column;
}


.container {
	position: relative;
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 0 var(--container-padding);
}

.container--fluid {
	max-width: 100%;
	padding: 0 50px;
}


@media screen and (max-width: 1280px) {
	.container--wide {
		padding: 0 var(--container-padding);
	}
}


@media screen and (max-width: 360px) {
html, body {
	--container-padding: 15px;
}

}

/* @end */





/* @group ANNOUNCEMENT BAR */

/* ANNOUNCEMENT BAR
--------------------------------------------------------------------------------- */

.announcement-bar {
	position: relative;
	z-index: 100;
	padding: 20px 0;
	background: var(--fichtes-red);
	color: #FFF;
	box-shadow: 0px 0px 30px -10px rgba(0,0,0, .2);
}

.announcement-bar.is-hidden {
	display: none;
}

.announcement-bar a {
	color: #FFF;
	text-decoration: underline;
}

.announcement-bar a:hover {
	opacity: .7;
}

.announcement-bar__content {
	padding: 0 80px;
	text-align: center;
	font-size: var(--text-small);
}

.announcement-bar__content *{
	margin-top: 0;
}

.announcement-bar__close {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	border: none;
	background: none;
	width: 35px;
	height: 35px;
	outline: none;
	overflow: hidden;
	border-radius: 100%;
	border: 0px solid #333;
}

.announcement-bar__close svg {
	margin: 0 auto;
	width: 15px;
    height: 15px;
}

.announcement-bar__close svg path {
	fill: none;
    stroke: #FFF;
	stroke-width: 1.3;
}


@media screen and (max-width: 980px) {
	.announcement-bar__content {
		padding: 0 60px;
	}

	.announcement-bar__close {
		right: 10px;
	}
}

/* @end */




/* @group HEADER */

/* HEADER
--------------------------------------------------------------------------------- */

#header {
	position: relative;
	height: var(--header-height);
	z-index: 3;
	background: #FFF;
}



.header-top {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	padding-top: 10px;
}

.header-top > .container {
	display: flex;
	justify-content: flex-end;
	gap: 30px;
}

.header-top__phone,
.header-top__lang-menu {
	display: flex;
	align-items: center;
	font-size: 0.8rem;
	color: var(--text-color);
	border: 0px solid #333;
}

.header-top__phone {

}

.header-top__phone i {
	margin: 0 5px 0 0;
}

/* Lang Menu */

.header-top__lang-menu {
	color: var(--text-color);
}


.gtranslate_wrapper {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
}

.gtranslate_wrapper a.glink {
	display: block;
	color: var(--text-gray);
	font-size: .75rem;
	font-weight: bold;
	border-bottom: 2px solid transparent;
	line-height: 1.2;
	padding: 4px 2px 2px 2px;
}

.gtranslate_wrapper a.glink:hover {
	color: var(--primary-color);
}


.gtranslate_wrapper a.glink.gt-current-lang {
	border-color: var(--primary-color);
	color: var(--primary-color);	
}



@media screen and (max-width: 1136px) {
	.header-top {
		display: none;
	}
}



/* Logo */

.header-logo {
	display: flex;
	height: 100%;
	align-items: center;	
}

.header-logo .container {
	display: flex;
	width: 100%;
	justify-content: space-between;
	align-items: center;
}


.logo {
	flex: 0 0 auto;
	width: 400px;
}

.logo a {
	display: block;
	transform: translateY(-25%);
}

.logo img {
	display: block;
	width: 100%;
	height: auto;
}


.slogan {
	font-size: 1.05rem;
	font-weight: var(--font-weight-bold);
	text-transform: uppercase;
	color: var(--fichtes-gold);
	margin-bottom: 3px;
	padding-left: 50px;
	line-height: 1.2;
	text-align: right;
}


@media screen and (max-width: 1136px) {

	.header-logo {
	}
	
	.header-logo .container {
		max-width: 100%;
	}
		

	.logo {
		width: 310px;
	}
	
	.logo a {
		transform: translateY(-20%);
	}
}


@media screen and (max-width: 980px) {
	.header-logo .container {
		flex-direction: column;
		transform: translateY(-10px);
	}
		
	.logo a {
		transform: none;
	}
	
	.slogan {
		margin: 0;
		padding: 0;
		font-size: 13px;
	}

}



.header-nav {
	max-width: 100%;
	width: calc(var(--container-width) + 100px);
	margin: 0 auto;
	padding: 0 var(--container-padding);
	transform: translateY(-50%);
}




/* @end */



/* @group SEARCH */

/* Search */

.site-search  {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	visibility: hidden;
	height: 0;
	background: TAN;
	overflow: hidden;
	transition: all 250ms ease-in-out;
}

.search-open .site-search {
	visibility: visible;
	height: 6rem;
}


.searchform {
	position: relative;
	width: 100%;
	max-width: 600px;
	overflow: hidden;
	border-radius: 5px;
}

.searchform input.s {
	width: 100%;
	height: 3.3rem;
	padding: 20px;
	padding-right: 3rem;
	background: #FFF;
	font-size: 1.1rem;
	line-height: 100%;
	color: var(--text-color);
	border:  none;
	box-shadow: none /*remove red border */;
}

.searchform input.s:focus {
	box-shadow: inset 0px 3px 15px -8px rgba(0,0,0, .2);
}


.searchform .searchsubmit {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	padding: 0 20px;
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	overflow: hidden;
	width: 3rem;
	height: 3.3rem;
	z-index: 1;
	background: transparent;
}

.searchform i {
	position: absolute;
	top: 0;
	right: 0;
	width: 3rem;
	height: 3.3rem;
	text-align: center;
	line-height: 3.3rem;
	font-size: 1.4rem;
	color: var(--primary-color);
	background: CYAN;
}

/* @end */



/* @group MENU */

/* MENU
--------------------------------------------------------------------------------- */


#nav {
	--nav-items-gap: 70px;
	--nav-items-gap: clamp(50px, 5vw, 75px);
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	border-radius: 5px;
	height: 70px;
	background: var(--primary-color);
	box-shadow: 0px 10px 35px -10px rgba(0,0,0, .1);
}


#nav > ul {
	display: flex;
	flex-wrap: wrap;
	height: 100%;
	flex: 1;
	padding-left: 50px;
	padding-right: 25px;

}

#nav > ul > li {
	position: relative;
	margin: 0;
	border-bottom: none;
	height: 100%;
	display: flex;
}


#nav > ul li:last-child {
	margin-right: 0;
	padding-right: 0;
}


#nav > ul > li > a {
	position: relative;
	display: flex;
	align-items: center;	
	margin: 0;
	font-size: 19px;
	font-size: clamp(18px, 1.2vw, 19px);
	font-weight: var(--font-weight-bold);
	font-weight: 600; /*arghh … Ausnahme */
	color: #FFF;
	text-transform: capitalize;
}


#nav > ul > li span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--nav-items-gap);
	height: 100%;
}


#nav > ul > li span::before { /*decor*/
	content: "\e819";
	font-family: 'icons';
	font-size: 0.9rem;
	line-height: 1;
	color: rgba(255,255,255, .15);
}

#nav > ul > li:last-child > span {
	display: none;
}


#nav > ul li.menu-item-has-children {
	position: relative;
}

#nav ul li.current-menu-item > a {
}

#nav ul li a:hover {
	color: var(--fichtes-gold);
	text-decoration: none;
}


#nav ul li.menu-item-has-children.active > a {
	color: var(--secondary-color);
}

#nav ul li.current_page_parent a:hover,
#nav ul li.current_page_parent:hover a,
#nav ul li.current_page_item:hover a {
}


.menu-booking-btn {
	color: #FFF;
	text-transform: uppercase;
	font-weight: var(--font-weight-bold);
	font-size: 17px;
	letter-spacing: .5px;
	height: 100%;
	display: flex;
	align-items: center;
	padding: 0 2rem;
	padding: 0 clamp(1.3rem, 3vw, 2rem);
	border: none;
	margin-left: auto;
	border-radius: 0 5px 5px 0;
	background: var(--secondary-color);
	transition: 400ms;
}

.menu-booking-btn:hover {
	color: #FFF;
	background: hsl(40,40%,55%);
}

.menu-booking-btn:active {
}


#nav ul ul {
	display: block;
	position: absolute;
	top: 100%;
	margin-top: 0;
	left: -30px;
	padding: 22px 30px;
	padding-top: 0px;
	z-index: 20;
	border: none;
	border-radius: 0 0 6px 6px;
	background: var(--fichtes-green);
	background: rgba(0, 111, 67, .98);

	min-width: 16rem;

	opacity: 0;
	visibility: hidden;
	transition: all 350ms ease;
}

#nav ul ul::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 20px;
	background: linear-gradient(to bottom,  rgba(0,0,0,0.15) 0%,rgba(0,0,0,0) 100%);
}

#nav ul .active > ul { /*js class toggle*/
	opacity: 1;
	visibility: visible;
	padding-top: 17px;
}


#nav ul ul li {
	margin: 0;
}

#nav ul ul li span {
	display: none;
}

#nav ul ul li a {
	height: auto;
	display: block;
	font-size: 18px;
	font-weight: var(--font-weight-normal);
	text-transform: none;
	color: #FFF;
	padding: 8px 0;
	transition: 350ms;
}

#nav ul ul li > a:hover {
}

#nav ul ul li.menu-item-has-children > a:hover {

}

/* 3rd level */

#nav ul ul ul {
	display: none;
}

@media screen and (max-width: 1136px) {
	#nav {
		display: none;
	}
}




/* Mobile Menu
--------------------------------------------------------------------------------- */


.mob-menu {
	display: none; /*js trigger*/
	position: absolute;
   	top: 0;
   	right: 0;
	width: 100%;
	z-index: 10;
	opacity: 0;
	font-size: 21px;
	background: var(--primary-color);
	animation: navfadeIn 400ms ease-in-out 1 forwards;
	padding: clamp(80px, 15vw, 250px) 0;
}

@media screen and (max-width: 980px) {
	.mob-menu-open .mob-menu {
		display: flex;
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}

}

.mob-menu::before { /*key visual animation*/
	content: "";
	position: absolute;
	bottom: -10vw;
	right: -35vw;
	width: 90vw;
	height: 90vw;
	min-width: 500px;
	min-height: 500px;
	transform: scale(0.8);
	background: transparent url(images/sbb-flower.svg) no-repeat center;
	background-size: contain;
	transform-origin: center;
	opacity: .07;
	border: 0px solid #333;
}

.mob-menu-open .mob-menu::before {
	animation: mobMenuKeyvisualRotate 1s ease-out forwards;
}


@keyframes mobMenuKeyvisualRotate {
  to {
	transform: rotate(35deg) scale(1);
  }
}





.mob-menu .container {
	position: relative;
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
	padding: 0 45px;
	min-height: 100vh;
}


/* Mob Lang Menu */

.mob-lang-menu {
	position: absolute;
	top: 20px;
	left: 20px;
	background: transparent;
	display: flex;
	align-items: center;
	color: #FFF;
}

.mob-lang-menu .gtranslate_wrapper {
	gap: 12px;
}

.mob-lang-menu .gtranslate_wrapper a.glink {
	color: #FFF;
	font-size: .75rem;
	font-weight: bold;
	border-bottom: 2px solid transparent;
	line-height: 1.2;
	padding: 4px 2px 2px 2px;
}

.mob-lang-menu .gtranslate_wrapper a.glink:hover {
	color: #FFF;
	opacity: .6;
}


.mob-lang-menu .gtranslate_wrapper a.glink.gt-current-lang {
	border-color: #FFF;
	color: #FFF;	
}





.mob-menu nav {
}

.mob-menu nav li a {
	display: flex;
	align-items: center;
	line-height: 1.3;
	letter-spacing: .2px;
	padding: 18px 0;
	text-align: left;
	color: #FFF;
	font-weight: var(--font-weight-bold);
	font-weight: 600;
}

.mob-menu nav li a:hover {
	opacity: .6;
}

.mob-menu nav li a br {
	display: none;
}

.mob-menu nav li:first-child a {
	border-top: 0;
}

.mob-menu nav li a:active {
	color: var(--fichtes-gold);
}

.mob-menu nav li.current-menu-item > a {
	color: var(--fichtes-gold);

}

.mob-menu nav li.menu-item-has-children.active > a {
	color: var(--fichtes-gold);
	color: rgba(255,255,255, .5);
}

.mob-menu nav li.menu-item-has-children > a::after {
	content: "\e809";
	display: flex;
	margin-left: 5px;
	align-items: flex-start;
	color: rgba(255,255,255, .2);
	font-family: 'icons';
	font-weight: normal;
	font-size: 1.1rem;
	line-height: 1;
	transition: all 300ms ease;
}

.mob-menu nav li.menu-item-has-children.active > a::after {
	transform: rotate(180deg);
}

.mob-menu nav li.active > a {
		color: var(--fichtes-gold);

}

.mob-menu li.page-ancestor a { /* page-ancestor … add CSS class to WP menu item*/
	display: flex;
	justify-content: space-between;
	font-style: italic;
	font-weight: var(--font-weight-bold);
	font-size: 22px;
	font-size: 1.15rem;
}

.mob-menu li.page-ancestor.current-menu-item a {
	color: var(--fichtes-gold);
}

.mob-menu li.page-ancestor a::after {
	content: "\e808";
	font-family: 'icons';
	font-weight: normal;
	font-style: normal;
}


.mob-menu nav li ul {
	position: relative;
	padding: 0px 0 0 25px;
	margin: 0 0 5px 0;
}

.mob-menu nav li li {
	opacity: 1;
	animation: none;
}

.mob-menu nav li li a {
	text-transform: none;
	letter-spacing: 0;
	border: none;
	padding: 15px 0;
	font-size: 1.0rem;
	font-weight: var(--font-weight-normal);
}

.mob-menu nav li li a:hover {
}

/* Mobile Menu Animation */

@keyframes navfadeIn {
0% {
	opacity: 0.0;
	transform: translate(0px,-50px);
}

100% {
	opacity: 1.0;
	transform: translate(0,0);
	}
}


@keyframes navfadeOut {
0% {
	opacity: 1.0;
	transform: translate(0px,0);
}

100% {
	opacity: 0.0;
	transform: translate(0px,-50px);
	}
}


@keyframes fadeLiIn {
0% {
	opacity: 0.0;
	transform: translate(0px,-10px);
}

100% {
	opacity: 1.0;
	transform: translate(0,0);
	}
}


/* Mobile Menu Trigger */

.mob-menu-trigger {
	display: none;
	position: absolute;
	bottom: 0;
	right: 0;
	transform: translateY(48%);
	border: none;
	width: 55px;
	height: 53px;
	margin: 0 0 0 0;
	z-index: 999;
	text-transform: uppercase;
	background: var(--fichtes-green);
	outline: none;
	border-radius: 5px 0 0 5px;
	transition: 300ms;
}

.mob-menu-trigger.open {
	background: transparent;
	bottom: 75%;

}


@media screen and (max-width: 1136px) {

	.mob-menu-trigger {
		display: block;
	}
	
	.mob-menu-open .mob-menu {
		display: flex;
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}

}



/* Hamburger Icon ani*/


.mob-menu-trigger span {
	margin: 0 auto;
	position: relative;
	padding: 0;
}
.mob-menu-trigger span:before,
.mob-menu-trigger span:after {
	position: absolute;
	content: '';
}
.mob-menu-trigger span,
.mob-menu-trigger span:before,
.mob-menu-trigger span:after {
	width: 26px;
	height: 3px;
	background-color: #FFF;
	display: block;
}
.mob-menu-trigger span:before {
	margin-top: -8px;
}
.mob-menu-trigger span:after {
	margin-top: 8px;
}

.mob-menu-trigger span {
	transition-duration: 0s;
	transition-delay: 0.15s;
}
.mob-menu-trigger.open span {
	background-color: rgba(0,0,0,0.0);
	transition-delay: 0.15s;
}
.mob-menu-trigger span:before {
	transition-property: margin, transform;
	transition-duration: 0.15s;
	transition-delay: 0.15s, 0s;
}
.mob-menu-trigger.open span:before {
	margin-top: 0;
	transform: rotate(45deg);
	transition-delay: 0s, 0.15s;
	background-color: #FFF;
}
.mob-menu-trigger span:after {
	transition-property: margin, transform;
	transition-duration: 0.15s;
	transition-delay: 0.15s, 0s;
}
.mob-menu-trigger.open span:after {
	margin-top: 0;
	transform: rotate(-45deg);
	transition-delay: 0s, 0.15s;
	background-color: #FFF;
}


@media screen and (max-width: 600px) {

	.mob-menu-trigger span,
	.mob-menu-trigger span:before,
	.mob-menu-trigger span:after {
		width: 28px;
	}
}


/* end Hambuger Icon ani*/

/* Menu Animation */

.mob-menu li {
 opacity: 0;
 animation: fadeLiIn 400ms ease-in-out 1 forwards;
 }

.mob-menu li:nth-child(1) {
  animation-delay: 100ms;
}

.mob-menu li:nth-child(2) {
  animation-delay: 200ms;
}

.mob-menu li:nth-child(3) {
  animation-delay: 300ms;
}

.mob-menu li:nth-child(4) {
  animation-delay: 400ms;
}

.mob-menu li:nth-child(5) {
  animation-delay: 500ms;
}

.mob-menu li:nth-child(6) {
  animation-delay: 600ms;
}

.mob-menu li:nth-child(7) {
  animation-delay: 700ms;
}

.mob-menu li:nth-child(8) {
  animation-delay: 750ms;
}



.mob-menu-bottom {
	margin-top: 20px;
	padding-top: 40px;
	text-align: left;
	border-top: 2px solid rgba(0,0,0, .05);
	border-top: 2px solid rgba(255,255,255, .05);
}

.mob-menu__phone {
	font-weight: var(--font-weight-medium);
	font-size: 19px;
	color: #FFF;
}

.mob-menu__phone a {
	color: #FFF;
}

.mob-menu__phone i {
	margin-right: 8px;
}

.mob-menu-booking-btn,
.mob-menu-booking-btn:hover {
	margin-top: 40px;
	display: block;
	text-align: center;
	font-weight: var(--font-weight-bold);
	text-transform: uppercase;
	font-size: 0.95rem;
	padding: 18px 20px;
	border-radius: 5px;
	width: 100%;
	color: #FFF;
	background: var(--fichtes-gold);
	box-shadow: 0px 5px 40px -10px rgba(0,0,0, .3);
}

.mob-menu-booking-btn:active {
	opacity: .5;
}


/* @end */


/* @group CONTENT */

/* CONTENT
--------------------------------------------------------------------------------- */

#content {
	position: relative;
	min-height: 50vh;
	flex: 1 0 auto; /*sticky footer*/
}


main {
	padding-top: 0;
	padding-top: var(--main-padding-top);
	padding-bottom: var(--main-padding-bottom);
}


.aligndefault {
	max-width: var(--aligndefault-width);
	margin-left: auto;
	margin-right: auto;
}

.alignsemiwide {
	max-width: var(--alignsemiwide-width);
}

.alignwide {
	max-width: 100%;
}

.alignfull {
    margin-left  : calc( -100vw / 2 + 100% / 2 );
    margin-right : calc( -100vw / 2 + 100% / 2 );
    max-width    : 100vw;
}


/* @end */

/* @group EDITOR STYLES */


/* WP core styles
--------------------------------------------------------------------------------- */


/* Alignment */

.aligncenter,div.aligncenter {
	display: block;
	margin: 5px auto 5px auto;
}

.alignright {
	float: right;
	margin: 5px 0 20px 20px;
}

.alignleft {
	float: left;
	margin: 5px 20px 20px 0;
	margin: 5px 1.4rem 1.4rem 0;
}

.aligncenter {
	display: block;
	margin: 5px auto 5px auto;
}

a img.alignright {
	float: right;
	margin: 5px 0 1.4rem 1.4rem;
}

img.alignnone,
a img.alignnone {
	margin: 0;
	padding: 0;
}

a img.alignleft {
	float: left;
	margin: 5px 1.4rem 1.4rem 0;
}

a img.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}


@media screen and (max-width: 600px) {
.alignleft,
.alignright,
a img.alignleft,
a img.alignright {
	float: none;
	margin-left: 0;
	margin-right: 0;
}

}

/* Caption */

.wp-caption-text {
	font-size: 0.8rem;
	line-height: 140%;
	color: var(--text-gray);
	padding: 10px 0 10px 0;
}

figure.wp-caption  {
	display: table;
	max-width: 100%;
	margin-top: 2rem;
}

figure.wp-caption figcaption {
	display: table-caption;
	caption-side: bottom ;
}

figure.wp-caption img {
	display: block;
}


@media screen and (max-width: 600px) {

	.wp-caption-text {
		padding-bottom: 0;
	}

}


/* Edit Link */

a.post-edit-link {
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: 10;
	font-size: 11px;
	padding: 8px 12px;
	text-transform: uppercase;
	text-decoration: none;
	background: #0073AA;
	color: #FFF;
}


/* editor elements */


/* === Lists */

ul,
ol {
	margin-top: var(--vspace);

}

ul {
	padding-left: 1.0rem;
	list-style-type: none;
}

li {
	position: relative;
	margin: 0 0 5px 0;
}

ul li::before {
	position: absolute;
	content: "•";
	margin: -0.05rem 0 0 -1.0rem;
}

ol {
	padding-left: 1.5rem;
}


.list-unstyled,
.list-unstyled li {
	padding: 0;
	margin: 0;
	list-style: none;
}

.list-unstyled li:before {
	display: none;
}

/* list styles */


.list-style.line ul li:before {
	display: none;
}

.list-style.line ul,
.list-style.line ul li {
	padding-left: 0;
}

list-style.line ul li {
	padding: 0.5rem 0;
	margin-bottom: 0.2rem;
	border-bottom: 1px solid rgba(67, 0, 43, 0.3);
}

.list-style.line ul li:last-child {
	border-bottom: none;
}

/*list style: linkbox*/

.list-style.linkbox ul li:before {
	content: "\e803";
	position: absolute;
	margin: -0.1rem 0 0 -1.45rem;
	font-family: 'icons';
	font-size: 1.2rem;
	color: var(--link-color);
}

.list-style.linkbox ul {
	margin-top: calc(var(--vspace) + 0.2rem);
	padding: 20px 35px;
	padding: 30px clamp(20px, 5vw, 35px);
	border-radius: var(--border-radius);
	background: var(--secondary-bg);
}

.list-style.linkbox ul li {
	margin: 0;
	padding-block: 7px;
	padding-left: 1.1rem;
	border: 0px solid #333;
	font-weight: var(--font-weight-bold);
	AUS_border-bottom: 1px solid rgba(208, 177, 115, .5);
}




/* === Icons */


i { /* IE */
	font-family: 'icons';
    -webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}



/* === Embeds, iFrames  */


iframe {
}

iframe.googlemap {
	width: 100%!important;
	height: 400px;
}


iframe.googlemap.size-1 { height: 300px;}
iframe.googlemap.size-2 { height: 400px;}
iframe.googlemap.size-3 { height: 600px;}


.embed-responsive {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  margin-top: var(--vspace);  
  min-height: 360px;
}

.embed-responsive iframe,
.embed-responsive object,
.embed-responsive embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}


/* === Shortcodes / Quicktags  */

.text-large {
	font-size: 120%;
}

.text-small {
	font-size: 11px;
	font-size: 0.8em;
	line-height: 150%;
	margin-bottom: 2rem;
}

.text-quote {
	position: relative;
	margin: 3rem auto;
	max-width: 550px;
	font-style: normal;
	font-size: 140%;
	line-height: 1.3;
	font-weight: var(--font-weight-bold);
	color: var(--primary-color);
}

.text-quote p:empty {
	display: none;
}

.text-quote strong {
	font-weight: normal;
}

.text-quote p:last-of-type {
	margin-bottom: 0;
}

.text-quote .cite {
	font-size: 0.8rem;
	font-style: normal;
	font-weight: var(--font-weight-bold);
	display: block;
	margin: 1rem 0 0 0;
	font-family: var(--font-sans);
	font-weight: 700;
	color: var(--text-gray);
}


.box {
	font-size: 0.95rem;
	padding: 2rem;
	padding: var(--box-padding);
	margin: calc(var(--vspace) + .5rem) 0;
	border-radius: var(--border-radius);
	background: #DAE5DB;
}

.box > * {
	--vspace: 1.0rem;
}

.box > *:first-child {
	margin-top: 0;
}

.box p:empty {
	display: none;
}

.box-green {
	background: var(--secondary-bg);
}

.box-red {
	background: var(--fichtes-red-bg);
}


i.icon {
	font-weight: normal!important;
}

.icon.download {
	font-size: 1.9rem;
	color: var(--link-color);
	margin: 0 5px 5px 0;
	vertical-align: middle;
	display: inline-block;
}

.icon.download:before {
	margin: 0;
}

.icon.bullet {
	font-size: 85%;
}

.button-p {
}

.space + * {
	margin-top: 0;
}


/* === Columns */

.sc-row {
	margin-top: var(--vspace);
}

.sc-column.col > *:first-child {
	margin-top: 0;
}


@media screen and (max-width: 768px) {
	.sc-row .sc-column.col{
		margin-top: var(--vspace);
	}

	.sc-row .sc-column.col:first-child {
		margin-top: 0;
	}
}



/* === Tables */

.table-container {
	margin-top: var(--vspace);
	position: relative;
	width: 100%;
	overflow: scroll;
	width: calc(100% + 30px); /*enable overflow on right side */
	padding-right: 30px;
}

AUS__.table-container::after { /*overflow fade*/
	content: "";
	position: absolute;
	top: 0;
	right: -30px;
	width: 30px;
	height: 100%;
	background: BLUE;
	background: linear-gradient(to right, rgba(252, 249, 242, 0) 0%, rgba(252, 249, 242, 1) 70%);
}


table {
	width: 100% !important; /*override inline td width*/
	max-width: 100%;
}

table thead {
	border-bottom: 3px solid var(--border-color);
}

table thead td {
	font-weight: var(--font-weight-bold);
}

table tr {
	background: transparent;
	border-bottom: 1px solid var(--border-color);
}

table tr:last-child {
	border-bottom: none;
}

table tr th {
}

table tr td {
	padding: 0.9rem 0.0rem 0.7rem 0.0rem;
	padding-right: 1rem;
}

table tr td:last-child {
}


table p {
	margin: 0;
}


/* === Buttons */


.btn {
	position: relative;
	text-transform: uppercase;
	padding: 0.8rem 1.8rem;
	font-weight: var(--font-weight-bold);
	font-size: 18px;
	font-size: .85rem;
	display: inline-flex;
	color: #FFF;
	letter-spacing: .3px;
	border-radius: 5px;
	background: var(--secondary-color);
	z-index: 1;
	border: none;
	overflow: hidden;
	border: 0px solid var(--secondary-color);
	transition: 400ms;
}


.btn:hover {
		color: #FFF;
		background: hsl(40,40%,55%);
	}


.btn--white {
	background: #FFF;
	color: var(--fichtes-green);
}

.btn--white:hover {
	background:	rgba(255,255,255, .7);
	color: var(--fichtes-green);
}

.btn-text {
	display: inline-flex;
	align-items: center;
	font-size: .95rem;
	font-weight: var(--font-weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.3px;
	padding: 0;
	line-height: 1;
	color: var(--fichtes-gold);
	border: none;
	overflow: visible;
	background: transparent;
}

.btn-text:active {
	background: transparent;
}

.btn-text:hover {
	background: transparent;
	padding: 0;
	opacity: 1;
	color: var(--fichtes-red);
}

.btn-text::after {
	content: "\e817"; /*bd2*/
	font-family: 'icons';
	font-size: 2.2rem;
	font-weight: normal;
	margin: 0 0 0 8px;
	transition: transform 300ms ease;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-height: 0;
	transform: translateX(0.5px);
}

.btn-text:hover::after {
	transform: translateX(10px);
}



/* @end */


/* @group PAGEBANNER */

/* Pagebanner
--------------------------------------------------------------------------------- */


/* Pagebanner */

.pagebanner {
	display: flex;
	align-items: flex-end;
	position: relative;
	z-index: 0;
	margin-top: calc(var(--main-padding-top) * -1); /*  minus the main top padding*/
	margin-bottom: calc(var(--vspace-xl) - 1rem);
	overflow: hidden;
	height: 750px; /*the height*/
	height: clamp(350px, 50vw, 750px);
}


.pagebanner__content {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 var(--container-padding);
}

.pagebanner__title {
	color: #FFF;
	margin: 0 0 1.5rem 0;
	max-width: 650px;
	font-size: 64px;
	font-size: clamp(38px, 5vw, 64px);
	text-transform: none;
	text-align: center;
	line-height: 1.1;
	text-shadow: 0px 2px 10px rgba(0,0,0, .3);
}

.pagebanner__title::after {
	display: none;
}

.pagebanner__image-wrap {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.pagebanner img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
	opacity: 1;
}

.pagebanner__overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: 0.1;
}


.pagebanner::before { /*key visual */
	content: "";
	position: absolute;
	bottom: 0;
	right: 0vw;
	width: 50vw;
	height: 50vw;
	min-width: 300px;
	min-height: 300px;
	AUS_transform: scale(0.8);
	transform: translate(40%,35%) rotate(0deg) scale(.8);
	background: transparent url(images/sbb-flower.svg) no-repeat center;
	background-size: contain;
	transform-origin: center;
	opacity: .2;
	z-index: 1;
	animation: pagebannerKeyvisualAni 1s ease-out forwards;

}

@keyframes pagebannerKeyvisualAni{
  to {
	transform: translate(40%,35%) rotate(35deg) scale(1);
  }
}


.pagebanner__wave {
	position: absolute;
	bottom: -2px;
	right: 0;
	height: 100px;
	width: 100%;
	display: flex;
	align-items: flex-end;
}

.pagebanner__wave.reveal-visible {
	AUS_animation: waveIn 800ms ease-out forwards;
}

.pagebanner__wave svg {
	display: block;
	width: 100%;
}

.pagebanner__wave path {
	fill: var(--body-bg);
}

@keyframes waveIn {
  0% {
  	width: 200%;
  }
  100% {
  	width: 100%;

  }
}

@media screen and (max-width: 980px) {
	.pagebanner__title {
		margin: 0 0 .5rem 0;
	}
}


@media screen and (max-width: 600px) {
	.pagebanner {
		margin-bottom: 3rem;
	}
	

}




/* @end */



/* @group CONTENTBLOCKS */

/* CONTENTBLOCKS - FLEX CONTENT
--------------------------------------------------------------------------------- */


/* General */

main .contentblock:first-child {
	margin-top: 0;
}

main .contentblock:last-child {
	margin-bottom: 0;
}

.contentblock > *:first-child {
	margin-top: 0;
}

.contentblock > *:last-child {
	margin-bottom: 0;
}

.contentblock {
	margin-top: calc(var(--vspace) + 1.5rem);

	max-width: var(--aligndefault-width); /*default width*/
	margin-left: auto;
	margin-right: auto;

	border: 0px dashed #ddd; /*helper*/
}

.contentblock-text + .contentblock-text {
	margin-top: calc(var(--vspace) + 1rem);
}

.contentblock.alignwide {
	max-width: 100%;
}

.contentblock.alignfull {
    margin-left  : calc( -100vw / 2 + 100% / 2 );
    margin-right : calc( -100vw / 2 + 100% / 2 );
    max-width    : 100vw;
}

.contentblock img {
	border-radius: var(--border-radius);
}


/* @group TEXT */

/* Text
--------------------------------------------------------------------------------- */


.contentblock-text {
}

.contentblock-text ul {
	font-size: 0.95rem;
	padding: var(--box-padding);
	padding: clamp(20px, 4vw, 35px);
	border-radius: var(--border-radius);
	background: var(--secondary-bg);
}

.contentblock-text ul li {
	padding-left: 20px;
}



/* @end */


/* @group IMAGE */


/* Image
--------------------------------------------------------------------------------- */


.contentblock-image {
}

.contentblock-image + .contentblock-image {
}

.contentblock-image img.size-large {
	display: block;
	width: 100%;
}


.contentblock-image figure.alignright {
	float: right;
	text-align: right;
}

.contentblock-image figure.alignright img {
	display: block;
	float: right;
}

.contentblock-image figure.alignright a {
	float: right;
}

.contentblock-image figure.alignright figcaption {
	clear: both;
}

.contentblock-image figure.aligncenter {
	text-align: center;
}

.contentblock-image figure.aligncenter img {
	display: inline-block;
}

.contentblock-image.alignfull img {
	border-radius: 0;
}

/* @end */



/* @group IMAGE-TEXT */



/* Image-Text
--------------------------------------------------------------------------------- */


.contentblock-imagetext {
}

.imagetext {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
	gap: clamp(30px, 4vw, 50px)
}


.imagetext.image-w33 {
	grid-template-columns: 1fr 2fr;
}

.imagetext.image-w25 {
	grid-template-columns: 1fr 3fr;
}

.imagetext.image-w10 {
	grid-template-columns: 1fr 9fr;
}


.imagetext__image {
	width: 100%;
}

.imagetext__image img {
	display: block;
	width: 100%;
}

.imagetext__text {
}

.imagetext__text > *:first-child {
	margin-top: 0;
}

.imagetext.image-alignright {
}

.imagetext.image-alignright .imagetext__image {
	order: 2;
}


/* text vertical align */

.imagetext.text-valigntop {
}

.imagetext.text-valigncenter .imagetext__text{
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.imagetext.text-valignbottom .imagetext__text {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

/* image widths */
.imagetext.image-w100 {
	grid-template-columns: 1fr;
}

.imagetext.image-w50 .imagetext__image {

}

.imagetext.image-w33 .imagetext__image {
}

.imagetext.image-w25 .imagetext__image {
}


/* has custom aspect ratio */
.imagetext__image.has-ratio figure {
	position: relative;
}

.imagetext__image .ratio-wrap {
	position: relative;
}

.imagetext__image.ratio-1-1 .ratio-wrap { padding-top: 100%; }
.imagetext__image.ratio-4-3 .ratio-wrap { padding-top: 75%; }
.imagetext__image.ratio-3-2 .ratio-wrap { padding-top: 66.66%; }
.imagetext__image.ratio-16-9 .ratio-wrap { padding-top: 56.25%; }

.imagetext__image.has-ratio .image-wrap {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
}

.imagetext__image.has-ratio img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
}


/* has fixed height (cover) */

.imagetext__image.fixed-height figure {
	height: 100%;
	display: flex;
	flex-direction: column;
}

.imagetext__image.fixed-height .ratio-wrap {
	flex: 1;
}

.imagetext__image.fixed-height .image-wrap {
	height: 100%;
}

.imagetext__image.fixed-height img  {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
}


.imagetext__image.fixed-height-lg {
	height: 500px;
}

.imagetext__image.fixed-height-xl {
	height: 800px;
}



@media screen and (max-width: 980px) {

}


@media screen and (max-width: 768px) {
	/*alignwide image that stacks*/
	.alignwide .imagetext.image-w50 {
		grid-template-columns: 1fr;
		gap: var(--vspace);
	}

	.imagetext.image-alignright.stacked-on-mobile:not(.image-valignbottom) .imagetext__image {
		order: 0;
	}

}


@media screen and (max-width: 600px) {
	.imagetext {
		gap: 20px;
	}

	.imagetext.stacked-on-mobile {
		gap: var(--vspace) 0;
	}

	/* image goes full width*/
	.imagetext.stacked-on-mobile.image-w50 {
		grid-template-columns: 1fr;
	}

	/* image stacks */
	.imagetext.stacked-on-mobile.image-w33,
	.imagetext.stacked-on-mobile.image-w25  {
		grid-template-columns: 1fr;
	}

	.imagetext.stacked-on-mobile.image-w33 .imagetext__image {
		max-width: 50%;
	}

	.imagetext.stacked-on-mobile.image-w25 .imagetext__image {
		max-width: 40%;
	}

	.imagetext.stacked-on-mobile.image-w10 .imagetext__image {
    	max-width: 30%;
	}

	/* image bottom */
	.imagetext.stacked-on-mobile.image-valignbottom .imagetext__image {
		order: 2;
	}

}


/* @end */


/* @group GALLERY */

/* Gallery
--------------------------------------------------------------------------------- */

.contentblock-gallery {
}

.gallery {
	--gallery-gap: 10px;
	display: flex;
	flex-wrap: wrap;
	margin-left: -30px; /*offset gap*/
	margin-left: calc(var(--gallery-gap) * -1); /*  offset gap */
	margin-bottom: calc(var(--gallery-gap) * -1)!important; /*  minus the gap */;
}

.gallery__item {
	position: relative;
	flex: 0 0 auto;
	width: calc(100% / 3); /*default 3 colums*/
	overflow: hidden;
	display: flex;
	flex-direction: column;
	padding: 0px 0 var(--gallery-gap) var(--gallery-gap); /*gap*/
}

.gallery.columns-1 .gallery__item { width: calc(100% / 1); }
.gallery.columns-2 .gallery__item { width: calc(100% / 2); }
.gallery.columns-3 .gallery__item { width: calc(100% / 3); }
.gallery.columns-4 .gallery__item { width: calc(100% / 4); }
.gallery.columns-5 .gallery__item { width: calc(100% / 5); }
.gallery.columns-6 .gallery__item { width: calc(100% / 6); }


@media screen and (max-width: 1024px) {

.gallery.columns-2 .gallery__item { width: calc(100% / 1); }
.gallery.columns-3 .gallery__item { width: calc(100% / 2); }
.gallery.columns-4 .gallery__item { width: calc(100% / 2); }
.gallery.columns-5 .gallery__item { width: calc(100% / 3); }
.gallery.columns-6 .gallery__item { width: calc(100% / 3); }

}

@media screen and (max-width: 600px) {

.gallery.columns-3 .gallery__item { width: calc(100% / 2); }
.gallery.columns-4 .gallery__item { width: calc(100% / 2); }
.gallery.columns-5 .gallery__item { width: calc(100% / 2); }
.gallery.columns-6 .gallery__item { width: calc(100% / 2); }

}


.gallery.gap-zero {
	--gallery-gap: 0;
}

.gallery__item .ratio-wrap {
	flex: 0; /*1*/
	display: flex;
}

.gallery__item .image-wrap {
	flex: 1;
}

.gallery__item a {
	display: block;
	height: 100%;
}

.gallery__item  img {
	display: block;
	margin: 0;
	width: 100%;
}


/* gallery cropped */
.gallery__item.is-cropped  {
	flex: 1 0 auto; /* images in last row take remaining space*/
}

.gallery__item.is-cropped  img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
}

/* gallery has custom aspect ratio */
.gallery__item.has-ratio .ratio-wrap {
	position: relative;
}

.gallery__item.ratio-1-1 .ratio-wrap { padding-top: 100%; }
.gallery__item.ratio-4-3 .ratio-wrap { padding-top: 75%; }
.gallery__item.ratio-3-2 .ratio-wrap { padding-top: 66.66%; }
.gallery__item.ratio-16-9 .ratio-wrap { padding-top: 56.25%; }


.gallery__item.has-ratio .image-wrap {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
}

.gallery__item.has-ratio img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
}

.gallery__item figcaption {
}

@media screen and (max-width: 1024px) {

	.gallery {
		--gallery-gap: 16px;
	}
}


/* -- Gallery Masonry (JS) */


.gallery-masonry {
	display: block;
	background: lightblue;
}

.gallery-masonry:after {
	content: '';
	display: block;
	clear: both;
}

.gallery-masonry__item {
	display: block;
	float: left;
}

.gallery-masonry__item a {
	display: block;
}

/* @end */


/* @group VIDEO */

/* Video
--------------------------------------------------------------------------------- */


.contentblock-video {
}

/* @end */


/* @group GOOGLE MAP */

/* Google-Map
--------------------------------------------------------------------------------- */

.contentblock-google-map {
}

/* @end */


/* @group ACCORDION */

/* Accordion
--------------------------------------------------------------------------------- */


.contentblock-accordion {
	margin-top: var(--vspace);
	
}

.accordion {
	border-bottom: 1px solid var(--border-color);

}

.accordion-item {
	position: relative;
	border: none;
	margin-bottom: -1px;
}


.accordion-item:last-child {
	margin-bottom: 0;
}

.accordion-item:first-of-type {
	margin-top: 0;
}

.accordion-heading {
	margin: 0;
	padding: 0;
	border: none;
	text-transform: none;
}

.accordion-heading.active {
	z-index: 1;
	
	/*TEST Sticky Header 
	background: CYAN;
	position: sticky;
	top: -1px;
	border: 2px solid RED;
	 */
}

.accordion-trigger {
	display: block;
	position: relative;
	border: none;
	text-align: left;
	width: 100%;
	padding: 1.2rem 0;
	padding-right: 3.5rem;
	font-size: 1.0rem;
	line-height: 140%;
	color: var(--link-color);
	background: transparent;
	border-top: 1px solid var(--border-color);
	font-weight: var(--font-weight-bold);
    outline-offset: -5px;
	transition: all 300ms ease;
}

.accordion-trigger:hover {
	text-decoration: none;
}

.accordion-trigger.active {

}

.accordion-trigger:hover,
.accordion-trigger:hover i::after,
.accordion-trigger.active,
.accordion-trigger.active i::after {
	color: var(--link-color-hover);
}

.accordion-trigger:hover i {
	text-decoration: none;
}

.accordion-trigger i:after {
	position: absolute;
	top: 1.2rem;
	right: 0;
	margin: 0;
	content: "\e809";
	display: block;
	line-height: 1;
	border-radius:0;
	font-family: 'icons';
	font-size: 1.5rem;
	font-weight: normal;
	font-style: normal;
	color: var(--link-color);
	text-decoration: none;
	transition: all 250ms ease-in-out;
}

 .accordion-trigger.active i:after {
	transform: rotate(180deg);
}

.accordion-content {
	position: relative;
	padding: 0 0 2rem 0;
	display: none; /*js*/

}

.accordion-content > *:first-child {
	margin-top: 0;
}

/* @end */

/* @group DOWNLOADS */

/* Downloads
--------------------------------------------------------------------------------- */


.contentblock-downloads {
}

.downloads__title {

}

.downloads__list {
	margin-top: var(--vspace);
}

.downloads__list li {
	padding: 0.3rem 0;
	padding-left: 2rem;
	border-bottom: 1px solid var(--border-color);
}

.downloads__list li:last-child {
	border-bottom: none;
}

.downloads__list li i {
	display: inline-block;
	margin-left: -2rem;
	width: 2rem;
	font-size: 1.5rem;
}

.downloads__list li i:before {
	margin: 0;
}

.downloads__list li a {
	font-weight: var(--font-weight-bold);
}

.downloads__item-caption {
	font-size: var(--text-small);
}

/* @end */


/* @group IMAGE-SLIDER */

/* Image-Slider
--------------------------------------------------------------------------------- */


.contentblock-image-slider {

}

.contentblock-image-slider .swiper-container {
    height: 600px; /*the height*/
	height: clamp(400px, 70vw, 600px); /*the height*/
	border-radius: var(--border-radius);
}

.contentblock-image-slider.alignwide .swiper-container {
    height: 750px; /*the height*/
	height: clamp(400px, 70vw, 750px); /*the height*/
}

.contentblock-image-slider.alignfull .swiper-container {
    height: 860px; /*the height*/
	height: clamp(460px, 70vw, 850px); /*the height*/
}


.contentblock-image-slider .swiper-wrapper {
     height:100%;

}

.contentblock-image-slider .swiper-slide {
	position: relative;
}

.swiper-slide-image-wrap {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
}

.contentblock-image-slider img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
}

.swiper-container.has-items-1 .swiper-pagination,
.swiper-container.has-items-1 .swiper-button {
	display: none; /*hide if only 1 item*/
}


.swiper-button {
	color: rgba(255,255,255, .9);
	padding: 30px;
	margin-top: -30px;
	background: rgba(0,0,0, .0);
	border-radius: 100%;
	transition: all 300ms ease;
	text-shadow: 0 0 15px rgba(0,0,0, .2);
	z-index: 1;
}


.swiper-button:hover {
	background: rgba(208, 177, 115, .0);
	opacity: .6;
}

.swiper-button-disabled {
	opacity: 0;
}

.swiper-button-prev {
	transform-origin: left;
	left: 0px;
}

.swiper-button-next {
	transform-origin: right;
	right: 0px;
}

.swiper-button::after {
	font-size: 26px;
	font-family: 'icons';
}

.swiper-button-prev::after {
	content: "\ebd1";
}

.swiper-button-next::after {
	content: "\ebd3";
}

.swiper-pagination-bullets {
	bottom: 15px!important;
}

.swiper-pagination-bullet {
	background: rgba(255,255,255, .8);
	opacity: 1;
	width: 10px;
	height: 10px;
	transition: all 250ms ease;
	box-shadow: 0px 0px 10px -2px rgba(0,0,0, .3);
}

.swiper-pagination-bullet:only-child {
    display: none;
}


.swiper-pagination-bullet-active {
	background: var(--primary-color);
	transform: scale(1.0);
}


@media screen and (max-width: 980px) {
	.swiper-button {
		transform: scale(0.6);
	}
}

/* @end */


/* @group FORM */

/* Form
--------------------------------------------------------------------------------- */


.contentblock-form {
	margin: var(--vspace-xl) 0;
	padding: var(--vspace-xl) 0;
	background: var(--primary-bg);
}

main .contentblock-form:last-child {
	margin-bottom: calc(var(--main-padding-bottom) * -1);
	padding-bottom: calc(var(--vspace-xl) + 2.5rem);
}

@media screen and (max-width: 600px) {
	.contentblock-form:last-child {
		padding-bottom: calc(var(--vspace-xl) + 1.5rem);
	}

}



/* @end */

/* @group TEASER */

/* Teaser
--------------------------------------------------------------------------------- */


.contentblock-teaser {
	margin: var(--vspace-xl) 0;
}


.contentblock-teasers + .contentblock-teasers {
}

.teaser + .teaser {
	margin-top: 50px;
}

.teaser {
	--teaser-offset-x: 30px;
	--teaser-offset-y: 60px;
	max-width: calc(var(--container-width) + 100px);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	padding: 0 var(--container-padding);
}

.teaser__image {
	position: relative;
	border-radius: var(--border-radius);
	overflow: hidden;
	aspect-ratio: 4 / 3.2;
	margin-right: calc(var(--teaser-offset-x) * -1);
	margin-bottom: var(--teaser-offset-y);
}

.teaser:nth-child(even) .teaser__image {
	order: 1;
	margin-left: calc(var(--teaser-offset-x) * -1);
	margin-right: 0;
	margin-top: var(--teaser-offset-y);
	margin-bottom: 0;
}


.teaser__image-wrap {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.teaser__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
	border-radius: 0;
}

.teaser__content {
	position: relative;
	padding: 80px;
	padding: 80px clamp(40px, 5vw, 80px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	overflow: hidden;
	background: var(--fichtes-green);
	color: #FFF;
	border-radius: var(--border-radius);
	margin-left: calc(var(--teaser-offset-x) * -1);
	margin-top: var(--teaser-offset-y);
}

.teaser__content > * {
	max-width: 500px;
}


.teaser:nth-child(even) .teaser__content {
	margin-left: 0;
	margin-right: calc(var(--teaser-offset-x) * -1);
	margin-top: 0;
	margin-bottom: var(--teaser-offset-y);
}


.teaser:nth-child(2n) .teaser__content {
	background: var(--fichtes-red);
}

.teaser:nth-child(2n) .btn {
	color: var(--fichtes-red);
}

.teaser:nth-child(3n) .teaser__content {
	background: var(--fichtes-gold);
}

.teaser:nth-child(3n) .btn {
	color: var(--fichtes-gold);
}


.teaser__title {
	font-size: 34px;
	font-size: clamp(30px, 3vw, 34px);
	color: #FFF;
	margin: 0 0 -.5rem 0;
}

.teaser__content p {
}

.teaser__content::before { /*key visual */
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 100%;
	height: 100%;
	transform: translate(40%,40%) rotate(0deg) scale(1);
	background: transparent url(images/sbb-flower.svg) no-repeat center;
	background-size: contain;
	transform-origin: center;
	opacity: .1;
	z-index: 1;
}


@media screen and (max-width: 980px) {
	.teaser__image {
		aspect-ratio: 1/1;
	}
}


@media screen and (max-width: 768px) {

	.teaser {
		grid-template-columns: 1fr;
		padding: 0;
	}
	
	.teaser + .teaser {
	}

	.teaser__image {
		margin: 0!important;
		aspect-ratio: 4/3;
		border-radius: 0;
		order: 0!important;
	}
	
	.teaser__content {
		margin-bottom: 0!important;
		margin-left: var(--container-padding)!important;	
		margin-right: var(--container-padding)!important;	
		margin-top: -65px!important;
		padding: 65px 50px;
	}
}

/* @end */


/* @group LINK CARDS */

/* Link Cards
--------------------------------------------------------------------------------- */


.contentblock-link-cards {
	margin: var(--vspace-l) 0;
}


.link-cards__section-title {
	margin: var(--vspace-xl) 0!important;
	text-align: center;
	font-size: 1rem;
	text-transform: uppercase;
	color: var(--text-gray);
}

.link-card {
	position: relative;
	background: var(--primary-bg);
}

.link-cards__grid {
	--gap: 30px;
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--gap);
}


.link-card {
	position: relative;
	flex: 1;
	flex-basis: calc(60% - var(--gap));
	height: 410px;
	AUS_height: clamp(300px, 2vw, 400px);
	border-radius: var(--border-radius);
	overflow: hidden;
}


.link-card:nth-child(2),
.link-card:nth-child(3),
.link-card:nth-child(6),
.link-card:nth-child(7),
.link-card:nth-child(10)  {
	flex-basis: calc(40% - var(--gap));
}


.link-card__image {
	position: relative;
	height: 100%;
}

.link-card__image::after { /*overlay*/
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0,0,0, .15);
	transition: 300ms;
}

.link-card:hover .link-card__image::after {
	background: rgba(0,0,0, .3);
}


.link-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
	border-radius: none;
	transition: 1200ms!important;
}

.link-card:hover img {
	transform: scale(1.1);
}

.link-card__link {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	top: 0;
	height: 100%;
	width: 100%;
	padding: 30px;
}

.link-card__title {
	position: relative;
	margin: 0;
	color: #FFF;
	text-align: center;
	line-height: 1.1;
	width: 100%;
	font-size: 32px;
	font-size: clamp(26px, 2.5vw, 32px);
	text-shadow: 0 0 10px rgba(0,0,0, .2);
}

.link-card__title::after { /*decor*/
	content: "\e819";
	font-family: 'icons';
	display: block;
	font-size: 2.0rem;
	line-height: 1;
	margin: 0.6rem 0 -1.5rem 0;
	transition: 500ms;
}

.link-card:hover .link-card__title::after {
	color: var(--fichtes-gold);
}


@media screen and (max-width: 980px) {
	.link-cards__grid {
		--gap: 20px;
	}
	
	.link-card {
		flex-basis: calc(50% - var(--gap));
	}
	
	.link-card__title::after {
		opacity: 1;
		margin-top: .6rem;
	}
}

@media screen and (max-width: 600px) {
	.link-cards__grid {
		display: grid;
		grid-template-columns: 1fr;
	}
	
	.link-card {
		height: 410px;
		height: clamp(280px, 70vw, 410px);
	}

	
}

/* @end */




/* @group TESTIMONIAL SLIDER */

/* Testimonial Slider
--------------------------------------------------------------------------------- */


.contentblock-testimonial-slider {
	margin: var(--vspace-xl) 0;
}

.section-title {
	margin: 0;
	padding: 0 0 2rem 0;
	text-align: center;
}

.testimonial-slider__title{
}

.section-title


.testimonial-slider {
}

.testimonial-slider .swiper-container {
	padding-bottom: 50px; /*space for pagination*/
}

.testimonial-slider .swiper-slide {
  height: auto;
  padding-bottom: 20px;
 }

 .testimonial-slider .swiper-slide:nth-child(2n) {
 	padding-top: 20px;
 	padding-bottom: 0;
 }


.testimonial-slider-card {
	--vspace: 1rem;

	display: flex;
	height: 100%;
	flex-direction: column;
	justify-content: center;

	padding: 60px;
	padding: 60px clamp(30px, 5vw, 60px);
	font-size: 17px;
	font-size: 0.75rem;
	background: var(--fichtes-gold-bg);
	background: rgba(208, 177, 115, .2);
	border-radius: 10px;
}

.swiper-slide:nth-child(2n) .testimonial-slider-card {
	background: var(--fichtes-green-bg);
	AUS_margin-top: 20px;
	margin-bottom: 0;
}

.swiper-slide:nth-child(3n) .testimonial-slider-card {
	background: var(--fichtes-red-bg);
}


.testimonial-slider-card__inner {

}

.testimonial-slider-card__title {
	margin: 0;
	font-size: 1.2rem;
	line-height: 1.2;
	padding-left: 1ch;
}

.testimonial-slider-card__title::first-letter {
	margin-left: -1ch;
}

.testimonial-slider-card__text {
	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	-hyphens: auto;
}

.testimonial-slider-card__source {
	color: var(--text-gray);

}

.testimonial-slider .swiper-pagination-bullets {
	bottom: 1px!important;
}

.testimonial-slider .swiper-pagination-bullet {
	background: var(--primary-color);
	opacity: .5;
}

.testimonial-slider .swiper-pagination-bullet-active {
	background: var(--secondary-color);
	opacity: 1;
}

/* @end */


/* @group TEAM */

/* Team
--------------------------------------------------------------------------------- */



.contentblock-team {

}

.team-items {
	display: grid;
	gap: var(--vspace);
}

.team-item {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	gap: clamp(30px, 4vw, 40px);
}


.team-item__image {
}

.team-item:nth-child(even) .team-item__image {
	order: 2;
}

.team-item__image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--border-radius);
}

.team-item__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
}


@media screen and (max-width: 600px) {
	.team-item {
		grid-template-columns: 1fr;
		gap: var(--vspace);
		margin-bottom: 20px;
	}
	
	.team-item__image {
		order: 1;
	}


}



/* @end */




/* @group PDF EMBED */

/* PDF Embed
--------------------------------------------------------------------------------- */


.contentblock-pdf-embed {
	margin-top: var(--vspace);
	border: 1px solid var(--primary-color);
	border-radius: 5px;
	overflow: hidden;
	box-shadow: 0px 3px 35px -10px rgba(0,0,0, .2);

}

.pdf-embed__title {
	color: #FFF;
	padding: 20px;
	font-weight: var(--font-weight-bold);
	background: var(--primary-color);
}

.contentblock-pdf-embed iframe {
	width: 100%;
	height: 800px;
	height: clamp(550px, 60vw, 900px);
	min-height: 85vh;
	overflow: hidden;
	border: none;

}

/* @end */


/* @group WEBCAM */

/* Webcam
--------------------------------------------------------------------------------- */



.contentblock-webcam {
	border-radius: 5px;
	overflow: hidden;
	box-shadow: 0px 3px 35px -10px rgba(0,0,0, .3);
}

.webcam-embed {
	position: relative;
	padding-top: 56.25%; /*aspect-ratio 16:9*/
	background: #FFF;
	display: flex;
	justify-content: center;
	align-items: center;
} 

.webcam-embed::after { /**/
	content: "LIVE";
	position: absolute;
	top: 15px;
	left: 15px;
	color: #FFF;
	line-height: 1;
	font-weight: bold;
	font-size: 0.8rem;
	text-shadow: 0 0 8px rgba(0,0,0, .3), 0 0 18px rgba(0,0,0, .1);
}

.contentblock-webcam iframe {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	width: 100%;
	overflow: hidden;
	border: none;
	height: 100%;
	AUS_aspect-ratio: 16 / 9;
	AUS_pointer-events: none; /*prevent fullscreen button on hover*/
}


.webcam-embed ._brlbs-content-blocker {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	display: flex;
	align-items: center;
	background: #999;
	z-index: 1;
}

.webcam-embed ._brlbs-content-blocker > * {
	margin: 0!important;
	border-radius: 5px;
}


/* @end */


/* @group OUTDDORACTIVE EMBED */



/* Outdooractive Embed
--------------------------------------------------------------------------------- */

.contentblock-outdooractive {
	margin-top: var(--vspace);
}

.contentblock-outdooractive + .contentblock-outdooractive {
	margin-top: 0;
}

.outdooractive-embed-wrap .oax-embed-widget iframe{
	box-shadow: 0px 3px 20px -10px rgba(0,0,0, .2);
}

.outdooractive-embed-wrap--shortcode {
	margin-top: var(--vspace);
}


/* @end */


/* @group IMAGE COLLAGE */

/* Image Collage
--------------------------------------------------------------------------------- */


.contentblock-image-collage {

}


.image-collage__grid {
	--gap: 10px;
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--gap);
}


.image-collage__item {
	flex: 1;
	flex-basis: calc(60% - var(--gap));
	height: 460px;
	AUS_height: clamp(300px, 2vw, 400px);
}


.image-collage__item:nth-child(2),
.image-collage__item:nth-child(3),
.image-collage__item:nth-child(6),
.image-collage__item:nth-child(7),
.image-collage__item:nth-child(10)  {
	flex-basis: calc(40% - var(--gap));
}


.image-collage__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
}


@media screen and (max-width: 600px) {

	.image-collage__item {
		height: 220px;
	}

}

/* @end */



/* @group BOOKING WIDGET (DIRS21) */


/* Booking Widget (DIRS21)
--------------------------------------------------------------------------------- */


.contentblock-booking-widget {
}



/* overriding DIRS21  CSS*/

.booking-widget {
	position: relative;
	z-index: 0;
}


.booking-widget * {
	font-family: var(--font-sans);
}

.booking-widget .d21-row {
	margin-bottom: 0;
}


.booking-widget h2.d21-hits { /*10 Zimmer gefunden*/
	margin: 0;
	color: var(--text-color);
	font-weight: var(--font-weight-normal);
	text-transform: none;
	font-size: 1rem;
	display: none; /*AUS*/
}


.booking-widget h2.d21-hits span:last-child { /*Treffer 1 von x*/
	display: none;
}

.booking-widget #d21-sort-by,
.booking-widget #d21-widgets-packages  #d21-sort-by {
	margin: 0 0 30px 0;
	padding: 0;
	margin-left: auto;
}

@media screen and (max-width: 600px) {
	.booking-widget #d21-widgets-packages  #d21-sort-by {
		margin-top: 10px;
	}
}

.booking-widget #d21-package-occupancy {
	margin: 0;
}

.booking-widget #d21-packages .d21-headline {
	margin: 0;
}

.booking-widget #d21-sort-by li::before {
	display: none;
}

.booking-widget .d21-checkable-list .d21-list-item .d21-childrens {
	border-radius: 5px;
	box-shadow: 0px 3px 35px -10px rgba(0,0,0, .5);
}

.booking-widget .d21-checkable-list .d21-list-item .d21-list-link {
	color: var(--text-gray);
	border: 0px solid rgba(0,0,0, .05);
	box-shadow: 0px 5px 20px -5px rgba(0,0,0, .05);
}

.booking-widget .d21-checkable-list .d21-list-item .d21-list-link .d21-arrow {
	background: transparent!important;
}

.booking-widget .d21-checkable-list .d21-list-item .d21-list-link .d21-arrow i {
	color: var(--text-color)!important;
}

.booking-widget .d21-checkable-list .d21-list-item .d21-childrens .d21-child {
	background: var(--primary-bg);
}


.booking-widget .d21-checkable-list .d21-list-item .d21-childrens .d21-child.d21-checked {
	background-color: var(--primary-color);
}


main div[id*="d21-widgets"] {
	font-family: inherit;
}


.booking-widget .d21-widgets-rooms {
}

.booking-widget .d21-widgets-view {
	max-width: 100%!important;
	padding: 0!important;
}

.booking-widget .d21-widgets-view .d21-item {
	border-radius: 5px;
	transition: 300ms;
	margin-top: 30px;
	padding: 60px;
	padding: clamp(30px, 5vw, 60px);
	background: #FFF;
	border-radius: 15px;
	box-shadow: 0 0 55px -15px rgba(0,0,0, .12);
	AUS_border: 1px solid rgba(208, 177, 115, .03); /*very subtle*/
}

.booking-widget .d21-widgets-view .d21-item-head {
	position: static;
}


.booking-widget .d21-widgets-view .d21-item:hover {
}


@media screen and (max-width: 600px) {
	.booking-widget #d21-widgets-rooms .d21-widgets-view .d21-item {
		padding: 30px 20px;
	}
}


.booking-widget .booking-widget  .d21-item-head {
	display: flex;
	flex-direction: column;
	padding: 0!important;
}


.booking-widget .d21-item .d21-item-head h2 {
	position: relative;
	text-transform: none;
	margin: 0;
	padding: 0!important;
	font-size: 1.5rem;
	font-weight: var(--font-weight-bold);
	color: var(--text-color);
	display: flex;
	justify-content: space-between;
	gap: 30px;
}

.booking-widget .d21-item .d21-item-head h2,
.booking-widget .d21-item .d21-item-head h2 .d21-rate-title {
	line-height: 1.2!important;
	font-size: clamp(1.2rem, 4vw, 1.7rem);
}


.booking-widget #d21-widgets-rooms .d21-item .d21-rate-price{
	top: 0;
	width: auto!important;
	position: relative;
	line-height: 1.2;
	white-space: nowrap;
}


.booking-widget #d21-widgets-rooms .d21-mobile .d21-item .d21-item-head .d21-rate-price {
	height: auto;
	padding: 10px 0;
}



.booking-widget #d21-widgets-rooms .d21-item .d21-rate-price span,
.booking-widget #d21-widgets-packages .d21-item .d21-rate-price span {
	font-size: 1.3rem;
	font-weight: var(--font-weight-bold)!important;
}

.booking-widget #d21-widgets-rooms .d21-item .d21-rate-price .d21-small,
.booking-widget #d21-widgets-packages .d21-item .d21-item-head .d21-rate-price .d21-small {
	font-size: 0.8rem;
	font-weight: var(--font-weight-normal)!important;
	color: var(--text-gray);
	text-transform: none;
}



.booking-widget .d21-item .d21-item-head > .d21-col {
	padding: 0;
	margin: 0;
}

@media screen and (max-width: 600px) {

	.booking-widget .d21-item .d21-item-head h2 {
		flex-direction: column;
		gap: 0;
	}

}


.booking-widget #d21-widgets-rooms .d21-item .d21-rate-facts {
	font-size: var(--text-small);
	padding: 0;
	margin: 5px 0 30px 0;
}

.booking-widget #d21-widgets-rooms .d21-desktop .d21-item-head .d21-rate-facts .d21-list-item {
	padding: 0;
}


.booking-widget #d21-widgets-rooms .d21-item .d21-rate-facts .d21-list-item .d21-label {
	font-size: var(--text-small);
	color: var(--text-gray);
}

.booking-widget #d21-widgets-rooms .d21-item .d21-rate-facts .d21-list-item span {
	display: inline-flex;
	align-items: center;
}

.booking-widget #d21-widgets-rooms .d21-desktop .d21-item-head .d21-rate-facts .d21-list-item i {
	font-size: 1rem;
}


.booking-widget .d21-item-body {
}


.booking-widget .d21-item .d21-item-body .d21-item-image {
	padding: 0;
	max-width: 460px;
	padding-right: 30px;
	overflow: hidden;
}

.booking-widget .d21-gallery .d21-active-image {
	padding: 0!important;
	margin-bottom: 10px;
}

.booking-widget .d21-gallery-thumbs {
}


.booking-widget .d21-item .d21-item-body .d21-item-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 5px;
}

.booking-widget .d21-row .gallery {
	display: block;
	margin: 0!important;
	padding: 0;
}


@media screen and (max-width: 600px) {

.booking-widget .d21-item .d21-item-body .d21-item-image {
	padding: 0;
	max-width: 100%;
	width: 100%;
	padding: 0;
	}

}


.booking-widget #d21-widgets-rooms .d21-item .d21-item-body .d21-infoContainer {
	position: relative;
	margin: 15px 0;
	display: block;
	width: 100%;
	top: auto;
	bottom: auto;
	padding: 0;
}


.booking-widget .d21-item .d21-item-body .d21-full-description {
	padding: 0;
}


.booking-widget #d21-widgets-rooms .d21-item-body .d21-item-text {
	min-height: auto!important;
	max-height: 100%!important;
}

.booking-widget #d21-widgets-rooms .d21-item-body .d21-item-text .d21-rate-description {
	font-size: var(--text-small);
	margin: 0;
}


.booking-widget .d21-item .d21-item-book {
	position: relative;
	top: auto;
	bottom: auto;
	right: auto;
	left: auto;
	display: flex;
	margin-left: auto;

	background: var(--secondary-color);
	line-height: 1;
	text-align: center;
	border-radius: 5px;
	box-shadow: none;
	border: none;
	text-transform: uppercase;
	font-weight: var(--font-weight-bold);
	font-size: var(--text-small);
	letter-spacing: .2px;

	padding: 0.8rem 1.8rem;
	height: auto;
	width: auto!important;
	display: table; /*to reset width*/

	animation: none;
	}

.booking-widget .d21-item .d21-item-book > span {
	height: auto;
	line-height: 1.5;
}

.booking-widget .d21-item .d21-item-book:hover {
	background: hsl(40,40%,55%);
	color: #FFF;
}

@media screen and (max-width: 600px) {

	.booking-widget .d21-item .d21-item-book {
		margin: 0 auto;
	}
}


.booking-widget .d21-item .d21-item-book.d21-item-book-show {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100%;
	padding: 20px 0;
	background: rgba(208, 177, 115, .9)!important;
	display: flex;
	flex-direction: column;
	justify-content: center;
	animation: none;
 }

 .booking-widget .d21-item .d21-item-book.d21-item-close {
	animation: none;
 }


 .booking-widget .d21-item .d21-item-book.d21-item-book-show .d21-calendar .d21-calendar-close {
 	transform: scale(.75);
 }


 @media screen and (max-width: 600px) {
	.booking-widget .d21-item .d21-item-book.d21-item-book-show {
		top: auto;
		bottom: 0;
		height: 450px;
	}

	.booking-widget .d21-item .d21-item-book.d21-item-book-show .d21-calendar.d21-active {
		padding-top: 20px;
	}


}



/*== packages*/

.booking-widget #d21-packages .d21-input {
	font-size: var(--text-small);
	border: 0px solid rgba(0,0,0, .05);
	box-shadow: 0px 5px 20px -5px rgba(0,0,0, .05);
}

.booking-widget #d21-packages .d21-input .d21-arrow-right {
	background: transparent!important;

}

.booking-widget #d21-packages .d21-input .d21-arrow-right i {
	color: var(--text-color);

}

.booking-widget #d21-packages #d21-package-occupancy {
	min-width: 200px;
	}

.booking-widget #d21-packages .d21-occupancy-select {
	border-radius: 5px;
}



.booking-widget #d21-packages .d21-item-head {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0 20px;
	margin: 0 0 30px 0;
	padding: 0;
}

@media screen and (max-width: 600px) {
.booking-widget #d21-packages .d21-item-head {
		grid-template-columns: 1fr;
		gap: 5px
	}

}

.booking-widget #d21-widgets-packages .d21-item .d21-item-head .d21-rate-category {
	grid-column: 1/-1;
	font-size: var(--text-small);
	margin: 0 0 10px 0;
}



.booking-widget #d21-widgets-packages .d21-item .d21-item-head h2 {
	line-height: 1.2!important;
	font-size: 1.5rem;
	font-size: clamp(1.2rem, 4vw, 1.7rem);
}

.booking-widget #d21-widgets-packages .d21-item .d21-item-head .d21-rate-price {
	top: 0;
	right: auto;
	position: relative;
	width: auto!important;
	position: relative;
	line-height: 1.2;
	white-space: nowrap;
}


.booking-widget #d21-widgets-packages .d21-item .d21-item-head .d21-rate-facts {
	grid-column: 1/-1;
	font-size: var(--text-small);
	padding: 0;
}

.booking-widget #d21-widgets-packages .d21-desktop .d21-item-head .d21-rate-facts .d21-list-item {
	padding-block: 5px;
	padding: 5px inherit;
	font-size: var(--text-small);
}

.booking-widget #d21-widgets-packages .d21-desktop .d21-item-head .d21-rate-facts .d21-list-item .d21-label {
	font-size: 0.75rem;
}

.booking-widget #d21-widgets-packages .d21-item .d21-item-body .d21-item-text {
	font-size: var(--text-small);
	max-height: 100%;
}

.booking-widget .d21-item .d21-item-body h3 {
	border: none;
}

.booking-widget .d21-item .d21-item-body h3 i.material-icons {
	color: var(--fichtes-gold);
}

.booking-widget  #d21-widgets-packages .d21-item .d21-item-body h3 span {
	margin: 0;
}


.booking-widget #d21-widgets-packages .d21-item .d21-item-body .d21-item-text .d21-rate-services .d21-list li.d21-list-item {
	font-size: var(--text-small);
	line-height: 1.5;
	margin: 0;
	border: none;
	background: transparent;
	padding: 5px 0;
	border-bottom: 1px solid rgba(0,0,0, .1);
}

.booking-widget #d21-widgets-packages .d21-item .d21-item-body .d21-item-text .d21-rate-services .d21-list li.d21-list-item:before {
	display: none;
}

.booking-widget .d21-item .d21-item-body .d21-full-description .d21-item-text .d21-item-fadeOut {
	display: none;
}

.booking-widget .d21-item .d21-item-body .d21-full-description .d21-trigger {
	display: none;
}

.booking-widget #d21-widgets-packages .d21-item .d21-item-body .d21-item-text .d21-rate-description {
	margin: 0;
}

.booking-widget #d21-widgets-packages .d21-item .d21-item-body .d21-infoContainer {
	display: flex;
	align-items: center;
	background: rgba(208, 177, 115, .3);
	margin: 10px 0 10px 0;
	border-radius: 5px;
	position: relative;
	width: 100%;
	padding: 10px;
}

.booking-widget #d21-widgets-packages .d21-item .d21-item-body .d21-infoContainer div {
	font-size: 0.6rem;
	color: var(--text-color);
}


/*== paging*/

.booking-widget .d21-paging {
		padding: 0;
		margin: 10px 0 0 0;
		display: none; /*AUS*/
}

.booking-widget .d21-paging li {
		background: rgba(0,0,0, .2)!important;
		border-radius: 100%;
		padding: 0;
		margin: 10px 0 0 0;
}

.booking-widget .d21-paging li::before {
	display: none;
}

/* @end */





/* @group INSTAGRAM FEED */


.contentblock-instagram-feed {
	margin: var(--vspace-xl) 0;
	padding: 0 var(--container-padding)
}


.instagram-feed {
	max-width: calc(var(--container-width) + 150px);
	margin: 0 auto;
	position: relative;
	padding: var(--vspace-xl) 20px;
	background: var(--secondary-bg);
	border-radius: var(--border-radius);
}


.instagram-feed__embed {
	margin: 0 auto;
	margin-top: -10px;
	max-width: 1200px;
}


.instagram-feed .sbi_photo_wrap {
	border-radius: 5px;
	overflow: hidden;
}


.instagram-feed__icons {
	display: flex;
	justify-content: center;
	gap: 10px;
	transform: none;
	margin: var(--vspace) 0 -.5rem 0;
}

.instagram-feed__icons a {
	display: block;
	font-size: 1.9rem;
	color: var(--primary-color);
	line-height: 1;
}


@media screen and (max-width: 600px) {

	.contentblock-instagram-feed {
		padding: 0;
	}
	
	.instagram-feed {
		border-radius: 0;
	}

}



/* @end */


/* @end */






/* @group TEMPLATE START */

/* Template Startseite
--------------------------------------------------------------------------------- */


.hero {
	position: relative;
	margin-bottom: var(--vspace-xl);
	background: var(--primary-bg);
	z-index: 1;
}


.hero-slider {
	position: relative;
	overflow: hidden;
}

.hero .swiper-container {
	height: 700px; /*the height*/
	height: clamp(430px, 75vw, 850px); /*the height*/
	min-height: 90vh;
}

.hero .swiper-slide-image-wrap {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
}

.hero img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;
	AUS_animation: slideShow 35s linear infinite 0s;
}

@keyframes slideShow {
 0% {
  transform:scale(1);
 }
 50% {
  transform:scale(1.25);
 }
 100% {
  transform:scale(1);
 }
}


.hero-slider__overlay {
	position: absolute;
	top: 0;
	width: 100%;
	height: 100%;
	background: #000;
	opacity: .1; /*via CMS*/
	z-index: 1;
}



.hero-slider::before { /*key visual */
	content: "";
	position: absolute;
	bottom: 0;
	right: 0vw;
	width: 50vw;
	height: 50vw;
	min-width: 300px;
	min-height: 300px;
	AUS_transform: scale(0.8);
	transform: translate(40%,35%) rotate(0deg) scale(.8);
	background: transparent url(images/sbb-flower.svg) no-repeat center;
	background-size: contain;
	transform-origin: center;
	opacity: .3;
	z-index: 2;
	animation: heroKeyvisualAni 1s ease-out forwards;

}

@keyframes heroKeyvisualAni{
  to {
	transform: translate(40%,35%) rotate(35deg) scale(1);
  }
}




@media screen and (max-width: 1136px) {
	.hero {
		margin-top: 0;
	}

	.hero .swiper-container {
		min-height: auto;
	}

	.hero-slider__overlay {
		display: none;
	}

}


.hero__title {
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
	height: 50%;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	margin: 0 0 0 0;
	
	z-index: 2;
	padding: 0 var(--container-padding);
	font-size: 64px;
	font-size: clamp(38px, 7vw, 64px);
	line-height: 1.1;
	color: #FFF;
	text-align: center;
	text-shadow: 0 0 15px rgba(0,0,0, .5), 0 0 30px rgba(0,0,0, .3);
}



.hero-booking {
	position: absolute;
	top: 50%;
	width: 100%;
	height: 50%;
	z-index: 2;
	margin: 2rem 0 0 0;
	padding: 0 var(--container-padding);
	display: flex;
	justify-content: center;
}

.hero-booking__wave {
	display: none;
}


/*DIRS21 widget*/

.hero-booking .d21-widget {
	position: relative;
}

.hero-booking .d21-widget .d21-widget-container {
	background: #FFF;
	padding: 10px;
	border-radius: 10px;
	box-shadow: 0px 3px 35px -5px rgba(0,0,0, .2);
}

.hero-booking #d21-quickbook {
	width: auto;
	margin-inline: auto;
	max-width: 1000px;
	padding: 15px;
	background: rgba(0,0,0,.5);
	border-radius: var(--border-radius);
	font-size: var(--text-small);
	font-size: 17px;
}

.hero-booking .d21-row {
	margin-bottom: 0;
}

.hero-booking .d21-input,
.hero-booking .d21-btn {
	height: 54px;
	line-height: 54px;
	border: none;
	box-shadow: 0 2px 24px -7px rgba(0,0,0,0.1);
	border-radius: 5px;
}

.hero-booking .d21-input.d21-with-icon {
	padding-left: 45px;
}

.hero-booking .d21-input-icon {
	height: 54px;
	line-height: 40px;
	width: 45px;
	background: transparent;
	color: var(--secondary-color);
	border: none;
}

.hero-booking .d21-btn.d21-primary {
	background: #FFF;
	border: none;
	color: var(--secondary-color);
	font-size: 0.9rem;
	font-weight: var(--font-weight-bold);
	text-transform: uppercase;
}


.hero-booking .d21-btn.d21-primary.d21-pulse {
	background: var(--secondary-color)!important;
}


.hero-booking #d21-quickbook #d21-selected-day-price .d21-avail {
	height: 54px;
	line-height: 54px;
}

.hero-booking #d21-quickbook #d21-selected-day-price > div .d21-bigger {
	font-size: 1rem;
}


.hero-booking .d21-calendar,
.hero-booking .d21-occupancy-select {
	top: 100%!important;
	border-color: rgba(0,0,0, .05);
	border-radius: 5px;
}

.hero__wave {
	position: absolute;
	bottom: -2px;
	right: 0;
	height: 100px;
	width: 100%;
	display: flex;
	align-items: flex-end;
	z-index: 2;
}

.hero__wave svg {
	display: block;
	width: 100%;
}

.hero__wave path {
	fill: var(--body-bg);
}



@media screen and (max-width: 990px) {

	.hero__title {
		height: 100%;
		align-items: center;
	}

	.hero-booking {
		position: relative;
		top: auto;
		margin: 0;
		border-radius: 0;
		padding-top: 30px;
		padding-bottom: 50px;
		background: var(--primary-color);
	}
	
	.hero-booking #d21-quickbook {
		background: transparent;
		padding: 0;
	}
	

	.hero-booking__wave {
		display: block;
		position: absolute;
		top: 0;
		right: 0;
		height: 60px;
		width: 100%;
		transform: translateY(-99%);
		display: flex;
		align-items: flex-end;
	}
	
	.hero-booking__wave svg {
		display: block;
		width: 100%;
	}

}



.start-widgets {
	position: relative;
}

.start-widgets .inner {
	position: absolute;
	right: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.start-widgets .widget {
	margin-bottom: 10px;
}


@media screen and (max-width: 1136px) {
	.start-widgets {
		display: none;
	}

}





/* @end */




/* @group SEARCH */

/* Search
--------------------------------------------------------------------------------- */



.search-result {
}

.search-result__title {

}

.search-result.no-result .searchform {

}

.searchform-wrap {
	position: relative;
	max-width: 100%;
	margin-top: var(--vspace);
	border: 0px solid #333;
}

.searchform {
	position: relative;
	box-shadow: 0px 5px 30px -10px rgba(0,0,0, .15);
}

.searchform input[type="text"] {
	border: none;
	padding: 20px;
	width: 100%;
	height: 3.3rem;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--text-color);
	border:  none;
	border-radius: 0;
	box-shadow: none /*remove red border */;
}

.searchform input::placeholder {
	font-family: var(--font-serif);
	font-style: italic;
	font-weight: normal;
}

.searchform .searchsubmit {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	padding: 0 20px;
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	overflow: hidden;
	width: 3rem;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	background: transparent;
}

.searchform i {
	position: relative;
	text-align: center;
	font-size: 1.4rem;
	color: var(--primary-color);
	background: transparent;
}


.search-result__list {
	margin-top: var(--vspace);
}

.search-result span {
	color: var(--orange);
	font-weight: var(--font-weight-bold);
}

.search .hentry {
	border: 0;
	border-bottom: 1px solid var(--border-color);
	margin: 0;
}

.search-result__entry a {
	display: block;
	font-weight: var(--font-weight-bold);
	padding: 0.6rem 0;
}

.search-result__entry .type-page .entry-details {
	display: none;
}

.search .post-pagination {
	margin-top: 30px;
}


.search-results .entry-details span {
	display: none;
}

/* @end */


/* @group PW protected */

/* PW Protected
--------------------------------------------------------------------------------- */


.post-password-form {
	text-align: center;
	padding: 30px;
	background: var(--primary-bg);
}

.post-password-form p {
	display: none;
}

.post-password-form p + p {
	display: block;
	margin: 0;
}

.post-password-form input {
	font-size: 1rem;
	padding: 10px;
	max-width: 100%;
	border: 1px solid var(--border-color);
}

.post-password-form input[type="submit"] {
	display: none;
}

/* @end */


/* @group FORMS */

/* FORMS (contact form 7)
--------------------------------------------------------------------------------- */

.wpcf7 {
	position: relative;
}

.wpcf7-form {
	position: relative;
	margin: 0 auto;
	overflow: visible;
	display: flex;
	justify-content: center;
	padding: 0 var(--container-padding);
}

.wpcf7-form .form-wrap {
	margin: 0 auto;
	border: 0px solid #333;
	max-width: var(--aligndefault-width);
}

.wpcf7-form .form-wrap > *:first-child {
	margin-top: 0;
}


.wpcf7 .form-title {
	margin-bottom: calc(var(--vspace-xl) - 1.5rem);
}

.wpcf7 hr {
	margin: 1.0rem 0 1.5rem 0;
	border-color: rgba(0,0,0, .2);
}

.wpcf7 br {
	display: none;
}

.wpcf7 .fieldset {
}

.wpcf7 .form-field {
	margin-bottom: 0.8rem;
	z-index: 1;
}


.wpcf7 .form-field:focus-within label,
.wpcf7 .form-field.select-focus label {
}

.wpcf7 label {
	padding: 0 0;
	width: auto;
	text-transform: none;
	font-size: var(--text-small);
	padding-right: 10px;
	margin: 0 0 0.3rem 0;
	display: inline-block;
	text-align: left;
	line-height: 140%;
	cursor: default;
	transition: all 350ms ease;
	color: var(--text-color);
}

.wpcf7 .row {
	margin-left: -10px;
	margin-right: -10px;
}

.wpcf7 .row-pflichtangaben {
	margin-bottom: 0.5rem;
	font-size: 0.6rem;
	text-align: right;
	text-transform: uppercase;
	color: #999;
}

.wpcf7 .row-submit {
}

.wpcf7 .row.response {
	margin-bottom: 0;
}

.wpcf7 [class*=col-] {
	padding: 0 10px;
}


.wpcf7 input.wpcf7-text,
.wpcf7 input.wpcf7-quiz,
.wpcf7-text,
.wpcf7 textarea,
.wpcf7 select,
.wpcf7-date,
.wpcf7-number,
.wpcf7-captchar,
.wpcf7-file,
.wpcf7-email {
	padding: 0.8rem;
	font-size: 1.0rem;
	line-height: 1.3;
	color: var(--text-color);
	background-color: #FFF;
	width: 100%;
	box-sizing: border-box;
	border: none;
	border-radius: 0;
	-webkit-appearance: none;
	font-family: var(--sans);
	font-weight: var(--font-weight-normal);
	border: none;
	border: 1px solid rgba(0,0,0, .0);
	border-radius: 5px;
	box-shadow: 0 2px 34px -9px rgba(0,0,0,0.08);
	transition: all 300ms ease;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
	border-color: var(--text-color);

}

input::-webkit-input-placeholder,
input::-moz-placeholder,
input::-ms-input-placeholder,
input::-moz-placeholder {
}


.wpcf7 textarea {
	max-height: 250px;
	line-height: 150%;
	width: 100%;
}



.wpcf7-recaptcha {
	 overflow: hidden;
	 margin-bottom: 0.5rem;
}


.wpcf7 .form-field--submit {
	margin: 0;
}

.wpcf7 .submit-btn-wrap {
	position: relative;
	display: flex;
	align-items: center;
}


.wpcf7 input.wpcf7-submit {

}

.wpcf7 input.wpcf7-submit:hover {
}

.wpcf7 input.wpcf7-submit:active {
}


.wpcf7 .wpcf7-spinner {
	flex: 0 0 24px;
	background: rgba(0,0,0, .3);
	AUS_visibility: visible!important;

}

.wpcf7 .response {
	position: relative;
}

.wpcf7 .invalid .wpcf7-response-output {
	display: block;
	font-size: var(--text-small);
	padding: 1rem;
	margin: var(--vspace) 0 0 0;
	clear: both;
	position: relative;
	text-align: center;
	background: #FFF;
	border-radius: var(--border-radius);
}

.wpcf7 .wpcf7-response-output.wpcf7-validation-errors {
	border-color: transparent;
	color: RED;
	text-align: center;
}

.wpcf7 .wpcf7-form.sent {
}


.wpcf7 .sent .wpcf7-response-output {
	margin: var(--vspace) 0 0 0;
	padding: 5.5rem 2rem 4rem 2rem;
	text-align: center;
	color: var(--text-color);
	font-size: 1rem;
	font-weight: bold;
	border: none;
	background: #FFF;
	border-radius: 5px;
	box-shadow: 0 2px 34px -9px rgba(0,0,0,0.08);

}

.wpcf7 .sent .wpcf7-response-output:after { /*ok icon*/
	content: "";
	position: absolute;
	left: 50%;
	top: 2.5rem;
	width: 20px;
	height: 32px;
	border: solid var(--primary-color);
	border-width: 0 4px 4px 0;
	-webkit-transform: rotate(45deg) translateX(-50%);
	-ms-transform: rotate(45deg) translateX(-50%);
	transform: rotate(45deg) translateX(-50%);
}



.wpcf7 span.wpcf7-not-valid-tip {
	background: red;
	color: #FFF;
	display: none;
}


.not-valid label {
	color: RED;
}

.wpcf7 input.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid,
.wpcf7 select.wpcf7-not-valid {
	border-color: RED;
}


.wpcf7 .field-note {
	font-size: 0.7rem;
}


.wpcf7 .pflichtfeld-hinweis {
	text-align: right;
	font-size: 0.7rem;
	color: #666;
	text-transform: uppercase;
	display: none;
}

/* Checkbox & Radiobuttons */


.wpcf7 .wpcf7-checkbox {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
}


.wpcf7 .wpcf7-radio {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
}

.wpcf7 input[type="radio"] {
	-webkit-appearance: radio;
	-moz-appearance: radio;
}

.wpcf7 input[type="checkbox"] {
	-webkit-appearance: checkbox;
	-moz-appearance: checkbox;
}

.wpcf7-radio .wpcf7-list-item,
.wpcf7-checkbox .wpcf7-list-item,
.wpcf7-acceptance .wpcf7-list-item  {
  	margin: 0 0 0 0;
  	width: auto;
}

.wpcf7-radio input,
.wpcf7-checkbox input,
.wpcf7-acceptance input {
	display: none; /*custom*/
}

.wpcf7-radio label,
.wpcf7-checkbox label,
.wpcf7-acceptance label {
	margin: 0;
	padding: 0;
	display: block;
	cursor: pointer;
}

.wpcf7-radio .wpcf7-list-item-label,
.wpcf7-checkbox .wpcf7-list-item-label,
.wpcf7-acceptance .wpcf7-list-item-label {
	position: relative;
	display: flex;
	align-items: center;
	flex: 1 0 auto;
	font-size: 1rem;
	text-transform: none;
	font-weight: bold;
	padding: 5px 0;
	padding-right: 30px;
	color: var(--text-color);
	transition: all 300ms ease;
}

.wpcf7-radio .wpcf7-list-item-label:hover,
.wpcf7-checkbox .wpcf7-list-item-label:hover,
.wpcf7-acceptance .wpcf7-list-item-label:hover {
}

.wpcf7-radio .wpcf7-list-item-label:before,
.wpcf7-checkbox .wpcf7-list-item-label:before,
.wpcf7-acceptance .wpcf7-list-item-label:before {
	content: "";
	width: 26px;
	height: 26px;
	background: #FFF;
	border: 1px solid var(--border-color);
	opacity: 1;
	position: relative;
	margin: 0 15px 0 0;
	flex: 0 0 auto;
	border-radius: 5px;
	box-shadow: 0 2px 34px -9px rgba(0,0,0,0.1);
}


.wpcf7-radio .wpcf7-list-item-label:before {
	border-radius: 50%;
}



.wpcf7-radio .wpcf7-list-item-label:after {  /*the dot*/
	content: "";
	position: absolute;
	top: 13px;
	left: 8px;
	width: 10px;
	height: 10px;
	background: #FFF;
	border-radius: 50%;
	opacity: 0;
}

.wpcf7-checkbox .wpcf7-list-item-label:after,
.wpcf7-acceptance .wpcf7-list-item-label:after  {  /*the checkmark*/
	content: "";
	position: absolute;
	left: 9px;
	top: 9px;
	width: 9px;
	height: 14px;
	border: solid #FFF;
	border-width: 0 3px 3px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
	opacity: 0;
}


.wpcf7-radio input:checked + .wpcf7-list-item-label,
.wpcf7-checkbox input:checked + .wpcf7-list-item-label,
.wpcf7-acceptance input:checked + .wpcf7-list-item-label {
}

.wpcf7-radio input:checked + .wpcf7-list-item-label:before,
.wpcf7-checkbox input:checked + .wpcf7-list-item-label:before,
.wpcf7-acceptance input:checked + .wpcf7-list-item-label:before {
	border-color: var(--primary-color);
	background: var(--primary-color);
	border-radius: 5px;

}

.wpcf7-radio input:checked + .wpcf7-list-item-label:after,
.wpcf7-checkbox input:checked + .wpcf7-list-item-label:after,
.wpcf7-acceptance input:checked + .wpcf7-list-item-label:after {
	opacity: 1;
}


.wpcf7-radio.wpcf7-not-valid .wpcf7-list-item-label:before,
.wpcf7-checkbox.wpcf7-not-valid .wpcf7-list-item-label:before,
.wpcf7-acceptance.wpcf7-not-valid .wpcf7-list-item-label:before {
	border-color: RED;
}


/* Checkbox Acceptance (Datenschutz) */


.wpcf7-acceptance .wpcf7-list-item-label {
	font-size: 0.7rem;
	line-height: 1.5;
	font-weight: var(--font-weight-normal);
	align-items: flex-start;
}

.wpcf7-acceptance .acceptance-text {
	color: var(--text-gray);
}

.wpcf7 .form-field--datenschutz {
	margin: 0 0 var(--vspace) 0;
}

.wpcf7 .form-field--datenschutz > label {
  display: none;
}

.wpcf7-acceptance span a {
	color: var(--text-gray);
	text-decoration: underline;
}


/* Select */
/* https://codepen.io/chriscoyier/pen/zYYZaGP */

.wpcf7 select {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	transition: all 200ms ease;
	background-color: #fff;

	/* https://websemantics.uk/tools/svg-to-background-image-conversion */
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg width='14' height='9' viewBox='0 0 14 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='718 26 725 35 732 26' transform='translate(-718 -26)' fill='%231C4E60' fill-rule='evenodd'/%3E%3C/svg%3E");
	background-repeat: no-repeat, repeat;
	/* arrow icon position (1em from the right, 50% vertical) , then gradient position*/
	background-position: right .7em top 50%, 0 0;
	/* icon size, then gradient */
	background-size: 0.8em auto, 100%;
}
.wpcf7 select::-ms-expand {
	display: none;
}

.wpcf7 .select-css:focus {
	/* It'd be nice to use -webkit-focus-ring-color here but it doesn't work on box-shadow */
	box-shadow: 0 0 0 3px -moz-mac-focusring;
	outline: none;
}

.wpcf7 select option {
	font-weight: normal;
	font-size: 1rem;
}

/* Disabled styles */
select:disabled, select[aria-disabled=true] {
	opacity: .5;
}


/* @end */


/* @group SWIPEBOX LIGHTBOX */

/* Swipebox Lightbox (v5)
--------------------------------------------------------------------------------- */


.pswp .pswp__caption__text {
	font-size: var(--text-small);
}

.pswp .pswp__button--zoom {
	display: none;
}

/* @end */



/* @group 404 */

/* 404
--------------------------------------------------------------------------------- */


.error404 #content {
	#background: var(--primary-bg);
}

/* @end */



/* @group FOOTER */

/* FOOTER
--------------------------------------------------------------------------------- */


#footer {
	position: relative;
	width: 100%;
	color: var(--text-beige);
	background: var(--fichtes-green);
}


.footer-wave {
	position: absolute;
	top: 0;
	right: 0;
	height: 60px;
	width: 100%;
	transform: translateY(-99%);
	display: flex;
	align-items: flex-end;
}

.footer-wave svg {
	display: block;
	width: 100%;
}


/* = Footer Top */

.footer-top {
	padding: var(--vspace-xl) 0;

}

.footer-logo {
	max-width: 360px;
}

.footer-content {
	margin-top: 50px;
	font-size: 18px;
	line-height: 1.5;
	opacity: .9;
}

.footer-content a {
	color: var(--text-beige);
}

.footer-content a:hover {
	color: var(--fichtes-gold);
}

.footer-column {
	margin-top: var(--vspace-l);
	line-height: 1.6;
}

.footer-column :is(h1, h2, h3, h4 ) {
	font-size: 1.4rem;
	text-transform: capitalize;
}


.footer-content p + p {
	margin-top: 10px;
}

.footer-social {
	margin-top: 20px;
	font-size: 1.5rem;
	display: flex;
	gap: 10px;
	margin-left: -0.3rem;
}

.footer-badges {
	display: flex;
	justify-content: flex-end;
	gap: 30px;
	gap: clamp(15px, 3vw, 30px);
	margin-top: var(--vspace-l);
}


.footer-badges__item {
	display: inline-flex;
	position: relative;
	overflow: hidden;
	border: 0px solid RED;
	height: 160px;
	width: 150px;
}

.footer-badges__item:first-child {
	width: 220px;
}

.footer-badges__item a {
	display: block;
}


@media screen and (max-width: 980px) {

	#footer .container {
		max-width: var(--aligndefault-width);
		padding: 0 40px;
	}

}


@media screen and (max-width: 600px) {

	.footer-top {
		padding: 90px 0;
	}

	.footer-badges {
		flex-wrap: wrap;
		justify-content: center;
		margin-left: -20px;
		margin-right: -20px;
	}

	.footer-badges__item {
		flex-basis: calc(50% - 30px);
		flex-shrink: 1;
	}

	.footer-badges__item:first-child {
		display: flex;
		align-items: center;
		background: #FFF;
		width: auto;
	}

	.footer-badges__item * {
		margin: 0 auto;
	}

	.footer-badges__item:last-child {
		flex-basis: 100%;
	}
}




/* = Footer Banner */

.footer-banner {
	position: relative;
	padding: var(--vspace-xl) 0;
	display: flex;
	align-items: center;
	color: var(--primary-color);
	background: var(--fichtes-green);
}

.footer-banner.reveal-visible {
	background: var(--body-bg);
}

.footer-banner .container {
	width: 100%;
}

.footer-banner__grid {
	display: grid;
	grid-template-columns: 4fr 5fr;
	gap: 40px;
	margin: 0 auto;
}


.footer-banner__text {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.footer-banner__text h2 {
	color: var(--primary-color);
	margin: 0;
}


.footer-banner__image {
	position: relative;
	margin: 50px auto;
	max-width: calc(100% - 20px);
}


.footer-banner__text p.button-p {
}

.footer-banner__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0 auto;

	max-width: 85vw;
	border-radius: 10px;
	position: relative;
	transform: translateY(0) rotate(-1.5deg);

}


.footer-banner__image::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 10px;
	transform: translate(25px, 25px) rotate(-0.2deg);
	background: var(--fichtes-gold);
}



@media screen and (max-width: 980px) {

	.footer-banner__grid {
		grid-template-columns: 1fr;
		gap: 30px;
		max-width: 600px;
	}

	.footer-banner__text {
		align-items: center;
		text-align: center;
		order: 2;
		margin: 0 auto;
	}

	.footer-banner__image {

	}

	.footer-banner__image::before {
	transform: translate(15px, 15px) rotate(-0.5deg);
	}


}

/* = Footer Bottom*/


.footer-bottom {
	padding: 30px 0;
	background: var(--body-bg);
}

@media screen and (max-width: 980px) {
	.footer-bottom {
		padding-bottom: 100px; /*space for scrolltop button*/
	}
}



.footer-bottom > .container {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.footer-fichtes {
	align-self: flex-end;
	max-width: 100px;
}


.footer-menu {
	flex: 1;
	display: flex;
	flex-wrap: wrap;
	margin-bottom: -5px;

}

.footer-menu li a {
	display: block;
	margin: 0 30px 0 0;
	font-size: 18px;
	color: var(--secondary-color);
	AUS_color: var(--primary-color);
}

.footer-menu li a:hover {
	color: var(--fichtes-green);
}


@media screen and (max-width: 600px) {

	.footer-menu {
		display: block;
	}

	.footer-menu li {
		margin: 0;
	}

	.footer-menu li a {
		padding: 5px 0;
	}

	.footer-fichtes {
		max-width: 100%;
		display: flex;
		margin-top: var(--vspace);
		justify-content: flex-end;
	}

}


/* Scroll to top button*/

.scrolltopbtn {
	position: fixed;
	bottom: 20px;
	right: 20px;
	height: 50px;
	width: 50px;
	line-height: 48px;
	font-size: 1.3rem;
	text-align: center;
	color: #FFF;
	background: rgba(0,0,0, .2);
	border-radius: 100%;
	transition: 300ms;
	transform: translateY(100%);
	opacity: 0;
	z-index: 2;
	
	
	background: transparent;
	color: var(--fichtes-gold);
	border: 2px solid var(--fichtes-gold);

}

.scrolltopbtn.active:hover {
	color: var(--fichtes-gold);
	border-color: var(--fichtes-gold);
	opacity: .6;
}


.scrolltopbtn.active {
	transform: translateY(0);
	opacity: 1;
}


/*Sticky Button Bar*/

.resize-animation-stopper .sticky-button-bar {
  transition: none !important;
}



.sticky-button-bar {
	position: fixed;
	top: 50%;
	right: -1px;
	display: none;
	display: block;
	transform: translate(0, -55%) rotate(180deg);
	transform-origin: right;
	writing-mode: vertical-lr;
	z-index: 1;
	transition: none;
	transition: 300ms ease;
}

.sticky-button-bar.active {
	transform: translate(-100%, -55%) rotate(180deg);
}

.sticky-button-bar a {
	display: flex;
	justify-content: center;
	align-items: center;

	padding: 50px 22px;
	border-radius: 0 5px 5px 0;

	color: #000;
	background: var(--primary-color);
	background: var(--secondary-color);
	background: var(--fichtes-red);
	color: #FFF;
	text-align: center;
	line-height: 1;
	font-size: 0.85rem;
	font-weight: var(--font-weight-bold);
	text-transform: uppercase;
	letter-spacing: 1px;
	box-shadow: 0px 3px 40px -8px rgba(0,0,0, .1);

	/*
	background: #FFF;
	color: var(--primary-color);
	border: 2px solid var(--primary-color);
	border-left: none;
	*/

}

.sticky-button-bar a:hover {
	background: var(--secondary-color);
}

.sticky-button-bar a i {
	transform: rotate(90deg);
	margin: 0 0 8px 0;
	font-size: 1.2rem;
	line-height: 1;
	display: none;
}



@media screen and (max-width: 1136px) {

.sticky-button-bar {
	top: auto;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 65px;
	display: block;
	transform: translate(0, 100%);
	transition: 450ms ease;
	writing-mode: horizontal-tb;

	display: none;/*AUS*/
	}

	.sticky-button-bar.active {
	transform: translate(0,0);
	}

	.sticky-button-bar a {
		height: 100%;
		padding: 0 20px;
		border-radius: 0;
		margin: 0 auto;
	}

}






/* @end */



/* @group BORLABS COOKIE */

/* Borlabs Cookie Banner
--------------------------------------------------------------------------------- */


#BorlabsCookieBox ._brlbs-box {
	box-shadow: 0px 3px 50px -10px rgba(0,0,0, .3)!important;
}

.BorlabsCookie ._brlbs-content-blocker {
	display: flex;
	justify-content: center;
	padding: 0;
}

.BorlabsCookie ._brlbs-content-blocker ._brlbs-embed {
	width: 100%;
	margin-top: var(--vspace)!important;

}

.brlbs-cmpnt-content-blocker {
	box-shadow: 0px 3px 25px -10px rgba(0,0,0, .3);
}

.BorlabsCookie ._brlbs-content-blocker img {
	width: 100%;
	display: block;
}


.video-embed-wrap .BorlabsCookie {
	margin-bottom: -56.5%; /*minus the ratio*/
}

.BorlabsCookie input[type=checkbox] {
	-webkit-appearance: checkbox;
	-moz-appearance: checkbox;
	appearance: checkbox;
}

.BorlabsCookie #CookieBoxTextHeadline {
}

.BorlabsCookie #CookieBoxTextDescription {

}

.BorlabsCookie ._brlbs-btn {

}

.BorlabsCookie ._brlbs-btn._brlbs-btn-accept-all {
}

#BorlabsCookieBox li::before {
	display: none;
}


/* @end */


/* @group ACCESSIBILITY */

/* ACCESSIBILITY */


.sr-only {
	position: absolute;
	width: .0625rem;
	height: .0625rem;
	padding: 0;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

.sr-only-focusable {
	transition: all 0s ease;
}

.sr-only-focusable:focus {
	position: static;
	width: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	clip: auto;
}

/* @end */



/* @group UTILITIES */

/* UTILITIES
--------------------------------------------------------------------------------- */


.my-0 	{	margin-block: 0;}
.my-l 	{	margin-block: var(--vspace-l);}
.my-xl 	{	margin-block: var(--vspace-xl);}
.my-xxl 	{	margin-block: var(--vspace-xxl);}
.my-xxxl {	margin-block: var(--vspace-xxxl);}

.mt-0  { 	margin-top: 0!important; }
.mt-5  { 	margin-top: 5px!important; }
.mt-10 {	margin-top: 10px!important; }
.mt-20  {	margin-top: 20px!important; }
.mt-30  {	margin-top: 30px!important; }
.mt-40  {	margin-top: 40px!important; }
.mt-50  {	margin-top: 50px!important; }
.mt-60  {	margin-top: 60px!important; }
.mt-70  {	margin-top: 70px!important; }
.mt-80  {	margin-top: 80px!important; }
.mt-90  {	margin-top: 90px!important; }
.mt-100  {	margin-top: 100px!important; }
.mt-110  {	margin-top: 110px!important; }
.mt-120  {	margin-top: 120px!important; }
.mt-130  {	margin-top: 130px!important; }
.mt-140  {	margin-top: 140px!important; }
.mt-150  {	margin-top: 150px!important; }


.mb-0  { 	margin-bottom: 0!important; }
.mb-5  { 	margin-bottom: 5px!important; }
.mb-10 {	margin-bottom: 10px!important; }
.mb-20  {	margin-bottom: 20px!important; }
.mb-30  {	margin-bottom: 30px!important; }
.mb-40  {	margin-bottom: 40px!important; }
.mb-50  {	margin-bottom: 50px!important; }
.mb-60  {	margin-bottom: 60px!important; }
.mb-70  {	margin-bottom: 70px!important; }
.mb-80  {	margin-bottom: 80px!important; }
.mb-90  {	margin-bottom: 90px!important; }
.mb-100  {	margin-bottom: 100px!important; }
.mb-110  {	margin-bottom: 110px!important; }
.mb-120  {	margin-bottom: 120px!important; }
.mb-130  {	margin-bottom: 130px!important; }
.mb-140  {	margin-bottom: 140px!important; }
.mb-150  {	margin-bottom: 150px!important; }


/* @end */




/* @group ANIMATIONS */

/* ANIMATIONS
---------------------------------------------------------------------------------*/


/* scroll reveal */

.reveal,
.contentblock {
  opacity: 0;
  transform: translate3d(0, 100px, 0);
  transition: opacity 700ms, transform 500ms;
}

.reveal--slow {
  transition: opacity 1000ms, transform 1000ms;
}

.reveal-pending {

}

.reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  /*prevent old safari flicker*/
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
}


.flex-preview .reveal,
.flex-preview .contentblock { /* ACFE Preview */
	opacity: 1;
	transform: none;
}



/*  https://github.com/daneden/animate.css */


.animated {
	animation-duration: 1s;
	animation-fill-mode: both;
	animation-timing-function: ease-in-out;
}

.animated.infinite {
	animation-iteration-count: infinite;
}


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

.fadeIn {
  animation-name: fadeIn;
}


@keyframes fadeInDown {
  0% {
    opacity: 0;
   transform: translate3d(0, -100%, 0);
  }

  100% {
    opacity: 1;
    transform: none;
  }
}

.fadeInDown {
	animation-name: fadeInDown;
}



@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }

  100% {
    opacity: 1;
    transform: none;
  }
}

.fadeInUp {
  animation-name: fadeInUp;
}

/* @end */



/* ------------------------------------------------------------------------------

MEDIA QUERIES

---------------------------------------------------------------------------------*/


@media screen and (max-width: 1136px) {
body:after {
	content: "<1136";
	position: fixed;
	top: 0;
	line-height: 1;
	padding: 5px;
	font-size: 11px;
	background: lawngreen;
	z-index: 1000;
	opacity: .8;

	display: none; /* AN/AUS*/
}

}


@media screen and (max-width: 980px) {
body:after {
	content: "<980";
	background: TAN;
}


}


@media screen and (max-width: 768px) {
body:after {
	content: "<768";
	background: PINK;
}

}


@media screen and (max-width: 600px) {
body:after {
	content: "<600";
	background: YELLOW;
}

}


@media screen and (max-width: 360px) {
body:after {
	content: "<360";
	background: MAGENTA;
}


}




/* END
---------------------------------------------------------------------------------*/
