/* Uses the existing inquiry palette and type; shared with the planner dialog. */
.ems-booking {
	--ems-booking-ink: var(--ems-ink, #17171a);
	--ems-booking-muted: var(--ems-ink-soft, #67676f);
	--ems-booking-accent: var(--ems-accent, #d52d70);
	--ems-booking-line: var(--ems-line, #e5e1e4);
	margin: 28px 0 0;
	padding-top: 25px;
	border-top: 1px solid var(--ems-booking-line);
	color: var(--ems-booking-ink);
	font-family: inherit;
	font-size: 14px;
	line-height: 1.5;
	color-scheme: light;
}
.ems-booking *, .ems-booking *::before, .ems-booking *::after { box-sizing: border-box; }
.ems-booking [hidden] { display: none !important; }
.ems-booking__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.ems-booking h3 { margin: 0 !important; color: var(--ems-booking-ink) !important; font: inherit; font-size: 19px; font-weight: 750; line-height: 1.3; }
.ems-booking__optional { color: var(--ems-booking-muted); font-size: 11px; white-space: nowrap; }
.ems-booking .ems-booking__intro { margin: 10px 0 16px !important; color: var(--ems-booking-muted) !important; font-size: 13px; line-height: 1.5; }
.ems-booking fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.ems-booking label { color: var(--ems-booking-ink) !important; }
.ems-booking .ems-booking__service {
	display: grid !important;
	grid-template-columns: 20px minmax(0, 1fr) minmax(94px, auto);
	align-items: start;
	gap: 8px 11px !important;
	margin: 0 !important;
	padding: 16px 4px;
	border-bottom: 1px solid var(--ems-booking-line);
	font-size: 13px;
	font-weight: 400;
	cursor: pointer;
}
.ems-booking__service.is-selected { border-bottom-color: var(--ems-booking-accent); }
.ems-booking__service.is-pending { background: #f6f5f6; }
.ems-booking[data-service-state='saving'] .ems-booking__service { cursor: wait; }
.ems-booking .ems-booking__service-status { margin: 10px 0 !important; color: var(--ems-booking-muted) !important; font-size: 12px; line-height: 1.5; }
.ems-booking__service-status:empty { display: none; }
.ems-booking .ems-booking__service-status[data-kind='error'] { color: #8a2850 !important; }
.ems-booking__current-total { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin: 14px 0 8px; font-size: 13px; }
.ems-booking__current-total strong { font-size: 16px; font-variant-numeric: tabular-nums; }
.ems-booking input[type='radio'], .ems-booking input[type='checkbox'] { width: 18px !important; height: 18px !important; min-height: 18px !important; margin: 2px 0 0 !important; padding: 0 !important; flex: none; accent-color: var(--ems-booking-accent); }
.ems-booking__service-copy, .ems-booking__service-pricing { display: grid; gap: 4px; min-width: 0; }
.ems-booking__service-copy > strong { font-size: 14px; font-weight: 750; line-height: 1.35; }
.ems-booking__service-copy > span { color: var(--ems-booking-muted); font-size: 12px; font-weight: 400; line-height: 1.45; }
.ems-booking__service-pricing { max-width: 170px; text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ems-booking__service-pricing > strong { font-size: 14px; font-weight: 750; }
.ems-booking__service-pricing > span { max-width: 145px; color: var(--ems-booking-muted); font-size: 11px; font-weight: 400; }
.ems-booking__service-detail { grid-column: 2 / -1; color: var(--ems-booking-muted); font-size: 12px; font-weight: 400; line-height: 1.45; overflow-wrap: anywhere; }
.ems-booking .ems-booking__undecided, .ems-booking .ems-booking__toggle { display: grid !important; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 11px !important; margin: 0 !important; padding: 14px 4px; font-size: 13px; font-weight: 600; cursor: pointer; }
.ems-booking .ems-booking__caption { margin: 6px 0 14px !important; color: var(--ems-booking-muted) !important; font-size: 11px; font-weight: 400; line-height: 1.5; }
.ems-booking__estimate { padding: 0 0 10px; }
.ems-booking__postcode { display: grid !important; gap: 7px; max-width: 270px; margin: 0 0 6px !important; font-size: 12px; font-weight: 600; }
.ems-booking__disclosure { border-top: 1px solid var(--ems-booking-line); }
.ems-booking__disclosure summary { display: list-item; margin: 0; padding: 16px 3px; color: var(--ems-booking-ink); font-size: 13px; font-weight: 750; cursor: pointer; }
.ems-booking__disclosure summary::marker { color: var(--ems-booking-accent); }
.ems-booking__disclosure-body { padding: 0 3px 16px; }
.ems-booking__site-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.ems-booking__site-grid label { display: grid; min-width: 0; align-content: start; gap: 7px; margin: 0; font-size: 12px; font-weight: 600; }
.ems-booking__wide { grid-column: 1 / -1; }
.ems-booking input[type='text'], .ems-booking select, .ems-booking textarea { width: 100%; min-width: 0; max-width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid #ccc6ca; border-radius: 9px; background: #fff; color: var(--ems-booking-ink); font: inherit; font-size: 14px; line-height: 1.4; }
.ems-booking textarea { min-height: 78px !important; resize: vertical; }
.ems-booking .ems-booking__feedback { margin: 0 0 8px !important; color: #8a2850 !important; font-size: 12px; line-height: 1.5; }
.ems-booking__feedback:empty { display: none; }
.ems-booking .ems-booking__hints { margin: 10px 0 0; padding: 0 0 0 18px; color: var(--ems-booking-muted); font-size: 12px; line-height: 1.5; }
.ems-booking__hints:empty, .ems-booking__guides:empty, .ems-booking__suggestions:empty { display: none; }
.ems-booking__hints li + li { margin-top: 7px; }
.ems-booking__guides, .ems-booking__suggestions { display: grid; gap: 8px; margin-top: 12px; }
.ems-booking__guides a, .ems-booking__suggestions a { width: fit-content; color: var(--ems-booking-ink) !important; font-size: 12px; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.ems-booking__suggestions p { margin: 0 !important; color: var(--ems-booking-muted); font-size: 12px; }
.ems-booking__footer { display: grid; justify-items: start; gap: 9px; margin-top: 14px; }
.ems-booking .ems-booking__refresh { min-height: 42px; margin: 0; padding: 9px 14px; border: 1px solid #cfc8cd; border-radius: 9px; background: #f6f5f6; box-shadow: none; color: var(--ems-booking-ink); font: inherit; font-size: 12px; font-weight: 700; line-height: 1.4; cursor: pointer; transition: transform 160ms ease, opacity 160ms ease; }
.ems-booking__refresh:active { transform: scale(0.98); }
.ems-booking__refresh:disabled { opacity: .65; cursor: wait; }
.ems-booking .ems-booking__status { min-height: 18px; margin: 0 !important; color: var(--ems-booking-muted) !important; font-size: 11px; line-height: 1.5; }
.ems-booking[data-state='loading'] [data-ems-booking-price] { display: inline-block; min-height: 20px; border-radius: 4px; background: #f0edf0; color: transparent; }
.ems-booking input:focus-visible, .ems-booking select:focus-visible, .ems-booking textarea:focus-visible, .ems-booking button:focus-visible, .ems-booking summary:focus-visible, .ems-booking a:focus-visible { outline: 2px solid var(--ems-booking-accent) !important; outline-offset: 3px !important; }
.ems-booking .ems-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
@media (max-width: 480px) {
	.ems-booking .ems-booking__service { grid-template-columns: 20px minmax(0, 1fr); }
	.ems-booking__service-pricing { grid-column: 2; max-width: none; justify-items: start; text-align: left; }
	.ems-booking__service-pricing > span { max-width: none; }
	.ems-booking__heading { align-items: start; }
	.ems-booking h3 { font-size: 18px; }
	.ems-booking__site-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .ems-booking * { transition: none !important; } }
