/* Local Guide mobile scroll ownership fix, scoped only to Local Guide. */
html.lb-local-guide-open,
html.lb-local-guide-open body {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: pan-x pan-y pinch-zoom !important;
}

html.lb-local-guide-open body {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
}

html body .nearby-concierge-backdrop:not([hidden]) {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: none !important;
  align-items: center !important;
  justify-content: center !important;
}

html body .nearby-concierge-backdrop:not([hidden]) .nearby-concierge-panel {
  height: calc(100vh - max(32px, env(safe-area-inset-top)) - max(32px, env(safe-area-inset-bottom))) !important;
  height: calc(100dvh - max(32px, env(safe-area-inset-top)) - max(32px, env(safe-area-inset-bottom))) !important;
  max-height: calc(100vh - max(32px, env(safe-area-inset-top)) - max(32px, env(safe-area-inset-bottom))) !important;
  max-height: calc(100dvh - max(32px, env(safe-area-inset-top)) - max(32px, env(safe-area-inset-bottom))) !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  min-height: 0 !important;
  touch-action: auto !important;
}

html body .nearby-concierge-header {
  flex: 0 0 auto !important;
}

html body .nearby-concierge-tabs {
  flex: 0 0 auto !important;
}

html body .nearby-concierge-content {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  height: auto !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
  touch-action: pan-y !important;
  scroll-behavior: auto !important;
}

html body .nearby-concierge-content .local-guide-detail,
html body .nearby-concierge-content .local-guide-intro,
html body .nearby-concierge-content .local-guide-group {
  max-width: 100% !important;
}

html body .nearby-concierge-content .local-guide-detail {
  overflow: visible !important;
}

html body .nearby-concierge-header {
  position: relative !important;
}

html body .nearby-concierge-header .local-guide-header-action-rail {
  flex: 0 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 10px !important;
  position: relative !important;
  z-index: 2 !important;
}

html body .nearby-concierge-header .nearby-concierge-close,
html body .nearby-concierge-header .local-guide-header-back {
  flex: 0 0 auto !important;
  margin: 0 !important;
  align-self: auto !important;
  position: static !important;
  z-index: 2 !important;
}

html body .nearby-concierge-content .local-guide-back:not(.local-guide-header-back) {
  position: static !important;
}

html body .nearby-concierge-panel .local-guide-search {
  flex: 0 0 auto !important;
  position: relative !important;
  z-index: 1 !important;
}

html body .nearby-concierge-panel .local-guide-search-input,
html body .nearby-concierge-panel .local-guide-search-button {
  touch-action: manipulation !important;
}

/* Local Guide search sits directly under the header; no legacy tabs/spacer band. */
html body .nearby-concierge-panel .nearby-concierge-tabs {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

html body .nearby-concierge-panel .local-guide-search {
  border-top: 0 !important;
}


/* Local Guide London Baby luxury aesthetic pass, scoped only to the Local Guide module. */
html body .nearby-concierge-panel {
  background: rgba(248, 250, 252, 0.92) !important;
  border: 1px solid rgba(201, 159, 62, 0.58) !important;
}

html body .nearby-concierge-header {
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.94)) !important;
  color: #070d1c !important;
  border-bottom: 1px solid rgba(201, 159, 62, 0.46) !important;
}

html body .nearby-concierge-header .eyebrow,
html body .local-guide-search-label,
html body .local-guide-group h3,
html body .local-guide-detail-kicker {
  color: #a77d1f !important;
  -webkit-text-fill-color: #a77d1f !important;
}

html body .nearby-concierge-header h2,
html body .local-guide-intro h3,
html body .local-guide-group > p,
html body .local-guide-card-title,
html body .local-guide-detail-copy h3,
html body .local-guide-section h4,
html body .local-guide-fun-fact h4,
html body .local-guide-shortcuts h4 {
  color: #070d1c !important;
  -webkit-text-fill-color: #070d1c !important;
}

html body .nearby-concierge-close {
  background: rgba(255,255,255,0.96) !important;
  color: #070d1c !important;
  -webkit-text-fill-color: #070d1c !important;
  border: 1px solid rgba(201, 159, 62, 0.46) !important;
  box-shadow: 0 10px 26px rgba(15,23,42,.10) !important;
}

html body .local-guide-header-back {
  background: linear-gradient(180deg, #d6ad45, #b98516) !important;
  color: #070d1c !important;
  -webkit-text-fill-color: #070d1c !important;
  box-shadow: 0 10px 24px rgba(127, 88, 12, .24) !important;
}

html body .local-guide-search {
  background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(248,250,252,0.9)) !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(201, 159, 62, 0.40) !important;
}

html body .local-guide-search-row {
  border: 1px solid rgba(201, 159, 62, 0.52) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.72), 0 10px 24px rgba(15,23,42,.07) !important;
}

html body .local-guide-search-icon {
  color: #070d1c !important;
  -webkit-text-fill-color: #070d1c !important;
}

html body .local-guide-search-button {
  background: linear-gradient(180deg, #d8b353, #b98516) !important;
  color: #070d1c !important;
  -webkit-text-fill-color: #070d1c !important;
  box-shadow: 0 8px 18px rgba(127, 88, 12, .24) !important;
}

html body .local-guide-intro {
  position: relative !important;
  border: 1px solid rgba(201, 159, 62, 0.22) !important;
}

html body .local-guide-intro::before {
  content: "" !important;
  position: absolute !important;
  left: 18px !important;
  top: 18px !important;
  bottom: 18px !important;
  width: 3px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #d8b353, #b98516) !important;
}

html body .local-guide-intro h3,
html body .local-guide-intro p {
  margin-left: 18px !important;
}

html body .local-guide-group {
  border: 1px solid rgba(201, 159, 62, 0.22) !important;
}

html body .local-guide-card-explore {
  color: #a77d1f !important;
  -webkit-text-fill-color: #a77d1f !important;
  letter-spacing: .12em !important;
}

html body .local-guide-card {
  background: rgba(255,255,255,0.76) !important;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.06), 0 6px 18px rgba(15,23,42,.04) !important;
}

html body .local-guide-card:hover,
html body .local-guide-card:focus-visible {
  box-shadow: inset 0 0 0 1px rgba(201, 159, 62, 0.45), 0 10px 24px rgba(15,23,42,.08) !important;
}

/* Defensive release: main app must remain scrollable when Local Guide is closed. */
html:not(.lb-local-guide-open),
html:not(.lb-local-guide-open) body {
  overflow-y: auto !important;
  touch-action: pan-x pan-y pinch-zoom !important;
}
