/**
 * Dialogshift / Chat vs. Mercure-Sticky-UI (Header ~100+, Sticky-Booking-Bar).
 *
 * Problem: Third-Party-Chat sitzt oft mit sehr hohem z-index unten rechts und überdeckt
 * die fixe `.mobile-bar` (Buchen), weil diese innerhalb eines niedrigen Stacking-Contexts liegt.
 * Lösung: Bar bei Sichtbarkeit auf eine höhere Ebene heben + Launcher nach oben schieben.
 *
 * Wichtig: `.mc-zimmer-detail .mobile-bar { z-index: 118 }` usw. haben höhere Spezifität als
 * `.mobile-bar.is-visible` ohne Kontext — ohne !important gewinnt weiterhin 118 und der Chat
 * bleibt optisch über „BUCHEN“.
 */

/* v0.3.6: Mobile-Drawer offen → Chat-Launcher komplett ausblenden.
 * Vorher überlagerte das Dialogshift-Bubble den Drawer-Content unten rechts
 * (z.B. den KONTAKT-Link im Meta-Block). Da der Drawer fullscreen ist, kann
 * der Chat nicht bedient werden — also weg. */
body.mc-menu-open iframe[src*="dialogshift" i],
body.mc-menu-open iframe[src*="assets.dialogshift.com" i],
body.mc-menu-open iframe[src*="pro1504" i],
body.mc-menu-open [id*="dialogshift" i]:not([id*="inline" i]),
body.mc-menu-open [class*="dialogshift" i][style*="fixed"],
body.mc-menu-open [class*="dialogshift" i][style*="position"] {
	display: none !important;
}

/* Sticky Booking Bar über typische Chat-Launcher (Dialogshift, Intercom-ähnlich)
 * Selektoren erfassen sowohl die Legacy-Bar (.mobile-bar) als auch die neue
 * universelle Variante (.mc-sticky-bar) — Aufruf bleibt identisch waehrend
 * der Cleanup-Phase (siehe assets/css/sticky-bar.css). */
.mobile-bar.is-visible,
.mc-sticky-bar.is-visible,
.mc-zimmer-detail .mobile-bar.is-visible,
.mc-zimmer-overview .mobile-bar.is-visible {
	z-index: 2147483647 !important;
}

.mc-mobile-bar {
	z-index: 2147483647 !important;
}

/*
 * Dialogshift-Launcher explizit unter die Buchungsleiste legen (gleicher Viewport-Stack wie Bar).
 */
body:has(.mobile-bar.is-visible) iframe[src*="dialogshift" i],
body:has(.mobile-bar.is-visible) iframe[src*="assets.dialogshift.com" i],
body:has(.mobile-bar.is-visible) iframe[src*="pro1504" i],
body:has(.mc-sticky-bar.is-visible) iframe[src*="dialogshift" i],
body:has(.mc-sticky-bar.is-visible) iframe[src*="assets.dialogshift.com" i],
body:has(.mc-sticky-bar.is-visible) iframe[src*="pro1504" i],
body:has(.mc-mobile-bar) iframe[src*="dialogshift" i],
body:has(.mc-mobile-bar) iframe[src*="assets.dialogshift.com" i],
body:has(.mc-mobile-bar) iframe[src*="pro1504" i] {
	z-index: 2147483640 !important;
}

body:has(.mobile-bar.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mobile-bar.is-visible) [class*="dialogshift" i][style*="fixed"],
body:has(.mc-sticky-bar.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mc-sticky-bar.is-visible) [class*="dialogshift" i][style*="fixed"],
body:has(.mc-mobile-bar) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mc-mobile-bar) [class*="dialogshift" i][style*="fixed"] {
	z-index: 2147483640 !important;
}

/* Dialogshift: Launcher unten rechts — wenn Buchungsleiste aktiv ist, klar oberhalb der Bar */
body:has(.mobile-bar.is-visible) iframe[src*="dialogshift" i],
body:has(.mobile-bar.is-visible) iframe[src*="assets.dialogshift.com" i],
body:has(.mobile-bar.is-visible) iframe[src*="pro1504" i],
body:has(.mobile-bar.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mobile-bar.is-visible) [class*="dialogshift" i][style*="fixed"],
body:has(.mobile-bar.is-visible) [class*="dialogshift" i][style*="position"],
body:has(.mc-sticky-bar.is-visible) iframe[src*="dialogshift" i],
body:has(.mc-sticky-bar.is-visible) iframe[src*="assets.dialogshift.com" i],
body:has(.mc-sticky-bar.is-visible) iframe[src*="pro1504" i],
body:has(.mc-sticky-bar.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mc-sticky-bar.is-visible) [class*="dialogshift" i][style*="fixed"],
body:has(.mc-sticky-bar.is-visible) [class*="dialogshift" i][style*="position"] {
	bottom: calc(170px + env(safe-area-inset-bottom, 0px)) !important;
	right: max(12px, env(safe-area-inset-right, 0px)) !important;
}

body:has(.mc-mobile-bar) iframe[src*="dialogshift" i],
body:has(.mc-mobile-bar) iframe[src*="assets.dialogshift.com" i],
body:has(.mc-mobile-bar) iframe[src*="pro1504" i],
body:has(.mc-mobile-bar) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mc-mobile-bar) [class*="dialogshift" i][style*="fixed"] {
	bottom: calc(210px + env(safe-area-inset-bottom, 0px)) !important;
	right: max(12px, env(safe-area-inset-right, 0px)) !important;
}

/*
 * Zimmer-Übersicht: Die breite Sticky-Bar sitzt unten über die ganze Seite.
 * Hier muss der Chat bedienbar über der Bar bleiben, statt von ihr verdeckt
 * zu werden. Deshalb nur für diese Seite die Bar unter den Chat legen.
 */
body:has(.mc-zimmer-overview .mb-bar-zo-overview.is-visible) .mc-zimmer-overview .mb-bar-zo-overview.is-visible,
body:has(.mc-zimmer-overview .mc-sticky-bar--overview.is-visible) .mc-zimmer-overview .mc-sticky-bar--overview.is-visible,
body:has(.mc-sticky-bar--overview.is-visible) .mc-sticky-bar--overview.is-visible {
	z-index: 2147483600 !important;
}

body:has(.mc-zimmer-overview .mb-bar-zo-overview.is-visible) iframe[src*="dialogshift" i],
body:has(.mc-zimmer-overview .mb-bar-zo-overview.is-visible) iframe[src*="assets.dialogshift.com" i],
body:has(.mc-zimmer-overview .mb-bar-zo-overview.is-visible) iframe[src*="pro1504" i],
body:has(.mc-zimmer-overview .mb-bar-zo-overview.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mc-zimmer-overview .mb-bar-zo-overview.is-visible) [class*="dialogshift" i][style*="fixed"],
body:has(.mc-zimmer-overview .mb-bar-zo-overview.is-visible) [class*="dialogshift" i][style*="position"],
body:has(.mc-sticky-bar--overview.is-visible) iframe[src*="dialogshift" i],
body:has(.mc-sticky-bar--overview.is-visible) iframe[src*="assets.dialogshift.com" i],
body:has(.mc-sticky-bar--overview.is-visible) iframe[src*="pro1504" i],
body:has(.mc-sticky-bar--overview.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mc-sticky-bar--overview.is-visible) [class*="dialogshift" i][style*="fixed"],
body:has(.mc-sticky-bar--overview.is-visible) [class*="dialogshift" i][style*="position"] {
	z-index: 2147483647 !important;
	bottom: calc(120px + env(safe-area-inset-bottom, 0px)) !important;
	right: max(16px, env(safe-area-inset-right, 0px)) !important;
}

@media (max-width: 520px) {
	body:has(.mobile-bar.is-visible) iframe[src*="dialogshift" i],
	body:has(.mobile-bar.is-visible) iframe[src*="assets.dialogshift.com" i],
	body:has(.mobile-bar.is-visible) iframe[src*="pro1504" i],
	body:has(.mobile-bar.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
	body:has(.mobile-bar.is-visible) [class*="dialogshift" i][style*="fixed"],
	body:has(.mc-sticky-bar.is-visible) iframe[src*="dialogshift" i],
	body:has(.mc-sticky-bar.is-visible) iframe[src*="assets.dialogshift.com" i],
	body:has(.mc-sticky-bar.is-visible) iframe[src*="pro1504" i],
	body:has(.mc-sticky-bar.is-visible) [id*="dialogshift" i]:not([id*="inline" i]),
	body:has(.mc-sticky-bar.is-visible) [class*="dialogshift" i][style*="fixed"] {
		bottom: calc(160px + env(safe-area-inset-bottom, 0px)) !important;
	}
}

@media (max-width: 480px) {
	iframe[src*="dialogshift" i],
	iframe[title*="chat" i] {
		max-width: 100vw;
	}
}

/* v0.6: Buchungs-Panel offen → Chat-Launcher KOMPLETT ausblenden.
 * Sonst überlappt das Dialogshift-Bubble unten rechts das geöffnete
 * "Verfügbarkeit prüfen"-Formular (z. B. die GÄSTE-&-ZIMMER-Zeile).
 * Greift für das mobile Bottom-Sheet (#bookingBar.is-mobile-open) UND
 * für das Overlay (.mc-booking-backdrop.is-visible). Schließt das Panel,
 * verschwindet die Bedingung → Chat erscheint automatisch wieder. */
body:has(#bookingBar.is-mobile-open) .ds-widget,
body:has(.mc-booking-backdrop.is-visible) .ds-widget,
body:has(#bookingBar.is-mobile-open) [class*="dialogshift" i],
body:has(.mc-booking-backdrop.is-visible) [class*="dialogshift" i],
body:has(#bookingBar.is-mobile-open) iframe[src*="dialogshift" i],
body:has(.mc-booking-backdrop.is-visible) iframe[src*="dialogshift" i],
body:has(#bookingBar.is-mobile-open) [id*="dialogshift" i]:not([id*="inline" i]),
body:has(.mc-booking-backdrop.is-visible) [id*="dialogshift" i]:not([id*="inline" i]) {
	display: none !important;
}
