/************************ COLUMNS ***********************/
div.layout {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-content: space-between;
}

div[class*='Column'] {
	flex: 1 1 100%;
}

.halfColumn {
	flex: 1 1 50%;
}

.halfColumn:first-child {
	padding-right: 1rem;
}

.halfColumn:nth-child(2) {
	padding-left: 1rem;
}


/************************ HOME ***********************/
body.splash header,
body.splash main {
	opacity: 0;
	animation: fadeIn 0s;
	animation-delay: 1s;
	animation-fill-mode: forwards;
}

div.splash {
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background-position: center;
	background-size: cover;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	/*align-content: center;*/
	align-items: center;
	z-index: 800;
	margin-bottom: 100%;
	box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.2);
	transition: margin .2s ease-in-out;
	animation: hideSplash;
	animation-duration: 1s;
	animation-delay: 12s;
	animation-fill-mode: forwards;
}

div.splash div.loadingBar{
	position: absolute;
	top:1rem;
	left:0;
	background:rgba(187, 177, 171,0.7);
	height: .35rem;
	padding:0;
	width:0;
	animation: loadingBar;
	animation-fill-mode: forwards;
	animation-duration: 12s;
	animation-timing-function: linear;
}

body.hideHomeAni div.splash {
	animation-delay: 0s;
	animation-fill-mode: forwards;
}

div.splash.animate {
	animation: hideSplash 4s;
	animation-fill-mode: forwards;
	animation-delay: 0s;
}

div.splash:before {
	content: '';
	background: rgba(0, 0, 0, .62);
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
}

div.splash > div {
	padding: 3.125rem 0;
}

div.splash > .logos img {
	padding: 1.25rem 0;
}

div.splash > div.logos {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-content: center;
	align-items: center;
	width: 100%;
	position: relative;
}


div.splash img.claim,
div.splash img.logo {
	filter: invert(1);
	opacity: 0;
	animation: fadeIn 2s;
	animation-delay: .4s;
	animation-fill-mode: forwards;
	width: 70%;
	max-width: 1400px;
	left: auto;
}

body.home main,
body.home header {
	opacity: 0;
	animation: fadeIn 2s;
	animation-delay: 1s;
	animation-fill-mode: forwards;
}

div.splash img.claim {
	width: 40%;
	max-width: 1200px;
}

div.splash .search,
div.splash .sectionLogos {
	opacity: 0;
	animation: fadeIn 1s, fadeOut 1s;
	animation-delay: 1s, 4s;
	animation-fill-mode: forwards;
	width: 80%;
}

div.splash .search {
	flex: 1 1 auto;
	padding-top: 3.75rem;
}

div.splash div.search .input {
	width: 50%;
	max-width: 1000px;
}

div.splash div.search .input i {
	color: #c9caad;
	font-size: 2rem;
	padding-right: 1.5rem;
	border-right: 3px solid #c9caad;
	left: 1.5rem;
	top: 0.45rem;
}

div.splash div.search input {
	padding-left: 0.5rem;
}

div.splash div.search .input {
	border-radius: 1.5rem;
	border: 3px solid #c9caad;
	padding: 0.625rem;
	padding-left: 6.5rem;
	color: #c9caad;
	font-size: 1.25rem;
}

div.splash .sectionLogos {
	top: 80%;
}

div.splash .sectionLogos {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-content: space-between;
	align-items: flex-start;
	max-width: 1600px;
	align-self: flex-end;
}

div.splash .sectionLogos a {
	flex: 1 1 auto;
	align-self: auto;
}

div.splash .sectionLogos a img {
	width: 70%;
	margin-left: 15%;
}

div.splash .search input::placeholder {
	color: #c9caad;
	opacity: 0.5;
}


div.slider {
	width: 100%;
	overflow: hidden;
	height: 100%;
	flex: 1 1 auto;
}

div.sliderContainer {
	width: 400%;
	white-space: nowrap;
	height: 100%;
	transition: margin .7s ease-in-out;
}

div.sliderItem {
	width: 25%;
	float: left;
	display: inline-block;
	position: relative;
	height: 100%;
}

div.sliderItem .sideBar {
	width: 40%;
	height: 100%;
	float: left;
	display: flex;
	padding: 3rem 3rem 3rem 1rem;
	position: relative;
	flex-direction: column;
}

div.sliderItem .image {
	width: 60%;
	height: 100%;
	float: left;
	display: inline-block;
	background-position: center center;
	background-size: cover;
}

.sideBar .logoContainer {
	justify-content: flex-start;
	padding-left: 2rem;
}

.sideBar img:not(.logo) {
	filter: brightness(100);
	margin-left: 6rem;
	width: 80%;
}

div.sliderItem a {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

div.sliderItem:nth-child(1) .image {
	background-position: center left;
}

div.sliderItem:nth-child(3) .image {
	background-position: center right;
}


.sideBar h1 {
	white-space: nowrap;
	margin: 2rem 0 .5rem 0;
}

.sideBar h2 {
	color: #fff;
	margin: .9rem 0 0 2rem;
	text-decoration: none;
	font-weight: bold;
	font-size: 4rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	white-space: nowrap;
}

/************************ FLEX CONTAINER ***********************/
div.flexCollection {
	position: relative;
	transition: height .5s;
	width: 100%;
	height: 100%;
}

div.flexItem {
	position: relative;
	width: 25%;
	transition: left 0.5s, top 0.5s, opacity 0.5s;
	background-color: rgb(68, 77, 83);
	font-size: 0;
}

div.flexItem.even{
	filter:brightness(0.95);
}

div.flexItem.odd{
	filter:brightness(1.05);
}

div.flexItem.noclick{
}

div.flexItem > div {
	position: relative;
}

div.flexItem.title > div {
	height: 100%;
}

[data-columncount="2"] div.flexItem {
	width: 50%;
}

div.flexItem .content,
div.flexItem.header .content {
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
	width: 100%;
	height: 100%;
	padding: 1.2rem 1.2rem;
	display: flex;
	flex-direction: column;
}

div.flexItem.image .content {
	background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 60%);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	justify-content: flex-end;
	flex: 0 0 100%;
}

div.flexItem .content > *:last-child {
	margin-bottom: 0;
}

div.flexItem .content .textColumn > img {
	display: none;
}

[data-csp4col="2"] .textColumn {
	column-count: 2;
	column-gap: 3rem;
}

div.flexItem > img {
	width: 100%;
	line-height: 0;
}

div.flexItem a.tileLink {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

div.flexItem a.tileLink.external:before{
	content:'\f08e';
	font-family: "Font Awesome 6 Pro";
	font-weight: 400;
	position: absolute;
	top:.5rem;
	right:.5rem;
	color:#fff;
	font-size: 1.2rem;
	text-shadow: 1px 1px 5px rgba(0,0,0,.3);
}

div.megaDropdown a.external:after{
	display:none;
	content:'\f08e';
	font-family: "Font Awesome 6 Pro";
	font-weight: 400;
	margin-left: .6rem;
	font-size: .8rem;
}


div.flexItem.header .content {
	background: none;
}

div.flexItem.header.image > .content {
	display: grid;
	grid-template-columns: 35% 65%;
	padding: 0;
	position: relative;
	background: none;
}

.flexCollection div.flexItem.header {
	width: calc(25% - 2rem);
}

div.flexItem.header {
	border-bottom: 2rem transparent solid;
	background-clip: padding-box;
}

div.flexItem.header.hasImg {
	width: 100%;
	border-bottom: 2rem solid transparent;
}

.flexItem.header > .content {
	background: none;
}

.flexItem.header > .content > div {
	grid-column-start: 1;
	grid-column-end: 1;
	padding: 1.2rem 1.2rem;
	position: relative;
	height: 100%;
}

.flexItem.header .content > div:last-child {
	grid-column-start: 2;
	grid-column-end: 2;
	padding: 0;
}

.flexItem.header .content > div:last-child div.img {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.flexItem.header .content > div:first-child {
	display: flex;
	flex-direction: column;
}

.flexItem.header .content > div:first-child h1 {
	margin-bottom: 2rem;
}

div.flexItem.image.header .content .content {
	text-align: right;
}

.flexItem.header > div.content > div > h1 {
	margin-bottom: 2rem;
	font-weight: normal;
}

.flexItem.header h1 b {
	font-weight: 600;
}

.flexItem.title {
	height: 100%;
}

.flexItem.title h1 {
	font-size: 2.9rem;
}

.flexItem.title .content {
	background: none;
	padding: 3rem 2.2rem 3.5rem;
}

.flexItem:not(.title) h1 {
	margin-bottom: 2rem;
}

.flexItem:not(.title) h1 + h2 {
	margin-top: -2rem;
}

.flexItem.title h1 {
	white-space: nowrap;
}

.flexItem.title h2 {
	font-size: 2rem;
	letter-spacing: .5rem;
	font-weight: 600;
	white-space: nowrap;
}

div.flexItem p * {
	color: #fff;
}

div.flexItem p,
div.flexItem ul{
	margin-bottom: 1rem;
	break-inside: avoid;
	display: table;
}

.logoContainer {
	padding-top: 1rem;
	width: 100%;
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
}

div.flexItem.title .logoContainer {
	justify-content: flex-start;
}

div.flexItem.title .logoContainer img{
	max-width: 400px;
}

.sideBar .logoContainer img{
	max-width: 600px;
}

div.flexItem .content .textColumn .logoContainer {
	padding-top: 0;
	height: 100%;
}

.logoContainer {
	align-self: flex-start;
	margin: auto 0 0 0;
}

div.flexItem:not(.title) .logoContainer img,
body.page .logoContainer img {
	max-width: 230px;
}


.flexItem.title .logoContainer img {
	float: left;
}

div.flexItem .sideBar img:not(.logo) {
	margin-left: 0;
}

div.flexItem .sideBar h1 {
	font-family: Baskerville;
	font-weight: 600;
	font-size: 2rem;
	text-transform: none;
}

.marquee {
	background: #fff;
	white-space: nowrap;
	overflow: hidden;
	width:100%;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
}

.marquee div {
	display: inline-block;
	animation: marquee 20s linear infinite;
	padding: .5rem 0 .5rem 100%;
	white-space: nowrap;
}

div.flexItem .marquee p {
	font-weight: bold;
	margin: 0;
	display: inline-block;
	color: rgb(68, 77, 83);
	font-size: 1.2rem;
	text-transform: uppercase;
	white-space: nowrap;
}

div.flexItem .marquee br {
	display: none;
}

.marquee p:before,
.marquee p:last-child:after {
	content: '+++';
	font-weight: bold;
	padding: 0 1em;
}


/************************ WEATHER ***********************/
.weather h1 img {
	height: 70px;
	width: auto;
	padding-left: 0.8rem;
	margin-top: -19px;
	margin-bottom: -28px;
}

div.flexItem .weather h1 {
	margin-bottom: 4rem;
}

.weather p {
	width: 70%;
}

/************************ CALENDAR ***********************/
#gmap_canvas {
	width: 100%;
	height: 20rem;
}


date {
	display: flex;
	align-content: center;
	align-items: center;
	position: relative;
	width: 100%;
	overflow: hidden;
}

date > a {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

date > div {
	width: 2.5rem;
	margin: 0 1.2rem 1rem 0;
}

date span {
	font-size: 1.6rem;
	font-weight: bold;
	display: block;
	text-align: center;
	opacity: .9;
}

date span:nth-child(2) {
	font-size: 1rem;
	text-transform: uppercase;
	margin-top: -.2rem;
}

date + a.button {
	float: right;
	margin-top: 1em;
}

div.flexItem date p{
	width: 100%;
	overflow: hidden;
	display: block;
}

date i{
	font-style: normal;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block;
	width: 100%;
}

div.addToCalendar{
	font-size: initial;
	margin-top:2rem;
	opacity: 0.7;
}

div.addToCalendar ul{
	padding-left: 0;
}

div.addToCalendar ul li{
	list-style-type: none;
	display:inline-block;
	margin:.5rem 1rem 0 0;
	height:1.5rem;
	font-size: 1.5rem;
}

/************************ THERME ***********************/
html[class*='therme'] {
	background-color: rgb(23, 35, 65);
}

/************************ CONTENT COLLECTION ***********************/
div.content_collection_item {
	display: grid;
	width: 100%;
	grid-template-columns:50% 50%;
	grid-gap: 0;
	height: 100%;
	position: relative;
}

div.content_collection_item > a {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.flexCollection div.content_collection_item {
	height: auto;
}

[data-columncount="4"] div.content_collection_item {
	width: 50%;
}

div.content_collection_item > div a {
	z-index: 1;
	position: relative;
}

.single div.content_collection_item {
	width: 100%;
}

div.content_collection_item .image {
	grid-row-start: 1;
	grid-row-end: 1;
	grid-column-start: 1;
	grid-column-end: 1;
	overflow: hidden;
	line-height: 0;
}

div.content_collection_item.first {
	width: 75%;
}

div.content_collection_item .content,
body.page div.flexCollection div.content_collection_item > .content {
	grid-row-start: span 2;
	grid-column-start: 2;
	grid-column-end: 2;
	padding: 1.8rem 1.2rem;
	background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0) 100%);
}

div.content_collection_item .content.first {
	grid-row-start: span 2;
	grid-column-start: 1;
	grid-column-end: 1;
	padding: 0;
}

div.content_collection_item .facts {
	grid-row-start: span 2;
	grid-column-start: 1;
	grid-column-end: 1;
	padding: 1.8rem 1.2rem;
}


div.content_collection_item .facts img{
	width:calc(100% + 1.2rem + 1.2rem);
	margin-left: -1.2rem;
	margin-bottom: 2rem;
	margin-top:-1.8rem;
}

body.page div.content_collection_item .content:not(.first) .facts {
	background: transparent;
}

body.page div.content_collection_item > .content {
	padding: 0;
}

body.page div.content_collection_item .content {
	grid-row-start: span 200;
}

body.page div.content_collection_item .content.first {
	background: none;
	grid-row-start: span 200;
}

body.page div.content_collection_item {
	position: relative;
	flex: 1 1 auto;
}

body.page .header {
	width: 50%;
}

div.content_collection_item .facts:empty {
	padding: 0;
	display: none;
}


/************************ BREADCRUMB ***********************/
h3.breadcrumb,
h3.breadcrumb i,
h3.breadcrumb a {
	font-size: .8rem;
	text-transform: uppercase;
	text-decoration: none;
	letter-spacing: 0.6px;
	margin-bottom: 2rem;
	display: inline-block;
	position: relative;
}

h3.breadcrumb i,
h3.breadcrumb a {
	margin-bottom: 0;
	margin-bottom: .6rem;
	font-weight: 600;
	text-decoration: none;
}

h3.breadcrumb i {
	padding: 0 .4rem 0 .4rem;
	width: 1.375rem;
	text-align: center;
}

h3.breadcrumb i:last-child,
h3.breadcrumb a:empty + i {
	display: none;
}

h3.breadcrumb a:before {
	content: '';
	position: absolute;
	bottom: -3px;
	left: 0;
	right: 0;
	border-bottom: 1px solid #fff;
}

/************************ GASTRO ***********************/
div.gastroImage {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
	width: 100%;
}

div.gastroImage:before {
	content: '';
	display: block;
	padding-top: 70%;
}

/************************ AMPEL ***********************/
div.ampel{
	border:2px solid #fff;
	border-radius: 50%;
	position: absolute;
	top: .4rem;
	right: 0.4rem;
	width: 1rem;
	height: 1rem;
}

/************************ SHOP ***********************/
form.shopItemControls{
	margin-top:2rem;
}

form.shopItemControls .input,
.input{
	text-align: right;
	font-size: 1.4rem;
	padding: .2rem .4rem;
	border-bottom:1px solid #fff;
	cursor:text;
	display:inline-block;
}

form.shopItemControls .input + span,
form.shopItemControls .price + span,
.input + span{
	font-size: 1.2rem;
	display:inline-block;
	margin:0 1rem;
}

form.shopItemControls .layout{
	align-items: center;
	justify-content: end;
}

form.shopItemControls .layout:first-child{
	margin-bottom: 1rem;
}


form.shopItemControls .price{
	font-weight: 600;
    font-size: 1.4rem;
	text-align: right;
	padding:.4rem 0 .2rem;
	margin-bottom: 0;
	display:inline-block;
}

form.shopItemControls .input.price + span,
form.shopItemControls .price + span{
	font-weight: 600;
	margin-right: 0;
	margin-left:0;
	padding:.6rem 0 .25rem .4rem;
	border-bottom:1px solid #fff;
}

form.shopItemControls .input.price{
	padding-left: .4rem;
}


form.shopItemControls .price + span{
	border:none;
}

header a.notEmpty{
	position: relative;
}

header a.notEmpty span{
	content: '';
	position: absolute;
	border-radius: 50%;
	width: 0.8rem;
	bottom: -.1rem;
	right: -.2rem;
	background-color: rgb(68, 77, 83);
	aspect-ratio: 1;
}

.flexItem.basket h1 + h2{
	margin-top:0;
}

.flexItem.basket h2{
	margin-bottom: .8rem;
	text-transform: none;
}

.flexItem.basket h2 span{
	float:right;
	font-weight: 300;
}

.flexItem.basket .buttonContainer{
	display:flex;
	margin-top: auto;
	justify-content: end;
	flex-direction: row-reverse;
}

.flexItem.basket .button,
.flexItem.basket button{
	margin-top: 2rem;
	background:#fff;
}

.flexItem.basket .button i,
.flexItem.basket button i{
	margin-left: 1.2rem;
	line-height: 1.2;
	transition: ease-in-out all .2s;
	font-weight: 600;
}

.flexItem.basket .button.transparent,
.flexItem.basket button.transparent{
	background:none;
	color:#fff;
	font-weight: 400;
	border:none;
}

.flexItem.basket .button:hover i,
.flexItem.basket button:hover i{
	transform: translateX(.2rem);
}

.basketItem:not(:last-child){
	margin-bottom: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid #fff;
}

.basketItem > div:first-child{
	flex:0 0 25%;
	padding-right: 2.4rem;
}

.basketItem > div{
	align-content: center;
	flex:0 0 65%;
}

.basketItem > div:last-child{
	flex:0 0 10%;
	padding-left: 2.4rem;
}

.basketItem h3{
	margin-bottom: 2rem;
}

div.flexItem .basketItem p{
	margin-bottom: .25rem;
}

.basketItem button{
	margin-top:0rem;
	padding:.25rem .5rem;
	border:none;
}

.basketItem .input{
	font-size: 1.1rem;
}

.flexCollection div.flexItem.header.basket{
	margin-left:2rem;
}

.flexItem.header.basket > .content > div{
	padding:0;
}

.flexItem.header.basket.shipping > .content label{
	font-size: initial;
	font-weight: 600;
	margin-top: 1rem;
	display: block;
}

.flexItem.header.basket.shipping > .content input[disabled]{
	padding-bottom: 0;
	background:none;
	padding-left:0;
	padding-right: 0;
	padding-top: 0;
}

p#result-message:empty{
	margin:0;
}

p#result-message:not(:empty){
	font-weight: 600;
	color:red;
	margin:1rem 0;
	display:block;
}