/*
 * Buchungsseite Schulrestaurant-Reservierung – nur auf Seiten mit dem Shortcode geladen.
 * Grundschrift kommt vom Theme. Überschriften und Knöpfe sind an das Theme der Schulwebsite
 * (Pofo) angelehnt: Montserrat in Großbuchstaben, eckige Knöpfe, Akzentfarbe Hellblau.
 * Montserrat lädt das Theme; fehlt sie, greift die Ersatzschrift.
 */

.srr-booking {
	--srr-accent: #a1b7d7;
	--srr-dark: #232323;
	--srr-line: #d1d1d1;
	--srr-heading-font: Montserrat, "Helvetica Neue", Arial, sans-serif;
	margin: 1.5em 0;
}

.srr-booking__week {
	margin-bottom: 2em;
}

.srr-booking .srr-booking__week h3,
.srr-booking .srr-booking__panel h3 {
	font-family: var(--srr-heading-font);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--srr-dark);
	margin: 0 0 0.75em;
}

.srr-booking__event {
	border: 1px solid var(--srr-line);
	padding: 1em 1.25em;
	margin-bottom: 1em;
}

.srr-booking .srr-booking__event h4 {
	font-size: 20px;
	line-height: 1.4;
	color: var(--srr-accent);
	margin: 0 0 0.5em;
}

.srr-booking__menu {
	white-space: pre-line;
	margin: 0 0 0.75em;
}

.srr-booking__menu--pending {
	font-style: italic;
	opacity: 0.75;
}

.srr-booking__intro {
	margin-bottom: 1.5em;
}

.srr-booking__sizes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

/*
 * Knöpfe im Stil der Theme-Knöpfe: eckig, dunkler Rahmen. Das Theme gestaltet einfache Knöpfe nicht,
 * darum alles hier. Etwas größer als im Theme, damit sie auf dem Handy gut zu treffen sind.
 */
.srr-booking .srr-booking__size,
.srr-booking .srr-booking__submit,
.srr-booking .srr-booking__cancel {
	display: inline-block;
	box-sizing: border-box;
	min-height: 42px;
	cursor: pointer;
	padding: 0.6em 1.5em;
	border: 2px solid var(--srr-dark);
	border-radius: 0;
	background: transparent;
	color: var(--srr-dark);
	font-family: var(--srr-heading-font);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: background-color 0.2s, color 0.2s;
}

.srr-booking .srr-booking__size:hover,
.srr-booking .srr-booking__size:focus-visible,
.srr-booking .srr-booking__cancel:hover,
.srr-booking .srr-booking__cancel:focus-visible,
.srr-booking .srr-booking__submit {
	background: var(--srr-dark);
	color: #fff;
}

.srr-booking .srr-booking__submit:hover,
.srr-booking .srr-booking__submit:focus-visible {
	background: transparent;
	color: var(--srr-dark);
}

.srr-booking__seats-hint {
	font-weight: 600;
	margin: 0 0 0.5em;
}

.srr-booking__full {
	font-weight: 600;
	opacity: 0.7;
	margin: 0 0 0.5em;
}

/* Ausgebuchte Größe: Knopf für die Interessentenliste, gleiche Größe wie die übrigen, nur etwas zurückhaltender. */
.srr-booking__size--full {
	opacity: 0.8;
}

/* Ausgebuchte Größe ohne Interessentenliste: kein Knopf, nur Hinweis. */
.srr-booking .srr-booking__size--soldout,
.srr-booking .srr-booking__size--soldout:hover {
	cursor: default;
	opacity: 0.6;
	border-style: dashed;
	background: transparent;
	color: var(--srr-dark);
}

.srr-booking__form {
	margin-top: 1.25em;
	padding-top: 1em;
	border-top: 1px solid var(--srr-line);
}

.srr-booking .srr-booking__form h4 {
	font-size: 20px;
	line-height: 1.4;
	color: var(--srr-accent);
	margin: 0 0 1em;
}

.srr-booking .srr-booking__field {
	margin: 0 0 1em;
}

.srr-booking__field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.25em;
}

/* 16 px Schrift: darunter zoomt Safari auf dem iPhone beim Antippen in die Seite. */
.srr-booking .srr-booking__field input,
.srr-booking .srr-booking__field select,
.srr-booking .srr-booking__field textarea,
.srr-booking .srr-booking__menu-row input {
	box-sizing: border-box;
	min-height: 42px;
	margin: 0;
	font-size: 16px;
}

.srr-booking .srr-booking__field input,
.srr-booking .srr-booking__field select,
.srr-booking .srr-booking__field textarea {
	width: 100%;
	max-width: 30em;
}

.srr-booking__hint {
	display: block;
	margin-top: 0.25em;
	opacity: 0.8;
}

.srr-booking__menus {
	border: 1px solid var(--srr-line);
	padding: 0.75em 1em;
	margin: 0 0 1em;
	min-width: 0;
}

/* Die Legende bricht auf schmalen Bildschirmen um, statt über den Rahmen zu laufen. */
.srr-booking .srr-booking__menus legend {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	white-space: normal;
	max-width: 100%;
	padding: 0 0.25em;
	margin: 0;
	border: 0;
	width: auto;
}

.srr-booking__menu-row {
	margin: 0.5em 0;
}

.srr-booking .srr-booking__menu-row input {
	width: 4.5em;
}

.srr-booking__menu-sum.is-invalid {
	color: #b32d2e;
	font-weight: 600;
}

.srr-booking__consent {
	margin: 0.75em 0;
}

.srr-booking .srr-booking__consent input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0 0.4em 0 0;
	vertical-align: -4px;
	accent-color: var(--srr-dark);
}

.srr-booking__text summary {
	cursor: pointer;
	font-size: 0.9em;
}

.srr-booking__text-body {
	white-space: pre-line;
	font-size: 0.9em;
	max-height: 15em;
	overflow: auto;
	padding: 0.5em;
	border: 1px solid rgba(0, 0, 0, 0.1);
}

.srr-booking__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75em;
	margin-top: 1em;
}

.srr-booking .srr-booking__submit[disabled] {
	opacity: 0.6;
	cursor: wait;
}

.srr-booking__panel {
	border: 1px solid var(--srr-line);
	padding: 1em 1.25em;
}

.srr-booking__back {
	margin-top: 1em;
}

.srr-booking__notice {
	padding: 0.75em 1em;
	margin-bottom: 1.5em;
	border-left: 4px solid;
}

.srr-booking__notice p {
	margin: 0.25em 0;
}

.srr-booking__notice--success {
	border-color: #00a32a;
	background: #edfaef;
}

.srr-booking__notice--error {
	border-color: #d63638;
	background: #fcf0f1;
}

/* Verstecktes Feld gegen Spam: aus dem sichtbaren Bereich geschoben (nicht display:none, das erkennen manche Bots). */
.srr-booking__trap {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
