:root {
	/* green */
	--background-color: #707b49;
	/* purple */
	--foreground-color: #bea4cb;
}

* {
	box-sizing: border-box;
	color: white;
	font-family: Palanquin, sans-serif;
	font-size: 1.2rem;
	line-height: 1.8rem;
}

html {
	font-size: 16px;
	height: 100%;
	margin: 0;
}

body {
	/* We set the background color of the body to the background color of the
	 * impressum so that the color does not change when scrolling past the end of
	 * the page. */
	background-color: var(--foreground-color);
	height: 100%;
	margin: 0;
}

.flex-\[1_0_auto\] {
	flex: 1 0 auto;
}

.flex-container {
	display: flex;
	flex-flow: row wrap;
	gap: 0.5rem;
}

.flex-container-no-wrap {
	display: flex;
	gap: 0.5rem;
}

.flex-none {
	flex: none;
}

.flex-1 {
	flex: 1;
}

.flex-1\.0 {
	flex: calc(1.0 * 100%);
}

.flex-\[1_0_15rem\] {
	flex: 1 0 15rem;
}

.flex-\[1_0_25rem\] {
	flex: 1 0 25rem;
}

.flex-\[4_0_15rem\] {
	flex: 4 0 15rem;
}

.flex-\[1_0_5rem\] {
	flex: 1 0 5rem;
}

.page-container {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

main {
	background-color: var(--background-color);
	flex: 1;
}

footer * {
	color: black;
}

div {
	min-height: 1px;
}

h1 {
	color: var(--foreground-color);
	font-size: min(3.5rem, 10.8vw);
	font-weight: 700;
}

hr {
	color: rgba(255, 255, 255, 0.6);
	flex: 100%;
	margin: 0.5rem 0;
}

label>a {
	font-size: 1.75rem;
}

a.button {
	background-color: rgba(255, 255, 255, 0.2);
	border: none;
	color: white;
	display: block;
	font-size: 1.75rem;
	line-height: 3rem;
	min-height: 3rem;
	padding: 0 0.5rem;
	text-align: center;
	text-decoration: none;
}

input {
	background-color: rgba(255, 255, 255, 0.2);
	border: none;
	color: white;
	font-size: 1.75rem;
	max-width: 100%;
	min-height: 3rem;
	padding: 0 0.5rem;
}

input[type="checkbox"] {
	min-height: 1.25rem;
	height: 1.25rem;
	margin: 0.3rem 0;
	width: 1.25rem;
}

label.meal-intro,
input[type="checkbox"]+label,
input[type="checkbox"]+label>* {
	font-size: 1.5rem;
	line-height: 1.7rem;
}

input[type="submit"] {
	cursor: pointer;
	margin-bottom: 3.5rem;
}

.content {
	margin: auto;
	width: min(43rem, calc(100vw - 1rem));
}

main {
	padding-bottom: 4.5rem;
}

footer {
	padding: 2.25rem 0;
}

footer p {
	margin: 0.5rem 0;
}

select {
	background-color: rgba(255, 255, 255, 0.2);
	border: none;
	font-size: 1.75rem;
	max-width: 100%;
	min-height: 3rem;
	padding: 0 0.5rem;
}

input::placeholder {
	color: rgba(255, 255, 255, 0.6);
}

textarea::placeholder {
	color: rgba(255, 255, 255, 0.6);
}

option:disabled {
	display: none;
}

option:enabled {
	color: black;
}

select:invalid {
	color: rgba(255, 255, 255, 0.6);
}

textarea {
	background-color: rgba(255, 255, 255, 0.2);
	border: none;
	font-size: 1.75rem;
	max-width: 100%;
	padding: 0.5rem;
	resize: vertical;
}

.errors {
	background-color: darkred;
	padding: 1.125rem;
}

.errors * {
	margin: 0;
}

.errors ul {
	padding-left: 1.125rem;
}

.note {
	background-color: var(--foreground-color);
	padding: 1rem;
	margin: 0.5rem 0;
}

.note * {
	color: black;
	margin: 0;
}

.vertically-centered {
	position: relative;
	top: -0.05em;
}

.if-allergies-checked {
	display: none;
}

.if-vegetarian-checked {
	display: none;
}

.if-multitalent-checked {
	display: none;
}

.ticket-label {
	background-color: rgba(255, 255, 255, 0.2);
	border: none;
	color: white;
	cursor: pointer;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: 0.5rem;
}

strong,
strong * {
	font-weight: 700;
}

.ticket-label>input[type="radio"] {
	display: none;
}

.ticket-label:has(>input[type="radio"]:checked) {
	background-color: var(--foreground-color);
}

.ticket-label:has(>input[type="radio"]:checked) * {
	color: black;
}

.ticket-label:hover,
.button:hover {
	background-color: rgba(255, 255, 255, 0.3);
}

.ticket-comment {
	color: rgba(255, 255, 255, 0.7);
	font-style: italic;
	margin: 0 0 0.5rem;
}

.ticket-name {
	font-size: 1.75rem;
	margin: 0;
}

.ticket-duration {
	margin: 0.5rem 0;
}

.ticket-price,
.ticket-price * {
	color: var(--foreground-color);
	font-weight: 700;
	margin: 0;
}

.summary-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.summary-table tr {
	display: flex;
	flex-flow: row wrap;
	gap: 0;
	margin-bottom: 0.5rem;
}

.summary-table th {
	color: var(--foreground-color);
	flex: 0 0 100%;
	text-align: left;
	vertical-align: top;
}

.summary-table td {
	flex: 0 0 100%;
	vertical-align: top;
}

.no-margin {
	margin: 0;
}

.no-margin-bottom {
	margin-bottom: 0;
}

.no-margin-top {
	margin-top: 0;
}

.donation-buttons {
	display: none;
}

.donation-btn {
	background-color: rgba(255, 255, 255, 0.2);
	border: none;
	color: white;
	cursor: pointer;
	font-size: 1.5rem;
	flex: 1 0 auto;
	min-height: 3rem;
	padding: 0 0.5rem;
}

.donation-btn:hover {
	background-color: rgba(255, 255, 255, 0.3);
}

.donation-btn.active {
	background-color: var(--foreground-color);
	color: black;
}

.donation-input {
	margin-top: 1rem;
}

@media only screen and (min-width: 43rem) {
	.summary-table tr {
		gap: 0.5rem;
	}

	.summary-table th {
		flex: 1;
		text-align: right;
	}

	.summary-table td {
		flex: 1;
	}
}
