/* Camping Booking — Gastmanager embed + Kontakt card */

.camping-booking {
	max-width: 1100px;
	margin: 2rem auto 0;
}

.camping-booking-tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	margin-bottom: 1.5rem;
}

.camping-booking-tab {
	padding: 0.7rem 1.6rem;
	border: 2px solid var(--cl-color-primary, #2b6c3d);
	border-radius: 50px;
	color: var(--cl-color-primary, #2b6c3d);
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.camping-booking-tab:hover,
.camping-booking-tab:focus-visible {
	background: rgba(43, 108, 61, 0.08);
}

.camping-booking-tab.is-active {
	background: var(--cl-color-primary, #2b6c3d);
	color: #fff;
}

.camping-booking-frame {
	display: block;
	width: 100%;
	min-height: 400px;
	border: 0;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05);
}

.camping-booking-fallback {
	padding: 2.5rem 2rem;
	border-radius: 16px;
	background: var(--cl-color-light, #f4f7f0);
	text-align: center;
}

.camping-booking-fallback[hidden] {
	display: none;
}

.camping-booking-fallback p {
	max-width: 560px;
	margin: 0 auto 1.5rem;
	line-height: 1.7;
}

.camping-booking-fallback-button {
	display: inline-block;
	padding: 0.9rem 2.2rem;
	border-radius: 50px;
	background: var(--cl-color-primary, #2b6c3d);
	color: #fff;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.camping-booking-fallback-button:hover,
.camping-booking-fallback-button:focus-visible {
	background: #1e4d2b;
	color: #fff;
	transform: translateY(-2px);
}

.camping-booking-fallback .camping-booking-fallback-hint {
	margin: 1.5rem auto 0;
	font-size: 0.9rem;
	color: var(--cl-color-muted, #8a9a80);
}

.camping-booking-help {
	margin-top: 1rem;
	text-align: center;
	font-size: 0.88rem;
	color: var(--cl-color-muted, #8a9a80);
}

/* Gastmanager's fixed price/submit bar at the bottom of the page */
.gastmanager-overlay {
	font-family: 'DM Sans', sans-serif;
}

.gastmanager-overlay .gastmanager-action {
	background: var(--cl-color-primary, #2b6c3d);
	color: #fff;
	border: none;
	border-radius: 50px;
	padding: 0.7rem 1.8rem;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 600;
	cursor: pointer;
}

.gastmanager-overlay .gastmanager-action:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* embed.js marks <body> right away and embed.css reserves room for the fixed
   price bar even while that bar is hidden (no price yet, or portal inactive),
   which left an empty white strip below the footer. Keep the room only while
   the bar is shown. html raises specificity: embed.css is loaded after us. */
html body.with-gastmanager-overlay {
	padding-bottom: 0;
}

html body.with-gastmanager-overlay:has(> .gastmanager-overlay[style*="block"]) {
	padding-bottom: 57px;
}

@media screen and (max-width: 430px) {
	html body.with-gastmanager-overlay:has(> .gastmanager-overlay[style*="block"]) {
		padding-bottom: 105px;
	}
}

/* Kontakt card */
.camping-booking-card p {
	line-height: 1.7;
}

.camping-booking-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin: 1.5rem 0;
}

.camping-form .camping-booking-card-actions .form-submit {
	display: inline-block;
	text-align: center;
	text-decoration: none;
}

.camping-form .camping-booking-card-actions .form-submit.is-outline {
	background: transparent;
	color: var(--cl-color-primary, #2b6c3d);
	box-shadow: inset 0 0 0 2px currentColor;
}

.camping-form .camping-booking-card-actions .form-submit.is-outline:hover {
	background: rgba(43, 108, 61, 0.08);
}

.camping-booking-card-hint {
	font-size: 0.9rem;
	color: var(--cl-color-muted, #8a9a80);
	margin: 0;
}

@media (max-width: 600px) {
	.camping-booking-tab {
		flex: 1 1 100%;
		text-align: center;
	}

	.camping-form .camping-booking-card-actions .form-submit {
		width: 100%;
	}
}

/* Kontakt: booking section inside the "So erreichen Sie uns" box */
.contact-info-booking {
	margin-top: 1.6rem;
	padding-top: 1.6rem;
	border-top: 1px solid rgba(43, 108, 61, 0.15);
}

.contact-info-booking-list {
	list-style: none;
	margin: 0 0 1.4rem;
	padding: 0;
	font-size: 0.95rem;
	color: #3d4a36;
	line-height: 1.5;
}

.contact-info-booking-list li {
	position: relative;
	padding-left: 1.6rem;
	margin-bottom: 0.55rem;
}

.contact-info-booking-list li::before {
	content: '\2713';
	position: absolute;
	left: 0;
	color: var(--color-lime, #9abe29);
	font-weight: 700;
}

.contact-info-booking-text {
	margin: 0 0 1.4rem;
	font-size: 0.95rem;
	color: #3d4a36;
	line-height: 1.6;
}

.contact-info-booking-actions {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
}

.contact-info-booking-button {
	display: block;
	padding: 0.85rem 1.6rem;
	border-radius: 50px;
	background: var(--color-forest, #2b6c3d);
	color: #fff;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	text-align: center;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.contact-info-booking-button:hover,
.contact-info-booking-button:focus-visible {
	background: #1e4d2b;
	color: #fff;
	transform: translateY(-2px);
}

.contact-info-booking-button.is-outline {
	background: transparent;
	color: var(--color-forest, #2b6c3d);
	box-shadow: inset 0 0 0 2px currentColor;
}

.contact-info-booking-button.is-outline:hover,
.contact-info-booking-button.is-outline:focus-visible {
	background: rgba(43, 108, 61, 0.08);
	color: var(--color-forest, #2b6c3d);
}
