/* Casa Gelsomino – Schnellbuchung im Titelbild: Datumsfelder + Kalender-Popup. */
.cg-quickbook__field--date { cursor: pointer; position: relative; }
.cg-quickbook__field--date::after {
	content: ""; position: absolute; right: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; opacity: .55; pointer-events: none;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231C2B36' stroke-width='1.6'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E");
}
.cg-quickbook__field--date .cg-quickbook__date { cursor: pointer; padding-right: 26px; text-overflow: ellipsis; caret-color: transparent; }
.cg-quickbook__field--date .cg-quickbook__date::placeholder { color: var(--cg-muted, #5E6B74); opacity: .8; font-weight: 400; }
.cg-quickbook__field--date:hover { border-color: var(--cg-stone, #B9AC9A); }
.cg-quickbook__field--date.is-active { border-color: var(--cg-lake, #1F4E6B); box-shadow: inset 0 0 0 1px var(--cg-lake, #1F4E6B); }

.cg-qb-pop {
	position: absolute; z-index: 150; background: #fff; color: var(--b-ink); border-radius: calc(var(--b-r) + 4px);
	box-shadow: 0 30px 70px -20px rgba(12, 22, 30, .55), 0 0 0 1px rgba(28, 43, 54, .08);
	padding: 18px 22px 18px; font-family: var(--cg-sans, system-ui, sans-serif); max-width: calc(100vw - 24px);
}
.cg-qb-pop[hidden], .cg-qb-backdrop[hidden] { display: none !important; }
.cg-qb-pop__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.cg-qb-pop__title { font-family: var(--cg-serif, Georgia, serif); font-size: 1.35rem; font-weight: 600; color: var(--b-ink); }
.cg-qb-pop__close { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--b-line); background: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--b-ink); display: grid; place-items: center; padding: 0 0 2px; }
.cg-qb-pop__close:hover { border-color: var(--b-lake); color: var(--b-lake); }
.cg-qb-pop__sel { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 14px; }
.cg-qb-pop__chip { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; border: 1px solid var(--b-line); border-radius: var(--b-r); background: #fff; padding: 8px 12px; font: inherit; color: var(--b-ink); cursor: pointer; min-width: 0; }
.cg-qb-pop__chip small { font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--b-muted); }
.cg-qb-pop__chip span { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.cg-qb-pop__chip.is-active { border-color: var(--b-lake); box-shadow: inset 0 0 0 1px var(--b-lake); }
.cg-qb-pop .cg-cal__status { margin-bottom: 12px; padding: 10px 14px; font-size: .9rem; }
.cg-qb-pop .cg-cal__foot { margin-top: 10px; padding-top: 10px; }
.cg-qb-pop__foot { display: flex; justify-content: flex-end; margin-top: 12px; }
.cg-qb-pop__done:disabled { opacity: .45; cursor: default; }
.cg-qb-pop:focus-visible { outline: none; }

/* Mobil: Bottom-Sheet über die volle Breite */
.cg-qb-backdrop { position: fixed; inset: 0; z-index: 140; background: rgba(12, 22, 30, .5); }
.cg-qb-pop.is-sheet {
	position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-width: none; max-height: 92vh; max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain;
	border-radius: 16px 16px 0 0; padding: 14px 16px calc(16px + env(safe-area-inset-bottom));
	animation: cg-qb-up .22s ease-out;
}
.cg-qb-pop.is-sheet::before { content: ""; display: block; width: 44px; height: 4px; border-radius: 2px; background: var(--b-line); margin: 0 auto 12px; }
.cg-qb-pop.is-sheet .cg-qb-pop__foot .cg-btn { width: 100%; }
html.cg-qb-lock, html.cg-qb-lock body { overflow: hidden; }
@keyframes cg-qb-up { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .cg-qb-pop.is-sheet { animation: none; } }
