/* --- Stundenhotel: Violett-Verlauf (Sedcard/Club) --- */

html:has(body.sh-page-stundenhotel-reservierung) {
	background-color: #0b0922;
}

/* Body + Divi-Wrapper: Theme/Builder setzt oft weiss — !important + breitere Selektoren */
html body.sh-page-stundenhotel-reservierung {
	overflow-x: hidden;
	background-color: #0b0922 !important;
	background-image:
		radial-gradient(120% 95% at 8% 0%, rgba(32, 92, 220, 0.38) 0%, rgba(32, 92, 220, 0) 52%),
		radial-gradient(100% 90% at 92% 5%, rgba(182, 60, 219, 0.35) 0%, rgba(182, 60, 219, 0) 56%),
		linear-gradient(180deg, #090719 0%, #090a24 38%, #0a0822 100%) !important;
	background-repeat: no-repeat, no-repeat, no-repeat !important;
	background-size: cover, cover, cover !important;
	background-attachment: scroll, scroll, scroll !important;
	min-height: 100vh;
}

body.sh-page-stundenhotel-reservierung #page-container,
body.sh-page-stundenhotel-reservierung #et-boc {
	background-color: transparent !important;
}

/* Hauptinhalt: voller Verlauf (fuellt weisse Luecken zwischen Header, Modul und Footer) */
body.sh-page-stundenhotel-reservierung #et-main-area,
body.sh-page-stundenhotel-reservierung #main-content,
body.sh-page-stundenhotel-reservierung #left-area,
body.sh-page-stundenhotel-reservierung #content-area {
	background-color: #0b0922 !important;
	background-image:
		radial-gradient(120% 95% at 8% 0%, rgba(32, 92, 220, 0.38) 0%, rgba(32, 92, 220, 0) 52%),
		radial-gradient(100% 90% at 92% 5%, rgba(182, 60, 219, 0.35) 0%, rgba(182, 60, 219, 0) 56%),
		linear-gradient(180deg, #090719 0%, #090a24 38%, #0a0822 100%) !important;
	background-repeat: no-repeat, no-repeat, no-repeat !important;
	background-size: cover, cover, cover !important;
}

body.sh-page-stundenhotel-reservierung .container,
body.sh-page-stundenhotel-reservierung .et_pb_post,
body.sh-page-stundenhotel-reservierung article.type-page,
body.sh-page-stundenhotel-reservierung .entry-content,
body.sh-page-stundenhotel-reservierung .et_builder_inner_content,
body.sh-page-stundenhotel-reservierung .et-l--body,
body.sh-page-stundenhotel-reservierung #et-main-area .et_pb_section,
body.sh-page-stundenhotel-reservierung #et-main-area .et_pb_row,
body.sh-page-stundenhotel-reservierung #et-main-area .et_pb_column,
body.sh-page-stundenhotel-reservierung #et-main-area .et_pb_column_inner {
	background-color: transparent !important;
}

/* Divi: weisse Sektions-Padding-Streifen um das Modul weg */
body.sh-page-stundenhotel-reservierung #et-main-area .et_pb_section:has(.sh-reservation-page-atmos),
body.sh-page-stundenhotel-reservierung #et-main-area .et_pb_row:has(.sh-reservation-page-atmos) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

body.sh-page-stundenhotel-reservierung #et-main-area .et_pb_section:has(.sh-reservation-page-atmos) .et_pb_row {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Gleiches ohne Body-Klasse (nur wenn Modul im Main vorkommt) */
#et-main-area .et_pb_section:has(.sh-reservation-page-atmos),
#et-main-area .et_pb_row:has(.sh-reservation-page-atmos) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

#et-main-area .et_pb_section:has(.sh-reservation-page-atmos) .et_pb_row {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Buchungs-Shortcode: Full-Bleed horizontal; vertikal mit leichtem Negativ-Margin gegen Divi-Abstaende */
.sh-reservation-page-atmos {
	box-sizing: border-box;
	width: 100vw;
	max-width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	margin-top: -2.5rem;
	margin-bottom: -2.5rem;
	padding: clamp(2.75rem, 5vw, 4rem) max(1rem, env(safe-area-inset-left, 0px)) clamp(3rem, 5.5vw, 4.5rem) max(1rem, env(safe-area-inset-right, 0px));
	background-color: #0b0922;
	background-image:
		radial-gradient(120% 95% at 8% 0%, rgba(32, 92, 220, 0.38) 0%, rgba(32, 92, 220, 0) 52%),
		radial-gradient(100% 90% at 92% 5%, rgba(182, 60, 219, 0.35) 0%, rgba(182, 60, 219, 0) 56%),
		linear-gradient(180deg, #090719 0%, #090a24 38%, #0a0822 100%);
	background-repeat: no-repeat;
	background-size: cover;
}

/* Mit Body-Klasse: Modul-Verlauf in den Main-Flaechen-Verlauf einbetten (weniger doppelte Muster) */
body.sh-page-stundenhotel-reservierung .sh-reservation-page-atmos {
	background-color: transparent;
	background-image: none;
	margin-top: -3rem;
	margin-bottom: -3rem;
	padding-top: clamp(3.25rem, 5.5vw, 4.5rem);
	padding-bottom: clamp(3.5rem, 6vw, 5rem);
}

.sh-reservation-form-wrapper {
	max-width: 860px;
	margin: 2rem auto;
	padding: 0 1rem;
}

.sh-reservation-form {
	background: linear-gradient(180deg, #f4eef8 0%, #fcfaff 100%);
	border: 1px solid rgba(92, 60, 140, 0.2);
	border-radius: 14px;
	box-shadow: 0 12px 38px rgba(0, 0, 0, 0.22);
	padding: clamp(1rem, 3vw, 2rem);
}

.sh-reservation-form h3 {
	margin: 0 0 1rem;
	font-size: clamp(1.2rem, 3vw, 1.6rem);
}

.sh-reservation-form p {
	margin: 0 0 0.85rem;
}

.sh-reservation-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.sh-reservation-form input,
.sh-reservation-form select {
	width: 100%;
	max-width: 100%;
	height: 42px;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgba(53, 32, 88, 0.2);
	border-radius: 8px;
	background: #fff;
	box-sizing: border-box;
}

.sh-datetime-wrap {
	display: block;
	width: 100%;
	max-width: 100%;
	position: relative;
}

.sh-datetime-wrap input[type="datetime-local"] {
	width: 100%;
	max-width: 100%;
	min-height: 44px;
	cursor: pointer;
}

.sh-belegungsplan-row {
	margin: -0.25rem 0 1rem;
}

.sh-belegungsplan-link {
	font-weight: 600;
	color: #6f3df0;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.sh-belegungsplan-link:hover {
	color: #5d30d3;
}

.sh-reservation-form button {
	background: #6f3df0;
	color: #fff;
	border: 0;
	border-radius: 8px;
	padding: 0.65rem 1.1rem;
	cursor: pointer;
	font-weight: 700;
}

.sh-reservation-form button:hover {
	background: #5d30d3;
}

.sh-booking-summary {
	margin: 1rem 0;
	padding: 0.75rem;
	border-radius: 8px;
	background: rgba(111, 61, 240, 0.08);
	border: 1px solid rgba(111, 61, 240, 0.2);
}

.sh-availability {
	margin: 0.2rem 0 1rem;
	font-weight: 600;
}

.sh-availability.is-available {
	color: #1d6b3a;
}

.sh-availability.is-unavailable {
	color: #9b1c1c;
}

.sh-msg-success,
.sh-msg-error {
	padding: 0.7rem 0.85rem;
	border-radius: 8px;
	font-weight: 600;
}

.sh-msg-success {
	background: #e8f7ed;
	color: #1d6b3a;
	border: 1px solid #bee8cb;
}

.sh-msg-error {
	background: #fdecec;
	color: #9b1c1c;
	border: 1px solid #f6c8c8;
}

.sh-post-submit-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

.sh-post-submit-actions .button {
	display: inline-block;
	text-decoration: none;
	padding: 0.65rem 1.1rem;
	border-radius: 8px;
	font-weight: 700;
}

.sh-post-submit-actions .sh-btn-primary {
	background: #6f3df0;
	color: #fff;
	border: 0;
}

.sh-post-submit-actions .sh-btn-secondary {
	background: #fff;
	color: #4b2d7a;
	border: 1px solid rgba(75, 45, 122, 0.35);
}

.sh-fieldset {
	border: 1px solid rgba(53, 32, 88, 0.15);
	border-radius: 10px;
	padding: 0.85rem 1rem 0.5rem;
	margin: 0 0 1rem;
	background: rgba(255, 255, 255, 0.55);
}

.sh-fieldset legend {
	font-weight: 700;
	padding: 0 0.35rem;
}

.sh-radio-line {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin-bottom: 0.55rem;
	font-weight: 500;
}

.sh-radio-line input[type="radio"] {
	width: auto;
	height: auto;
	margin-top: 0.2rem;
	flex-shrink: 0;
}

.sh-club-girl-wrap {
	margin-bottom: 0.25rem;
}

.sh-club-girl-wrap--muted select {
	opacity: 0.72;
}

.sh-muted {
	font-size: 0.88rem;
	color: rgba(53, 32, 88, 0.75);
	line-height: 1.45;
}
