/**
 * Lovesgrove Booking – component styles.
 * Uses the theme's design tokens when present (--c-*), with standalone fallbacks
 * so forms still look right under any theme.
 */
.ltb {
	--ltb-navy: var(--c-navy-900, #0b1f3a);
	--ltb-navy-2: var(--c-navy-700, #16335c);
	--ltb-accent: var(--c-amber-500, #f5b700);
	--ltb-accent-2: var(--c-amber-600, #d99f00);
	--ltb-ink: var(--c-ink, #1a1f2b);
	--ltb-muted: var(--c-muted, #5b6475);
	--ltb-surface: var(--c-surface, #f6f5f2);
	--ltb-border: var(--c-border, #e3e1dc);
	--ltb-white: #fff;
	--ltb-success: var(--c-success, #1e7f4f);
	--ltb-error: var(--c-error, #b42318);
	--ltb-info: #1d4ed8;
	--ltb-radius: var(--radius-md, 8px);
	--ltb-radius-lg: var(--radius-lg, 12px);
	--ltb-shadow: var(--shadow-md, 0 1px 2px rgba(11, 31, 58, .06), 0 8px 24px rgba(11, 31, 58, .08));
	--ltb-focus: 0 0 0 3px var(--c-focus, #2563eb);
	color: var(--ltb-ink);
	box-sizing: border-box;
}
.ltb *, .ltb *::before, .ltb *::after { box-sizing: inherit; }

.ltb-sr-only, .ltb-hp {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.ltb-hp { left: -9999px; }

.ltb-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: -0.2em; }

/* ---------- Buttons ---------- */
.ltb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 48px; padding: .75rem 1.25rem; border: 2px solid transparent; border-radius: var(--ltb-radius);
	font: inherit; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.ltb-btn:focus-visible { outline: none; box-shadow: var(--ltb-focus); }
.ltb-btn[disabled] { opacity: .7; cursor: progress; }
.ltb-btn--primary { background: var(--ltb-accent); color: var(--ltb-navy); }
.ltb-btn--primary:hover { background: var(--ltb-accent-2); color: var(--ltb-navy); }
.ltb-btn--secondary { background: transparent; border-color: currentColor; color: var(--ltb-navy); }
.ltb-btn--secondary:hover { background: var(--ltb-navy); border-color: var(--ltb-navy); color: var(--ltb-white); }
.ltb-btn--ghost { background: transparent; color: var(--ltb-navy); border-color: var(--ltb-border); }
.ltb-btn--ghost:hover { border-color: var(--ltb-navy); }
.ltb-btn--danger { background: var(--ltb-error); color: var(--ltb-white); }
.ltb-btn--whatsapp { background: #1b7f4b; color: #fff; }
.ltb-btn--whatsapp:hover { background: #156a3e; color: #fff; }
.ltb-btn--block { width: 100%; }
.ltb-btn--lg { min-height: 56px; padding: 1rem 1.5rem; font-size: 1.0625rem; }

.ltb-spinner {
	width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent;
	border-radius: 50%; animation: ltb-spin .7s linear infinite; display: inline-block;
}
@keyframes ltb-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ltb-spinner { animation-duration: 2s; } }

/* ---------- Fields ---------- */
.ltb-field { display: flex; flex-direction: column; gap: .375rem; margin: 0 0 1rem; min-width: 0; border: 0; padding: 0; }
.ltb-field > label, .ltb-field > legend { font-weight: 600; font-size: .9375rem; color: var(--ltb-navy); padding: 0; }
.ltb-req { color: var(--ltb-error); }
.ltb-optional, .ltb-hint { color: var(--ltb-muted); font-weight: 400; font-size: .875rem; margin: 0; }
.ltb-center { text-align: center; margin-top: 1rem; }

.ltb input[type="text"], .ltb input[type="email"], .ltb input[type="tel"], .ltb input[type="date"],
.ltb input[type="time"], .ltb input[type="number"], .ltb select, .ltb textarea {
	width: 100%; min-height: 48px; padding: .75rem .875rem; font: inherit; font-size: 1rem; /* 16px stops iOS zoom */
	color: var(--ltb-ink); background: var(--ltb-white); border: 1.5px solid #b9bcc4; border-radius: var(--ltb-radius);
	appearance: none; -webkit-appearance: none;
}
.ltb select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235B6475' stroke-width='2' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .875rem center; padding-right: 2.25rem;
}
.ltb textarea { min-height: 96px; resize: vertical; }
.ltb input:focus, .ltb select:focus, .ltb textarea:focus { outline: none; border-color: var(--ltb-navy); box-shadow: var(--ltb-focus); }
.ltb [aria-invalid="true"] { border-color: var(--ltb-error) !important; }
.ltb-error { color: var(--ltb-error); font-size: .875rem; font-weight: 600; margin: 0; }
.ltb-error:empty { display: none; }

.ltb-row { display: grid; gap: 0 1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) {
	.ltb-row { grid-template-columns: 1fr 1fr; }
	.ltb-row--3 { grid-template-columns: repeat(3, 1fr); }
}
.ltb-row[hidden] { display: none; }

.ltb-check { display: flex; gap: .75rem; align-items: flex-start; margin: 0 0 1rem; cursor: pointer; line-height: 1.45; }
.ltb-check input { width: 22px; height: 22px; margin: 1px 0 0; flex: none; accent-color: var(--ltb-navy); }
.ltb-check--card { padding: .875rem 1rem; border: 1.5px solid var(--ltb-border); border-radius: var(--ltb-radius); margin-bottom: .5rem; }
.ltb-check--card:has(input:checked) { border-color: var(--ltb-navy); background: var(--ltb-surface); }
.ltb-check[hidden] { display: none; }
.ltb-payment { margin-top: 1rem; }

/* Place / combobox */
.ltb-combobox { position: relative; }
.ltb-combobox .ltb-field__icon { position: absolute; left: .875rem; top: 50%; transform: translateY(-50%); color: var(--ltb-muted); pointer-events: none; }
.ltb-combobox input { padding-left: 2.75rem !important; }
.ltb-combobox__list {
	position: absolute; z-index: 50; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: .25rem; list-style: none;
	background: var(--ltb-white); border: 1px solid var(--ltb-border); border-radius: var(--ltb-radius); box-shadow: var(--ltb-shadow);
	max-height: 320px; overflow-y: auto;
}
.ltb-combobox__list [role="option"] { display: flex; flex-direction: column; padding: .625rem .75rem; border-radius: 6px; cursor: pointer; min-height: 44px; justify-content: center; }
.ltb-combobox__list [role="option"] span { font-size: .875rem; color: var(--ltb-muted); }
.ltb-combobox__list [role="option"][aria-selected="true"], .ltb-combobox__list [role="option"]:hover { background: var(--ltb-surface); }
.ltb-combobox__empty { padding: .75rem; color: var(--ltb-muted); font-size: .875rem; }
.ltb-field--postcode { margin: .5rem 0 0; }
.ltb-field--postcode label { font-weight: 500; font-size: .8125rem; color: var(--ltb-muted); }
.ltb-field--postcode input { max-width: 12rem; min-height: 40px !important; padding: .5rem .75rem !important; }

.ltb-places { position: relative; }
.ltb-swap {
	position: absolute; right: .5rem; top: calc(50% - 22px); z-index: 2; width: 44px; height: 44px;
	display: grid; place-items: center; border-radius: 50%; border: 1.5px solid var(--ltb-border);
	background: var(--ltb-white); color: var(--ltb-navy); cursor: pointer; transform: rotate(90deg);
}
.ltb-swap:focus-visible { outline: none; box-shadow: var(--ltb-focus); }

.ltb-segmented { display: inline-flex; padding: 4px; margin: 0 0 1.25rem; background: var(--ltb-surface); border-radius: 999px; border: 1px solid var(--ltb-border); }
.ltb-segmented label { position: relative; cursor: pointer; }
.ltb-segmented input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ltb-segmented span { display: block; padding: .5rem 1.125rem; border-radius: 999px; font-weight: 600; min-height: 40px; line-height: 1.6; }
.ltb-segmented input:checked + span { background: var(--ltb-navy); color: var(--ltb-white); }
.ltb-segmented input:focus-visible + span { box-shadow: var(--ltb-focus); }

/* ---------- Booking form ---------- */
.ltb-booking { background: var(--ltb-white); border-radius: var(--ltb-radius-lg); box-shadow: var(--ltb-shadow); padding: clamp(1.25rem, 3vw, 2rem); scroll-margin-top: 96px; }
.ltb-booking__title { margin: 0 0 1rem; }
.ltb-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.ltb-step[hidden] { display: none; }
.ltb-step__title { font-size: 1.375rem; font-weight: 700; color: var(--ltb-navy); margin: 0 0 1.25rem; padding: 0; }
.ltb-step__title:focus { outline: none; }

.ltb-progress { display: flex; gap: .25rem; list-style: none; margin: 0 0 1.5rem; padding: 0; counter-reset: s; }
.ltb-progress li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .375rem; font-size: .8125rem; color: var(--ltb-muted); position: relative; text-align: center; }
.ltb-progress li::before { content: ""; position: absolute; top: 15px; left: -50%; width: 100%; height: 2px; background: var(--ltb-border); z-index: 0; }
.ltb-progress li:first-child::before { display: none; }
.ltb-progress__num { position: relative; z-index: 1; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--ltb-surface); border: 2px solid var(--ltb-border); font-weight: 700; }
.ltb-progress li.is-current { color: var(--ltb-navy); font-weight: 700; }
.ltb-progress li.is-current .ltb-progress__num { background: var(--ltb-accent); border-color: var(--ltb-accent); color: var(--ltb-navy); }
.ltb-progress li.is-done .ltb-progress__num { background: var(--ltb-navy); border-color: var(--ltb-navy); color: var(--ltb-white); }
.ltb-progress li.is-done::before, .ltb-progress li.is-current::before { background: var(--ltb-navy); }
@media (max-width: 479px) { .ltb-progress__label { font-size: .75rem; } }

.ltb-actions { display: flex; gap: .75rem; justify-content: space-between; flex-wrap: wrap; margin-top: 1.5rem; }
.ltb-actions--start { justify-content: flex-start; margin: 0 0 1.5rem; }
.ltb-actions .ltb-btn--primary { flex: 1 1 auto; }
.ltb-actions .ltb-btn--ghost { flex: 0 0 auto; }

.ltb-route { font-weight: 600; color: var(--ltb-navy); margin: 0 0 .75rem; }
.ltb-vehicles { display: grid; gap: .75rem; margin-bottom: 1rem; }
.ltb-vehicle {
	display: grid; grid-template-columns: auto 1fr auto; gap: .875rem; align-items: center; padding: 1rem;
	border: 2px solid var(--ltb-border); border-radius: var(--ltb-radius-lg); cursor: pointer; background: var(--ltb-white);
	transition: border-color .15s, background-color .15s;
}
.ltb-vehicle:hover { border-color: #9aa1ad; }
.ltb-vehicle.is-selected { border-color: var(--ltb-navy); background: #f3f6fb; }
.ltb-vehicle:has(input:focus-visible) { box-shadow: var(--ltb-focus); }
.ltb-vehicle.is-disabled { opacity: .55; cursor: not-allowed; }
.ltb-vehicle input { width: 22px; height: 22px; accent-color: var(--ltb-navy); margin: 0; }
.ltb-vehicle__img { display: none; width: 96px; height: 64px; object-fit: contain; }
@media (min-width: 560px) {
	.ltb-vehicle { grid-template-columns: auto auto 1fr auto; }
	.ltb-vehicle__img { display: block; }
}
.ltb-vehicle__body { display: flex; flex-direction: column; gap: .125rem; min-width: 0; }
.ltb-vehicle__name { color: var(--ltb-navy); font-size: 1.0625rem; }
.ltb-vehicle__model, .ltb-vehicle__cap, .ltb-vehicle__reason { font-size: .8125rem; color: var(--ltb-muted); }
.ltb-vehicle__reason { color: var(--ltb-error); }
.ltb-vehicle__price { font-weight: 800; font-size: 1.25rem; color: var(--ltb-navy); text-align: right; white-space: nowrap; }
.ltb-vehicle__price.is-on-request { font-size: .875rem; font-weight: 700; color: var(--ltb-muted); white-space: normal; max-width: 7rem; }

.ltb-panel { border: 1px solid var(--ltb-border); border-radius: var(--ltb-radius-lg); padding: 1.25rem; margin: 0 0 1rem; background: var(--ltb-surface); }
.ltb-panel[hidden] { display: none; }
.ltb-panel__title { display: flex; align-items: center; gap: .5rem; margin: 0 0 .5rem; font-size: 1.0625rem; color: var(--ltb-navy); }
.ltb-panel--extras > summary { cursor: pointer; font-weight: 700; color: var(--ltb-navy); min-height: 44px; display: flex; align-items: center; }
.ltb-panel--extras[open] > summary { margin-bottom: 1rem; }

.ltb-review .ltb-dl { margin-bottom: 1rem; }
.ltb-total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 1rem 1.25rem; background: var(--ltb-navy); color: var(--ltb-white); border-radius: var(--ltb-radius); margin: 1rem 0 .5rem; }
.ltb-total strong { font-size: 1.5rem; color: var(--ltb-accent); }

/* ---------- Alerts ---------- */
.ltb-alert { padding: .875rem 1rem; border-radius: var(--ltb-radius); border-left: 4px solid; margin: 0 0 1rem; line-height: 1.5; }
.ltb-alert p { margin: 0 0 .5rem; }
.ltb-alert p:last-child { margin: 0; }
.ltb-alert[hidden] { display: none; }
.ltb-alert--info { background: #eff4ff; border-color: var(--ltb-info); }
.ltb-alert--warning { background: #fff8e1; border-color: var(--ltb-accent-2); }
.ltb-alert--success { background: #ecf8f1; border-color: var(--ltb-success); }
.ltb-alert--error { background: #fdecea; border-color: var(--ltb-error); }
.ltb-summary { padding: 1rem; border: 2px solid var(--ltb-error); border-radius: var(--ltb-radius); background: #fdecea; margin: 0 0 1.25rem; }
.ltb-summary:focus { outline: none; box-shadow: var(--ltb-focus); }
.ltb-summary p { margin: 0 0 .5rem; font-weight: 700; }
.ltb-summary ul { margin: 0; padding-left: 1.25rem; }
.ltb-summary a { color: var(--ltb-error); font-weight: 600; }

/* ---------- Quick quote ---------- */
.ltb-quick { background: var(--ltb-white); border-radius: var(--ltb-radius-lg); padding: clamp(1.25rem, 3vw, 1.75rem); box-shadow: var(--ltb-shadow); }
.ltb-quick__title { font-size: 1.25rem; margin: 0 0 1rem; color: var(--ltb-navy); }
.ltb-quick .ltb-field { margin-bottom: .875rem; }

/* ---------- Contact ---------- */
.ltb-contact .ltb-btn--primary { min-width: 12rem; }
.ltb-contact .ltb-alert--success { margin-top: 1rem; }

/* ---------- Cards & grids ---------- */
.ltb-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: 1fr; }
@media (min-width: 640px) { .ltb-grid--2, .ltb-grid--3, .ltb-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ltb-grid--3 { grid-template-columns: repeat(3, 1fr); } .ltb-grid--4 { grid-template-columns: repeat(4, 1fr); } }

.ltb-card { position: relative; background: var(--ltb-white); border: 1px solid var(--ltb-border); border-radius: var(--ltb-radius-lg); padding: 1.5rem; display: flex; flex-direction: column; gap: .5rem; transition: box-shadow .15s, transform .15s; }
.ltb-card:has(.ltb-card__title a):hover { box-shadow: var(--ltb-shadow); }
.ltb-card__title { margin: 0; font-size: 1.1875rem; color: var(--ltb-navy); line-height: 1.3; display: flex; align-items: center; gap: .5rem; }
.ltb-card__title a { color: inherit; text-decoration: none; }
.ltb-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card clickable */
.ltb-card__title a:focus-visible { outline: none; }
.ltb-card:has(.ltb-card__title a:focus-visible) { box-shadow: var(--ltb-focus); }
.ltb-card__text { margin: 0; color: var(--ltb-muted); line-height: 1.6; }
.ltb-card__text p { margin: 0 0 .5rem; }
.ltb-card__meta { margin: 0; color: var(--ltb-muted); font-size: .875rem; display: flex; align-items: center; gap: .375rem; }
.ltb-card__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 12px; background: #fff4cc; color: var(--ltb-navy); margin-bottom: .25rem; }
.ltb-card__icon .ltb-icon { width: 24px; height: 24px; }
.ltb-card__head { display: flex; justify-content: space-between; align-items: center; }
.ltb-card__more { margin-top: auto; padding-top: .5rem; font-weight: 700; color: var(--ltb-navy); display: inline-flex; gap: .375rem; align-items: center; }
.ltb-card__media { margin: -1.5rem -1.5rem .75rem; aspect-ratio: 16 / 10; background: var(--ltb-surface); border-radius: var(--ltb-radius-lg) var(--ltb-radius-lg) 0 0; overflow: hidden; display: grid; place-items: center; }
.ltb-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ltb-card__placeholder .ltb-icon { width: 64px; height: 64px; color: #b9bcc4; }
.ltb-code { font-weight: 800; letter-spacing: .08em; color: var(--ltb-navy); background: var(--ltb-surface); padding: .25rem .5rem; border-radius: 6px; font-size: .875rem; }

.ltb-specs, .ltb-list { list-style: none; margin: .25rem 0 0; padding: 0; display: grid; gap: .375rem; font-size: .9375rem; }
.ltb-specs li { display: flex; gap: .5rem; align-items: center; color: var(--ltb-ink); }
.ltb-list--check li { padding-left: 1.5rem; position: relative; }
.ltb-list--check li::before { content: ""; position: absolute; left: 0; top: .45em; width: .875rem; height: .5rem; border-left: 2px solid var(--ltb-success); border-bottom: 2px solid var(--ltb-success); transform: rotate(-45deg); }

.ltb-card--review blockquote { margin: 0; font-size: 1rem; color: var(--ltb-ink); }
.ltb-stars { display: flex; gap: 2px; margin: 0; color: var(--ltb-accent); }
.ltb-stars .ltb-icon { fill: currentColor; width: 18px; height: 18px; }

.ltb-faq { display: grid; gap: .75rem; }
.ltb-faq__item { border: 1px solid var(--ltb-border); border-radius: var(--ltb-radius-lg); background: var(--ltb-white); }
.ltb-faq__q { list-style: none; cursor: pointer; padding: 1.125rem 1.25rem; font-weight: 700; color: var(--ltb-navy); display: flex; justify-content: space-between; gap: 1rem; align-items: center; min-height: 56px; }
.ltb-faq__q::-webkit-details-marker { display: none; }
.ltb-faq__q:focus-visible { outline: none; box-shadow: var(--ltb-focus); border-radius: var(--ltb-radius-lg); }
.ltb-faq__chevron { transition: transform .2s; }
.ltb-faq__item[open] .ltb-faq__chevron { transform: rotate(180deg); }
.ltb-faq__a { padding: 0 1.25rem 1.25rem; color: var(--ltb-muted); line-height: 1.65; }
.ltb-faq__a p:last-child { margin-bottom: 0; }

.ltb-areas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ltb-areas__item { display: inline-flex; align-items: center; gap: .375rem; padding: .5rem .875rem; border-radius: 999px; background: var(--ltb-white); border: 1px solid var(--ltb-border); font-weight: 600; }
.ltb-areas__item a { color: var(--ltb-navy); }
.ltb-areas__item .ltb-icon { color: var(--ltb-accent-2); width: 1rem; height: 1rem; }

.ltb-info { list-style: none; margin: 0; padding: 0; display: grid; gap: .875rem; }
.ltb-info li { display: flex; gap: .75rem; align-items: flex-start; }
.ltb-info li > .ltb-icon { color: var(--ltb-accent-2); margin-top: .15em; }
.ltb-info a { color: inherit; font-weight: 600; text-decoration: none; }
.ltb-info a:hover { text-decoration: underline; }
.ltb-info address { font-style: normal; }
.ltb-info__label { display: none; }
.ltb-info__hours { display: flex; justify-content: space-between; gap: 1rem; min-width: 14rem; }
.ltb-info__social { gap: 1rem; flex-wrap: wrap; }
.ltb-info--inline { display: flex; flex-wrap: wrap; gap: 1rem 2rem; }
.ltb-placeholder { color: var(--ltb-error); font-style: italic; font-size: .875rem; }
.ltb-admin-hint { padding: 1rem; border: 2px dashed var(--ltb-accent-2); border-radius: var(--ltb-radius); color: var(--ltb-muted); }

.ltb-cta-group { display: flex; flex-wrap: wrap; gap: .75rem; }
.ltb-cta-group--dark .ltb-btn--secondary { color: var(--ltb-white); }
.ltb-cta-group--dark .ltb-btn--secondary:hover { background: var(--ltb-white); color: var(--ltb-navy); border-color: var(--ltb-white); }

/* ---------- Booking view ---------- */
.ltb-view { display: grid; gap: 1rem; max-width: 760px; }
.ltb-view__header { text-align: left; }
.ltb-view__icon { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--ltb-success); color: #fff; margin-bottom: .75rem; }
.ltb-view__icon .ltb-icon { width: 28px; height: 28px; }
.ltb-view__title { margin: 0 0 .5rem; color: var(--ltb-navy); }
.ltb-view__ref { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: 1.0625rem; }
.ltb-view__ref strong { font-size: 1.25rem; letter-spacing: .04em; color: var(--ltb-navy); }
.ltb-view__help { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.ltb-badge { display: inline-block; padding: .25rem .625rem; border-radius: 999px; font-size: .8125rem; font-weight: 700; background: var(--ltb-surface); color: var(--ltb-navy); }
.ltb-badge--confirmed, .ltb-badge--completed, .ltb-badge--assigned { background: #ecf8f1; color: var(--ltb-success); }
.ltb-badge--pending { background: #fff8e1; color: #7a5a00; }
.ltb-badge--cancelled, .ltb-badge--rejected { background: #fdecea; color: var(--ltb-error); }
.ltb-muted { color: var(--ltb-muted); font-weight: 500; font-size: .9em; }
.ltb-dl { display: grid; grid-template-columns: minmax(7rem, 35%) 1fr; gap: .5rem 1rem; margin: 0; }
.ltb-dl dt { color: var(--ltb-muted); }
.ltb-dl dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.ltb-cancel > summary { cursor: pointer; font-weight: 700; color: var(--ltb-error); min-height: 44px; display: flex; align-items: center; }

/* ---------- Location selector (Google Places) ---------- */
.ltb-place__control { position: relative; }
.ltb-place__icon { position: absolute; left: .875rem; top: 50%; transform: translateY(-50%); color: var(--ltb-muted); pointer-events: none; }
.ltb-place__control input { padding-left: 2.75rem !important; padding-right: 5rem !important; }
.ltb-place.is-selected .ltb-place__icon { color: var(--ltb-success); }
.ltb-place__status { position: absolute; right: 3rem; top: 50%; transform: translateY(-50%); display: flex; color: var(--ltb-success); }
.ltb-place__clear { position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: transparent; color: var(--ltb-muted); cursor: pointer; border-radius: 50%; }
.ltb-place__clear:hover { color: var(--ltb-navy); background: var(--ltb-surface); }
.ltb-place__clear:focus-visible { outline: none; box-shadow: var(--ltb-focus); }
.ltb-place__list {
	position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: .25rem; list-style: none;
	background: var(--ltb-white); border: 1px solid var(--ltb-border); border-radius: var(--ltb-radius-lg); box-shadow: var(--ltb-shadow);
	max-height: min(360px, 60vh); overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.ltb-place__option { display: flex; gap: .75rem; align-items: center; padding: .75rem; min-height: 52px; border-radius: var(--ltb-radius); cursor: pointer; touch-action: manipulation; }
.ltb-place__option[aria-selected="true"], .ltb-place__option:hover { background: var(--ltb-surface); }
.ltb-place__opt-icon { flex: none; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #fff4cc; color: var(--ltb-navy); }
.ltb-place__opt-text { display: flex; flex-direction: column; min-width: 0; }
.ltb-place__opt-text strong { color: var(--ltb-navy); font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ltb-place__opt-text span { font-size: .8125rem; color: var(--ltb-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ltb-place__msg { padding: .875rem; color: var(--ltb-muted); font-size: .9375rem; }
.ltb-place__msg.is-error { color: var(--ltb-error); }
.ltb-place__postcode { margin: .5rem 0 0; }
.ltb-place__postcode input { max-width: 12rem; }
.ltb-journey { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: .875rem 1rem; margin: 0 0 1rem; background: #f3f6fb; border-radius: var(--ltb-radius); border-left: 4px solid var(--ltb-navy); }
.ltb-journey[hidden] { display: none; }
.ltb-journey__item { display: flex; flex-direction: column; }
.ltb-journey__item span { font-size: .8125rem; color: var(--ltb-muted); }
.ltb-journey__item strong { color: var(--ltb-navy); }
