.discovery { display: grid; grid-template-columns: 290px minmax(0, 1fr); border: 1px solid var(--line); background: #fff; }
.discovery button { font-family: var(--font-sans); }
.discovery__sidebar { display: flex; flex-direction: column; min-width: 0; border-inline-end: 1px solid var(--line); }
.discovery__hotel { display: flex; align-items: center; gap: .875rem; padding: 1.25rem; width: 100%; text-align: start; background: var(--c-ink); color: #fff; }
.discovery__hotel > .icon { margin-inline-start: auto; width: 1rem; }
.discovery__hotel-mark { display: grid; place-items: center; flex: 0 0 2.5rem; height: 2.5rem; border: 1px solid var(--c-gold-light); border-radius: 50%; }
.discovery__hotel-mark img { width: auto; height: 1.5rem; }
.discovery__hotel strong { display: block; font-size: .875rem; font-weight: 500; }
.discovery__hotel small { display: block; margin-top: .25rem; font-size: .625rem; opacity: .75; }
.discovery__places { list-style: none; padding: .375rem 0; margin: 0; }
.discovery__place { display: flex; align-items: center; width: 100%; gap: .75rem; min-height: 3.625rem; padding: .625rem 1.125rem; border-bottom: 1px solid var(--line-soft); text-align: start; color: var(--c-ink); background: #fff; transition: background-color 180ms ease; }
.discovery__places li:last-child .discovery__place { border-bottom: 0; }
.discovery__place:hover, .discovery__place.is-active { background: var(--c-gold-tint); }
.discovery__place strong { display: block; font-size: .75rem; font-weight: 500; line-height: 1.4; }
.discovery__place small { display: block; margin-top: .125rem; color: var(--fg-muted); font-size: .625rem; line-height: 1.4; }
.discovery__place > .icon { margin-inline-start: auto; width: .875rem; opacity: .45; }
.discovery__number { display: grid; place-items: center; flex: 0 0 1.75rem; height: 1.75rem; border-radius: 50%; background: #776a56; color: #fff; font-size: .6875rem; font-weight: 600; }
.discovery__number--mosque { background: #233c55; }
.discovery__number--bazaar { background: #9a743b; }
.discovery__number--synagogue { background: #766077; }
.discovery__hotel-directions { justify-content: center; padding: 1.125rem; margin-top: auto; border-top: 1px solid var(--line); font-size: .6875rem; }
.discovery__map-wrap { position: relative; min-width: 0; min-height: 590px; isolation: isolate; background: #f3eee4; }
.discovery__canvas { position: absolute; inset: 0; width: 100%; height: 100%; background: #f3eee4; font-family: var(--font-sans); z-index: 0; }
.discovery .leaflet-tile-pane { filter: saturate(.65) sepia(.18); }
.discovery__toolbar { position: absolute; inset: 1rem 1rem auto; z-index: 500; display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; pointer-events: none; }
.discovery__badge { padding: .75rem 1rem; background: var(--c-ink); color: #fff; font-size: .625rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; box-shadow: 0 3px 12px #0000000d; }
.discovery__reset { display: flex; align-items: center; gap: .375rem; min-height: 2.375rem; padding: .5rem .75rem; border: 1px solid #d9d3c9; background: #fff; font-size: .625rem; color: var(--c-ink); pointer-events: auto; }
.discovery__reset .icon { width: 1rem; height: 1rem; }
.discovery__hint { position: absolute; bottom: 1.75rem; inset-inline-start: 1rem; z-index: 400; display: flex; align-items: center; gap: .375rem; max-width: calc(100% - 5rem); padding: .5rem .625rem; background: #ffffffed; color: #5f5a50; font-size: .625rem; line-height: 1.5; pointer-events: none; }
.discovery__hint .icon { width: .875rem; height: .875rem; }
.discovery__status { position: absolute; top: 45%; inset-inline: 2rem; z-index: 400; padding: 1rem; text-align: center; background: #fff; font-size: .75rem; color: var(--c-ink); }
.discovery__status[hidden] { display: none; }
.discovery__noscript { position: absolute; inset-inline: 1rem; top: 50%; z-index: 600; background: #fff; padding: 1rem; text-align: center; }
.discovery-pin { border: 0; background: transparent; }
.discovery-pin__caption { position: absolute; width: 112px; padding: 3px 5px; transform: translateX(-50%); border: 1px solid #ddd5c7; border-radius: 3px; background: #fffffff2; color: #343632; text-align: center; box-shadow: 0 1px 4px #0000000a; pointer-events: none; }
.discovery-pin__caption strong { display: block; font: 500 10px/1.3 var(--font-sans); }
.discovery-pin__caption small { display: block; margin-top: 1px; color: #776548; font: 600 9px/1.3 var(--font-sans); }
.discovery-pin__leader { position: absolute; left: 17px; top: 17px; height: 1px; background: #9a8763b3; transform-origin: left center; z-index: -1; pointer-events: none; }
.discovery-pin > span { display: grid; place-items: center; width: 100%; height: 100%; border: 3px solid #fff; border-radius: 50%; background: #776a56; box-shadow: 0 2px 6px #00000026; color: #fff; font: 600 13px/1 var(--font-sans); transition: transform 180ms ease, box-shadow 180ms ease; }
.discovery-pin--mosque > span { background: #233c55; }
.discovery-pin--bazaar > span { background: #9a743b; }
.discovery-pin--synagogue > span { background: #766077; }
.discovery-pin--hotel > span { border: 3px solid #b7a080; background: #242929; box-shadow: 0 0 0 7px #a98b5b26, 0 2px 8px #0003; }
.discovery-pin--hotel img { display: block; width: auto; height: 26px; }
.discovery-pin:hover > span, .discovery-pin.is-active > span { transform: scale(1.12); box-shadow: 0 0 0 4px #86755633, 0 2px 8px #0003; }
.discovery .leaflet-tooltip.discovery-hotel-label { padding: .25rem .625rem; border: 0; border-radius: 2rem; background: #242929; color: #fff; box-shadow: none; font: 600 .625rem/1.5 var(--font-sans); text-transform: uppercase; }
.discovery .leaflet-tooltip.discovery-hotel-label::before { display: none; }
.discovery .leaflet-control-zoom { border: 1px solid #d9d3c9; border-radius: 0; box-shadow: 0 2px 8px #0000000d; }
.discovery .leaflet-control-zoom a { width: 34px; height: 34px; line-height: 34px; color: #343632; font-weight: 400; }
.discovery .leaflet-control-attribution { padding-inline: .375rem; font: 10px/1.7 var(--font-sans); background: #ffffffed; }
.discovery .leaflet-control-attribution a { color: #5f5a50; }
.discovery .leaflet-popup-content-wrapper { border-radius: 0; box-shadow: 0 6px 26px #0002; }
.discovery .leaflet-popup-content { margin: 1rem 1.125rem; }
.discovery-popup__category { margin: 0 0 .375rem; color: #867556; font: 500 .625rem/1.4 var(--font-sans); }
.discovery-popup h3 { margin: 0; color: #292c28; font: 500 1rem/1.4 var(--font-sans); }
.discovery-popup__walk { margin: .5rem 0 0; color: #625b4e; font: 400 .6875rem/1.5 var(--font-sans); }
.discovery-popup a { display: inline-block; margin-top: .875rem; color: #6e6046; font: 500 .6875rem/1.5 var(--font-sans); text-decoration: underline; text-underline-offset: 3px; }
.discovery button:focus-visible, .discovery-pin:focus-visible { outline: 2px solid var(--c-gold-deep); outline-offset: -3px; }
.discovery--map-only { grid-template-columns: minmax(0, 1fr); }
.discovery--map-only .discovery__map-wrap { min-height: 480px; }
.discovery--map-only .discovery-pin__caption { width: 96px; padding: 3px; }
.discovery--map-only .discovery-pin__caption strong { font-size: 9px; }
@media (max-width: 899px) {
  .discovery { grid-template-columns: minmax(0, 1fr); }
  .discovery__map-wrap { grid-row: 1; min-height: 490px; }
  .discovery__sidebar { border-inline-end: 0; border-top: 1px solid var(--line); }
  .discovery__places { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .discovery__places li:nth-child(odd) { border-inline-end: 1px solid var(--line-soft); }
  .discovery__places li:last-child .discovery__place { border-bottom: 1px solid var(--line-soft); }
  .discovery__place { height: 100%; padding: .75rem; }
  .discovery__place > .icon { display: none; }
}
@media (max-width: 499px) {
  .discovery--map-only .discovery__map-wrap { min-height: 450px; }
  .discovery-pin__caption { width: 96px; padding: 3px; }
  .discovery-pin__caption strong { font-size: 9px; }
  .discovery__map-wrap { min-height: 450px; }
  .discovery__toolbar { inset: .625rem .625rem auto; }
  .discovery__badge { padding: .625rem .75rem; font-size: .5625rem; }
  .discovery__reset { min-height: 2rem; padding: .375rem .5rem; font-size: .5625rem; }
  .discovery__reset .icon { display: none; }
  .discovery__place { gap: .5rem; }
  .discovery__place strong { font-size: .6875rem; }
  .discovery__number { flex-basis: 1.5rem; height: 1.5rem; }
  .discovery__hint { inset-inline-start: .625rem; font-size: .5625rem; }
}
@media (prefers-reduced-motion: reduce) { .discovery-pin > span, .discovery__place { transition: none; } }
