:root {
	--primary-color: #111111;
	--primary-color-filter: brightness(0) saturate(100%) invert(4%) sepia(54%) saturate(5697%) hue-rotate(354deg) brightness(106%) contrast(102%);
	--secondary-color: #111111;
	--accent-color: #CEA45A;
	--accent-color-filter: invert(68%) sepia(39%) saturate(512%) hue-rotate(360deg) brightness(92%) contrast(89%);
	--background-color: #FBF8F2;
	--white-color-filter: brightness(0) saturate(100%) invert(100%) sepia(80%) saturate(6%) hue-rotate(62deg) brightness(107%) contrast(101%);
	--text-dark: #333333;
	--text-light: #D8D8D8;
	--text-light-filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7457%) hue-rotate(29deg) brightness(123%) contrast(69%);
	--header-fade-distance: 2rem;
	--logo-height: 5.5rem;
	--side-margin: 2rem;
}

* {
	margin: 0;
	padding: 0;
	font-family: Varela;
}

html, body {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	scroll-behavior: smooth;
	font-size: 100%;
	font-family: Varela;
}

.navigation-container {
	width: 100%;
	height: 0;
	position: fixed;
	display: flex;
	flex-direction: column;
	align-items: end;
	z-index: 2;
	color: var(--accent-color);
	transition: height 0s 200ms;
}

.navigation-container:has(#nav-check:checked) {
	height: 100%;
	transition: height 0s 0s;
}

header {
	width: 100%;
	position: relative;
	z-index: 2;
	user-select: none;
	background: var(--secondary-color);
	border-bottom: 2px solid var(--accent-color);
}

.logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1rem 0;
}

.logo > a {
	display: contents;
}

.logo > a > img {
	height: var(--logo-height);
}

#phone-button {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 50%;
	left: 2rem;
	width: 2.5rem;
	height: 2.5rem;
	box-sizing: border-box;
	transform: translateY(-50%);
	cursor: pointer;
}

#phone-button > img {
	width: 1.75rem;
	filter: var(--accent-color-filter);
}

#nav-button {
	width: 2.5rem;
	height: 2.5rem;
	position: absolute;
	top: 50%;
	right: 2rem;
	transform: translateY(-50%);
	filter: var(--accent-color-filter);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	cursor: pointer;
}

#nav-list-mobile-container {
	flex: 0;
	padding: 0;
	position: absolute;
	margin-top: 2px;
	margin-right: -75%;
	top: calc(var(--logo-height) + var(--header-fade-distance));
	right: 0;
	z-index: 2;
	width: 75%;
	height: 100%;
	background-color: var(--primary-color);
	border-left: 2px solid var(--accent-color);
	user-select: none;
	white-space: nowrap;
	transition:
		margin 200ms ease,
		flex 0s 300ms,
		height 0s 300ms;
	transform: translateZ(0);
}

#nav-list-mobile-container > .pattern {
	position: absolute;
	margin: -2rem;
}

header:has(#nav-check:checked) + nav#nav-list-mobile-container {
	flex: 0;
	transition:
		margin 200ms ease,
		flex 0s 0s,
		display 0s 0s;
	margin-right: 0;
}

main, #home {
	transition: transform 200ms ease;
}

body:has(#nav-check:checked) main, body:has(#nav-check:checked) #home {
	transform: translateX(-75%);
}

#nav-list-mobile {
	list-style: none;
	display: flex;
	justify-content: start;
	flex-direction: column;
}

#nav-list-mobile > li {
	cursor: pointer;
	text-align: left;
	font-size: 1rem;
	background-color: var(--primary-color);
}

#nav-list-mobile > li:last-child {
	border-width: 1px 1px 2px 2px;
}

#nav-list-mobile > li > a {
	position: relative;
	top: 0;
	display: block;
	padding: 1rem;
	font-family: Varela;
	text-decoration: none;
	text-transform: uppercase;
	text-align: center;
	color: var(--accent-color);
	transition:
		top 300ms ease;
}

main > section {
	position: relative;
	width: 100%;
	height: calc(100% - var(--logo-height));
	scroll-margin-top: calc(var(--logo-height) + 2rem - 1px);
	background-color: var(--background-color);
	background-size: 20%;
}

main > section:nth-child(2n) {
	background-color: var(--primary-color);
}

.section-hero {
	position: relative;
}

.section-background {
	position: absolute;
	width: 100%;
	height: 100%;
/*	background-image: url(/res/images/pattern3.svg);*/
	background-size: 20%;
	background-repeat: repeat;
	filter: var(--accent-color-filter);
	opacity: 0.1;
}

main > section:nth-child(2n) .section-background {
	opacity: 0.05;
}

.section-background + div {
	position: relative;
	z-index: 1;
}

.section-content {
	padding-bottom: 2rem;
}

.background-video {
	width: 100%;
	height: 100vh;
	position: relative;
}

.background-video > video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.background-video > .video-cover {
	width: 100%;
	height: 100%;
	position: absolute;
	background-color: var(--primary-color);
	opacity: 0.25;
}

.video-fallback {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	display: none;
}

.video-fallback.mobile {
	display: initial;
}

.hover-buttons {
	position: absolute;
	text-align: center;
	left: 2rem;
	bottom: 6rem;
	width: calc(100% - 4rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	grid-gap: 1rem;
	z-index: 1;
}

.hover-buttons > * {
	padding: 1rem 2rem;
	font-family: Varela;
	background-color: var(--primary-color);
	border: 2px solid var(--accent-color);
	color: var(--accent-color);
	user-select: none;
	cursor: pointer;
	text-decoration: none;
	text-transform: uppercase;
}

.heading-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	grid-gap: 2rem;
}

/*#general .heading-container {
	margin-top: 3rem;
}*/

h2 {
	font-family: Petit;
	font-size: 1.5rem;
	color: var(--accent-color);
	margin: 0 2rem;
	text-align: center;
/*	text-transform: uppercase;*/
}

#map {
	width: auto;
	height: 20rem;
	margin: 2rem var(--side-margin) 0 var(--side-margin);
}

.map-pin {
/*	filter: var(--primary-color-filter);*/
}

#menu-buttons {
	margin-top: 1rem;
	text-align: center;
}

#menu-buttons > input {
	display: none;
}

#menu-buttons > label {
	display: inline-block;
	font-family: Varela;
	font-size: 1.1rem;
	margin: 1rem;
	padding: 0.5rem 0.75rem;
	color: var(--accent-color);
	border-bottom: 1px solid var(--accent-color);
	cursor: pointer;
}

/*#menu-buttons > label:hover {
	background-color: white;
	border-bottom: 3px solid var(--accent-color);
}*/

#menu-buttons > input:checked + label {
	background-color: var(--accent-color);
	color: var(--text-light);
}

.menu-additional {
	color: var(--text-light);
}

#menu-items {
	margin: 1rem var(--side-margin) 0 var(--side-margin);
}

.menu-item {
	display: flex;
	flex-direction: column;
	grid-gap: 0.5rem;
	border-bottom: 1px dashed var(--accent-color);
	padding: 1rem 0;
	cursor: pointer;
}

.menu-item:last-child {
	border-bottom: none;
}

.menu-item > div {
	display: flex;
	flex-direction: column;
	justify-content: start;
	align-items: start;
}

.menu-item div:has(> .item-name) {
	display: flex;
	flex-direction: row;
	width: 100%;
}

.menu-item span {
	display: block;
}

.menu-item .item-dropdown-icon {
	rotate: -90deg;
	filter: var(--accent-color-filter);
	margin: 0 0 0.5rem -4px;
	display: inline;
	vertical-align: middle;
	height: 1rem;
	transition: rotate 300ms;
}

.menu-item.dropped .item-dropdown-icon {
	rotate: 0deg;
}

.menu-item.undroppable .item-dropdown-icon {
	display: none;
}

.menu-item .item-name {
	color: var(--accent-color);
	vertical-align: middle;
	display: flex;
	align-items: center;
}

.menu-item .item-name > span {
	display: inline;
	font-family: Varela;
	font-size: 1.1rem;
	margin-bottom: 0.5rem;
}

.menu-item .item-description {
	color: var(--text-light);
	font-size: 0.8rem;
}

.menu-item .item-price {
	font-family: Varela;
	font-size: 1.1rem;
	color: var(--accent-color);
	margin-left: auto;
	white-space: nowrap;
	text-align: right;
}

/*.menu-item .item-price:before {
	font-family: Varela;
	font-size: 1.1rem;
	content: "€ ";
	white-space: pre;
}*/

.menu-item .item-dropdown {
	display: flex;
	flex-direction: column;
	grid-gap: 0.5rem;
}

.menu-item .item-ingredients {
	color: var(--text-light);
	font-size: 0.8rem;
}

.menu-item .item-image {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
}

.menu-item .item-dropdown {
/*	display: none;*/
	height: 0;
	overflow: hidden;
	transition: height 300ms;
}

.menu-item.dropped .item-dropdown {
/*	display: initial;*/
/*	height: initial;*/
	height: calc((100vw - 2 * var(--side-margin)) / 16 * 9 + 0.5rem + 1.4 * 0.8rem);
}

.menu-item.undroppable .item-dropdown {
	height: 0;
}

.vegetarian, .vegan, .spicy {
	display: inline !important;
	margin-left: 0.5rem;
	font-family: initial !important;
	font-size: 0.5rem !important;
	align-self: center !important;
	text-transform: uppercase;
}

.vegetarian {
	color: #A0ECA0;
}

.vegan {
	color: #5EC15E;
}

.spicy {
	color: #ECBBBB;
}

#menu-additionals {
	margin: 1rem var(--side-margin) 0 var(--side-margin);
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 2rem;
	grid-gap: 1rem;
	color: var(--text-light);
}

#menu-additionals > div {
	display: flex;
	flex-direction: column;
	grid-gap: 1rem;
}

#menu-additionals p {
	font-size: 0.8rem;
	text-align: center;
}

#menu-additionals a {
	color: var(--accent-color);
	text-wrap: nowrap;
}

#menu-additionals .menu-pdf {
	padding: 1rem 2rem;
	font-family: Varela;
	background-color: var(--primary-color);
	border: 2px solid var(--accent-color);
	color: var(--accent-color);
	user-select: none;
	cursor: pointer;
	text-decoration: none;
	text-transform: uppercase;
	text-align: center;
}

#reservation-form {
	display: flex;
	flex-direction: column;
	margin: 1rem var(--side-margin) 0 var(--side-margin);
	grid-gap: 1rem;
}

#reservation-form input, #reservation-form select, #reservation-form textarea {
	width: 0;
	min-width: 100%;
	padding: 0.2rem;
	border: 1px solid gray;
	border-radius: 0;
	background-color: white;
	box-sizing: border-box;
	font-size: 1rem;
}

#reservation-form .reservation-row > input {
	width: initial;
	min-width: initial;
}

#reservation-form input:user-invalid {
	border-color: red;
}

#reservation-form textarea {
	height: 10rem;
	min-width: 100%;
	max-width: 100%;
	width: 100%;
}

.reservation-field {
	display: flex;
	flex-direction: column;
	grid-gap: 0.25rem;
	flex: 1;
}

.reservation-row {
	display: flex;
	flex-direction: row;
	grid-gap: 1rem;
}

.reservation-field > label {
	color: grey;
	font-size: 0.8rem;
}

input#reservation-button {
	margin-top: 1rem;
	padding: 0.5rem;
	background: var(--primary-color);
	border: 2px solid var(--accent-color);
	color: var(--accent-color);
	user-select: none;
	cursor: pointer;
	font-weight: bold;
	text-transform: uppercase;
}

input#reservation-button:disabled {
	opacity: 0.7;
}

.pattern {
	width: 100%;
	height: 2px;
	background-color: var(--accent-color);
}

.text {
	margin: 2rem var(--side-margin) 0 var(--side-margin);
}

.text > h3 {
	margin-bottom: 1rem;
	font-family: Petit;
	font-size: 1.25rem;
	color: var(--accent-color);
	text-align: center;
}

.text > p {
	color: var(--text-dark);
	margin-bottom: 0.5rem;
	text-align: center;
	font-family: Varela;
}

main > section:nth-child(2n) .text > p {
	color: var(--text-light);
}

.highlight {
	color: var(--accent-color);
}

.text > img {
	width: 100%;
}

.gallery-container {
	margin: 2rem var(--side-margin) 0 var(--side-margin);
	display: grid;
	grid-template-columns: auto auto;
	grid-gap: 0.5rem;
}

.gallery-container > img {
	width: 100%;
	border: 1px solid var(--accent-color);
	box-sizing: border-box;
	aspect-ratio: 1;
	object-fit: cover;
}

#opentimes {
	scroll-margin-top: calc(var(--logo-height) + 4rem);
}

.card {
	background-color: var(--primary-color);
	color: var(--text-dark);
	margin: 2rem var(--side-margin) 0 var(--side-margin);
	text-align: center;
	padding: 1rem 0.5rem;
	border: 2px solid var(--accent-color);
}

.card > b {
	display: block;
	margin-bottom: 1rem;
	font-family: Petit;
	font-size: 1.25rem;
	color: var(--accent-color);
}

.card > p, .card > pre, .card > a {
	margin-bottom: 0.25rem;
	display: block;
	color: var(--text-light);
	font-family: Varela;
	tab-size: 5;
}

pre {
	white-space: pre-wrap;
}

footer {
	background-color: var(--primary-color);
	color: var(--text-light);
	padding: 1rem var(--side-margin);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-top: 2px solid var(--accent-color);
	font-size: 0.8rem;
}

footer a {
	color: var(--text-light);
}

.footer-content {
	display: flex;
	flex-direction: column;
	justify-content: space-around;
}

.footer-contact > .name {
	font-weight: bold;
}

.footer-links {
	margin-top: 2rem;
	display: flex;
	flex-direction: row;
	grid-gap: 0.25rem;
}

.footer-copyright {
	display: flex;
	flex-direction: column;
	justify-content: end;
	margin-top: 2rem;
}

.social {
	filter: var(--text-light-filter);
}

#message-popup-parent {
	position: fixed;
	width: 100vw;
	height: 100vh;
	top: 0;
	left: 0;
	z-index: 120;
	visibility: hidden;
	background-color: rgba(32, 32, 32, 0.8);
	opacity: 0;
	transition: all 200ms ease;
}

#message-popup {
	position: fixed;
	width: 75%;
	top: 50vh;
	left: 50vw;
	transform: translate(-50%, -50%);
	z-index: 121;
	padding: 2rem;
	background-color: var(--primary-color);
	border-radius: 0;
	border: 0.1rem solid var(--accent-color);
	color: var(--text-light);
	font-size: 1.2rem;
}

#message-popup-cancel {
	position: absolute;
	top: 2.5rem;
	right: 2rem;
	width: 2.5rem;
	height: 2.5rem;
	background: radial-gradient(circle, white 0%, white 60%, transparent 61%);
	z-index: 122;
	transition: all 200ms ease;
}

#message-popup-cancel > div {
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-clip: content-box;
	background-size: cover;
	background-position: center;
	filter: var(--accent-color-filter);
}

#message-popup-cancel:hover {
	cursor: pointer;
	scale: 1.2;
}