/* Clearer Journey map navigation: place names + scene counts, then scene narrative context. */
.journey-v2 .jv2-map .place-label{
  font-size:12px;
  font-weight:700;
  paint-order:stroke;
  stroke:rgba(255,255,255,.92);
  stroke-width:4px;
  stroke-linejoin:round;
}

.journey-v2 .jv2-map .place-group:hover .place-label,
.journey-v2 .jv2-map .place-group:focus .place-label{
  fill:var(--blue-dark);
}

.journey-v2 .jv2-local-map .event-number{
  display:none;
}

.journey-v2 .jv2-local-map .event-dot{
  r:7px;
}

.journey-v2 .jv2-local-map .event-group:hover .event-ring,
.journey-v2 .jv2-local-map .event-group:focus .event-ring{
  opacity:.65;
}

.journey-v2 .jv2-map-scene-popover{
  position:absolute;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  z-index:5;
  width:min(420px,calc(100% - 28px));
  padding:11px 14px 12px;
  border:1px solid rgba(207,216,220,.95);
  border-radius:var(--radius-control);
  background:rgba(255,255,255,.96);
  box-shadow:var(--shadow-popover);
  pointer-events:none;
}

.journey-v2 .jv2-map-scene-popover[data-position="pin"]{
  bottom:auto;
  transform:none;
  width:min(250px,calc(100% - 24px));
}

.journey-v2 .jv2-map-scene-popover[hidden]{display:none}
.journey-v2 .jv2-map-scene-sequence{
  font-size:0.75rem;
  line-height:1.3;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
}
.journey-v2 .jv2-map-scene-title{
  margin-top:3px;
  font-size:0.875rem;
  line-height:1.3;
  font-weight:700;
  color:var(--ink);
}
.journey-v2 .jv2-map-scene-reference{
  margin-top:2px;
  font-size:0.75rem;
  line-height:1.35;
  color:var(--muted-light);
}

.journey-v2 .jv2-scene-narrative{
  display:block;
  margin-bottom:5px;
  font-size:0.75rem;
  line-height:1.3;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.055em;
  color:var(--muted-light);
}

.journey-v2 .jv2-place-map-head strong{
  display:inline-flex;
  align-items:center;
  gap:5px;
}

@media (max-width:620px){
  /* The 760-unit SVG is rendered at roughly half-size on phones. Compensate
     in SVG units so top-level place names remain around 12px on screen. */
  .journey-v2 .jv2-map:not(.jv2-local-map) .place-label{
    font-size:26px;
    stroke-width:6px;
  }
  .journey-v2 .jv2-map:not(.jv2-local-map) [data-map-place="jordan"] .place-label{
    font-size:22px;
  }
  /* Local town/city maps use the same phone-readable label scale as the Holy Land map. */
  .journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-map .place-label,
  .journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-map .jv2-selected-scene-label text{
    font-size:26px;
    stroke-width:6px;
  }
  .journey-v2 .jv2-map-scene-popover{bottom:12px;padding:9px 11px 10px}
  .journey-v2 .jv2-map-scene-title{font-size:0.8125rem}
}

/* Local artwork already carries its place names. Use semantic SVG locations for
   interaction while keeping the painted labels clean; selected/hovered locations
   still receive a clear focus ring. */
.journey-v2 .jv2-local-map .jv2-local-location .place-hit{r:10px}
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location-label{display:inline;font-size:12px;font-weight:700}
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location .place-dot{opacity:1}
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location .place-ring{opacity:0}
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location:hover .place-dot,
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location:focus .place-dot,
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location.selected .place-dot{opacity:1}
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location:hover .place-ring,
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location:focus .place-ring,
.journey-v2 .jv2-map-wrap[data-map-art] .jv2-local-location.selected .place-ring{opacity:.72}


/* A location popup contains the scenes associated with that marker. */
.journey-v2 .jv2-map-location-popover{
  width:min(300px,calc(100% - 24px));
  padding:12px;
  pointer-events:auto;
}
.journey-v2 .jv2-map-location-popover[data-position="bottom"]{
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  width:min(420px,calc(100% - 24px));
}
.journey-v2 .jv2-map-location-popover[data-position="pin"]{
  width:min(300px,calc(100% - 24px));
}
.journey-v2 .jv2-map-location-name{
  font-size:0.8125rem;
  line-height:1.3;
  font-weight:700;
  color:var(--ink);
}
.journey-v2 .jv2-map-location-scenes{
  display:grid;
  gap:7px;
  margin-top:9px;
  max-height:240px;
  overflow:auto;
}
.journey-v2 .jv2-location-scene-card{
  display:flex;
  flex-direction:column;
  gap:2px;
  width:100%;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:8px 9px;
  text-align:left;
  cursor:pointer;
  border-color:var(--line);
  background:var(--paper-raised);
  color:var(--ink);
  box-shadow:none;
}
.journey-v2 .jv2-location-scene-card:hover,
.journey-v2 .jv2-location-scene-card:focus-visible{
  border-color:var(--blue-border);
  background:var(--blue-soft);
}
.journey-v2 .jv2-location-scene-card:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:1px;
  outline-color:var(--blue);
}
.journey-v2 .jv2-location-scene-title{
  font-size:0.8125rem;
  line-height:1.3;
  font-weight:700;
}
.journey-v2 .jv2-location-scene-reference{
  font-size:0.75rem;
  line-height:1.3;
  color:var(--muted-light);
}
.journey-v2 .jv2-location-scene-card .jv2-passage-length-note{
  margin-top:4px;
}


.journey-v2 .jv2-location-scene-card.selected{
  border-color:var(--blue);
  background:var(--blue-soft);
  box-shadow:none;
}

/* Linked locations use a compact route icon, not a long decorative arrow. */
.journey-v2 .jv2-map .jv2-hierarchy-place .place-ring,
.journey-v2 .jv2-map .jv2-hierarchy-place .place-dot{display:none}
.journey-v2 .jv2-map .jv2-hierarchy-place .place-hit{r:25px;fill:transparent;cursor:pointer}
.journey-v2 .jv2-map .jv2-hierarchy-route-icon{
  fill:none;
  stroke:var(--blue-dark);
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.96;
  pointer-events:none;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.95));
}
.journey-v2 .jv2-map .jv2-hierarchy-place .place-label{
  fill:var(--blue-dark);
  font-weight:700;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.journey-v2 .jv2-map .jv2-hierarchy-place:hover .jv2-hierarchy-route-icon,
.journey-v2 .jv2-map .jv2-hierarchy-place:focus .jv2-hierarchy-route-icon,
.journey-v2 .jv2-map .jv2-hierarchy-place.selected .jv2-hierarchy-route-icon{
  stroke:var(--blue);
  opacity:1;
}
.journey-v2 .jv2-map .jv2-hierarchy-place:hover .place-label,
.journey-v2 .jv2-map .jv2-hierarchy-place:focus .place-label,
.journey-v2 .jv2-map .jv2-hierarchy-place.selected .place-label{fill:var(--blue-dark)}
.journey-v2 .jv2-map .place-group:hover .place-label,
.journey-v2 .jv2-map .place-group:focus .place-label,
.journey-v2 .jv2-map .jv2-hierarchy-place .place-label{
  fill:var(--blue-dark);
}
.journey-v2 .jv2-map .jv2-hierarchy-place .jv2-hierarchy-route-icon{
  stroke:var(--blue-dark);
}
.journey-v2 .jv2-map-location-popover,
.journey-v2 .jv2-map-scene-popover{
  border-color:var(--line);
  box-shadow:var(--shadow-popover);
  border-radius:var(--radius-card);
  background:var(--paper-glass);
}
.journey-v2 .jv2-location-scene-card .jv2-scene-status-available.jv2-scene-status-optional{
  border-color:var(--blue-border);
  background:var(--blue-soft);
  color:var(--blue-dark);
}
.journey-v2 .jv2-location-scene-card .jv2-scene-status-available.jv2-scene-status-optional .jv2-scene-status-symbol{
  color:var(--blue-dark);
}
.jv2-map-guide-popover{
  color:var(--muted);
  box-shadow:var(--shadow-popover);
  font-family:var(--font-ui);
  border-color:var(--gold-border);
  background:var(--gold-soft);
}
.jv2-map-guide-popover-copy strong{
  color:var(--ink-strong);
  font-weight:700;
}
