/* VikingsBrand — Viking World Map (parchment Leaflet, no tiles). vb- namespaced. */
/* the live theme does not set a global border-box — without this, width:100% + padding
   overflows the card and clips text at the right edge */
.vb-map-wrap, .vb-map-wrap *, .vb-map-wrap *::before, .vb-map-wrap *::after { box-sizing: border-box; }
.vb-map-wrap { --vb-accent:#8E2B22; --vb-ink:#1C1A17; --vb-bone:#EDE4CE; --vb-parch:#F6F1E7;
  --vb-line:#D8CBB6; --vb-muted:#8a7c66; --vb-body:#4a4034;
  --vb-sea:#d9cdb2; --vb-land:#f1e9d6; --vb-coast:#a8926a;
  --vb-c-homeland:#1C1A17; --vb-c-raid:#8E2B22; --vb-c-trade:#B8860B; --vb-c-settlement:#4A6741;
  max-width: 1100px; margin: 0 auto; padding: 8px 20px 56px;
  font-family: var(--font-body-family, inherit); color: var(--vb-body); }

.vb-map-head { text-align:center; max-width: 64ch; margin: 0 auto 20px; }
.vb-map-head h1, .vb-map-head h2 { font-family: var(--font-heading-family, inherit); color: var(--vb-ink);
  font-size: clamp(26px,3vw,40px); line-height:1.12; margin:0 0 10px; }
.vb-map-head p { font-size:16px; line-height:1.6; margin:0; }

/* ---- filters ---- */
.vb-map-filters { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin: 0 0 14px; }
.vb-map-filters button { font-size:12px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;
  padding:8px 16px; border-radius:999px; border:1px solid var(--vb-line); background:#fff; color:var(--vb-body); }
.vb-map-filters button[aria-pressed="true"] { background:var(--vb-ink); color:var(--vb-bone); border-color:var(--vb-ink); }
.vb-map-filters button .dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:0; }
.vb-map-filters button .pin { display:inline-block; width:14px; height:18px; margin-right:7px; vertical-align:-4px;
  filter: drop-shadow(0 1px 1px rgba(28,26,23,.25)); }
.vb-map-filters button .pin--route { width:18px; }
.vb-map-filters button[aria-pressed="false"] .pin { opacity:.45; filter:grayscale(.6); }
.vb-map-progress { text-align:center; font-size:13px; color:var(--vb-muted); margin: 0 0 10px; letter-spacing:.06em; }
.vb-map-progress strong { color: var(--vb-accent); }

/* ---- guided journeys bar ---- */
.vb-map-journeybar { text-align:center; margin: 4px 0 16px; }
.vb-map-journeyhd { display:block; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--vb-muted); font-weight:700; margin-bottom:8px; }
.vb-map-journeys { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.vb-map-journeys button { font-size:12.5px; cursor:pointer; padding:8px 15px; border-radius:999px;
  border:1px solid var(--jc, var(--vb-accent)); background:var(--vb-parch); color:var(--jc, var(--vb-accent)); font-weight:600; }
.vb-map-journeys button:hover { background:#f3ece0; }
.vb-map-journeys button[aria-pressed="true"] { background:var(--jc, var(--vb-accent)); color:#fff; }
.vb-map-journeys button .jdot { display:inline-block; width:9px; height:9px; border-radius:50%;
  background:var(--jc, var(--vb-accent)); margin-right:7px; vertical-align:0; }
.vb-map-journeys button[aria-pressed="true"] .jdot { background:#fff; }
.vb-map-journeys button .jshort { display:none; }

/* ---- bare embed page (iframe target, layout none) ----
   compact single-row strips at every width so a 640px iframe fits without scrolling */
body.vb-embed { margin:0; background:#faf6ec; }
.vb-embed .vb-map-wrap { padding:8px 10px 0; }
.vb-embed #vb-map { height: calc(100vh - 232px); min-height:300px; }
.vb-embed .vb-map-filters, .vb-embed .vb-map-journeys { flex-wrap:nowrap; overflow-x:auto;
  justify-content:flex-start; padding:2px 2px 6px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.vb-embed .vb-map-filters::-webkit-scrollbar, .vb-embed .vb-map-journeys::-webkit-scrollbar { display:none; }
.vb-embed .vb-map-filters button, .vb-embed .vb-map-journeys button { flex:0 0 auto; white-space:nowrap;
  padding:7px 12px; font-size:11.5px; }
.vb-embed .vb-map-journeys button .jfull { display:none; }
.vb-embed .vb-map-journeys button .jshort { display:inline; }
.vb-embed .vb-map-filters { margin-bottom:4px; }
.vb-embed .vb-map-journeybar { margin:0 0 6px; }
.vb-embed .vb-map-erabar { margin-bottom:4px; max-width:none; display:flex; align-items:center; gap:10px; }
.vb-embed .vb-map-eralabel { margin:0; white-space:nowrap; font-size:12px; }
.vb-embed .vb-map-erabar input[type=range] { flex:1; }
.vb-embed .vb-map-erarow { flex:1; }
.vb-embed .vb-map-eraplay { width:28px; height:28px; font-size:10px; }
.vb-embed .vb-map-eraends { display:none; }
.vb-embed .vb-map-toolsrow { margin:0 0 6px; max-width:none; }
.vb-embed .vb-map-measurebtn { padding:6px 13px; font-size:11px; }
/* swipe affordance: strips fade out at the right edge when content overflows */
.vb-embed .vb-map-filters, .vb-embed .vb-map-journeys {
  -webkit-mask-image: linear-gradient(90deg, #000 93%, transparent);
  mask-image: linear-gradient(90deg, #000 93%, transparent); }
.vb-embed .vb-map-rose { width:64px; height:64px; right:12px; top:12px; }
/* embed card: compact single-column sheet — the short iframe can't afford the 3-col desktop grid */
.vb-embed .vb-map-card { max-height:44%; overflow-y:auto; padding:10px 16px 10px; }
.vb-embed .vb-map-card .cols { display:flex; flex-direction:column; }
.vb-embed .vb-map-card .c1, .vb-embed .vb-map-card .c2, .vb-embed .vb-map-card .c3 { display:contents; }
.vb-embed .vb-map-card .cat  { order:1; align-self:flex-start; }
.vb-embed .vb-map-card h3    { order:2; font-size:16px; margin-bottom:1px; }
.vb-embed .vb-map-card .norse{ order:3; }
.vb-embed .vb-map-card .date { order:4; margin-bottom:6px; }
.vb-embed .vb-map-card .hook { order:5; font-size:13px; margin-bottom:5px; }
.vb-embed .vb-map-card .sum  { order:6; font-size:12.5px; line-height:1.5; margin-bottom:6px; }
.vb-embed .vb-map-card .gem  { order:7; font-size:12px; padding:7px 9px; margin-bottom:6px; }
.vb-embed .vb-map-card .q    { order:8; margin-bottom:6px; }
.vb-embed .vb-map-card .q .qt { font-size:12px; }
.vb-embed .vb-map-card .src  { order:9; margin-bottom:6px; }
.vb-embed .vb-map-card .next { order:10; align-self:flex-start; }
.vb-map-attrib { text-align:center; font-size:12px; padding:9px 0 11px; margin:0; color:var(--vb-muted); }
.vb-map-attrib a { color:var(--vb-accent); font-weight:600; }
.vb-map-poster { font-size:14px; margin:14px 0 0; }
.vb-map-poster a { color:var(--vb-accent); font-weight:700; }
.vb-map-poster .note { display:block; font-size:12px; color:var(--vb-muted); margin-top:4px; }

/* ---- era slider (Viking world through time) ---- */
.vb-map-erabar { max-width:560px; margin:0 auto 14px; text-align:center; }
.vb-map-eralabel { display:block; font-size:13px; letter-spacing:.08em; color:var(--vb-body);
  margin-bottom:6px; font-weight:600; }
.vb-map-eralabel strong { color:var(--vb-accent); }
.vb-map-erabar input[type=range] { -webkit-appearance:none; appearance:none; width:100%; height:26px;
  background:transparent; cursor:pointer; margin:0; }
.vb-map-erabar input[type=range]::-webkit-slider-runnable-track { height:4px; border-radius:2px;
  background:#c9b98f; }
.vb-map-erabar input[type=range]::-moz-range-track { height:4px; border-radius:2px; background:#c9b98f; }
.vb-map-erabar input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:20px; height:20px;
  border-radius:50%; background:#8E2B22; border:2.5px solid #f6f1e7; margin-top:-8px;
  box-shadow:0 1px 4px rgba(28,26,23,.4); }
.vb-map-erabar input[type=range]::-moz-range-thumb { width:15px; height:15px; border-radius:50%;
  background:#8E2B22; border:2.5px solid #f6f1e7; box-shadow:0 1px 4px rgba(28,26,23,.4); }
.vb-map-eraends { display:flex; justify-content:space-between; font-size:11px; color:var(--vb-muted);
  margin-top:-2px; font-style:normal; }
.vb-map-eraends i { font-style:normal; }
.vb-map-erarow { display:flex; align-items:center; gap:10px; }
.vb-map-erarow input[type=range] { flex:1; }
.vb-map-eraplay { flex:0 0 auto; width:34px; height:34px; border-radius:50%; cursor:pointer;
  border:1px solid var(--vb-accent); background:var(--vb-accent); color:#fff; font-size:12px;
  line-height:1; display:flex; align-items:center; justify-content:center; padding:0 0 0 2px; }
.vb-map-eraplay[aria-pressed="true"] { background:#3B3630; border-color:#3B3630; padding:0; }
.vb-map-eraplay:hover { filter:brightness(1.12); }

/* ---- voyage measure tool ---- */
.vb-map-toolsrow { text-align:center; margin:0 auto 14px; max-width:640px; }
.vb-map-measurebtn { font-size:12px; letter-spacing:.1em; text-transform:uppercase; cursor:pointer;
  padding:8px 16px; border-radius:999px; border:1px solid var(--vb-line); background:#fff;
  color:var(--vb-body); font-weight:600; }
.vb-map-measurebtn[aria-pressed="true"] { background:#3B3630; color:var(--vb-bone); border-color:#3B3630; }
.vb-map-measureout { font-size:13.5px; line-height:1.55; margin:10px auto 0; padding:10px 14px;
  background:var(--vb-parch); border:1px solid var(--vb-line); border-radius:10px; text-align:left; }
.vb-map-measureout .src { font-size:11.5px; color:var(--vb-muted); }
.vb-map-measureout button { font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  cursor:pointer; margin-top:6px; padding:5px 12px; border-radius:999px;
  border:1px solid var(--vb-line); background:#fff; color:var(--vb-body); font-weight:600; }

/* ---- map stage ---- */
.vb-map-stage { position:relative; border:1px solid var(--vb-line); border-radius:14px; overflow:hidden;
  box-shadow: 0 8px 30px rgba(28,26,23,.12); background: var(--vb-sea); }
#vb-map { width:100%; height: 560px; z-index:1; outline:none;
  background:
    radial-gradient(1200px 700px at 18% 22%, rgba(150,116,66,.10), transparent 60%),
    radial-gradient(900px 620px at 82% 72%, rgba(150,116,66,.13), transparent 62%),
    radial-gradient(760px 520px at 55% 38%, rgba(255,250,235,.22), transparent 55%),
    radial-gradient(1500px 950px at 50% 50%, #ddd1b4, #d0c19e 82%); }
@media (max-width:720px){ #vb-map { height: 62vh; min-height:400px; max-height:560px; } }

/* ---- mobile: compact wrapped filters (no scroll), journeys stay a swipe strip ---- */
@media (max-width:720px){
  .vb-map-filters { gap:6px; margin-bottom:10px; }
  .vb-map-filters button { padding:9px 12px; font-size:11.5px; letter-spacing:.08em; white-space:nowrap; }
  .vb-map-filters button .pin { width:13px; height:16px; margin-right:5px; vertical-align:-3.5px; }
  .vb-map-journeys { gap:6px; }
  .vb-map-journeys button { padding:9px 12px; font-size:12px; white-space:nowrap; }
  .vb-map-journeys button .jfull { display:none; }
  .vb-map-journeys button .jshort { display:inline; }
  .vb-map-head p { font-size:15px; }
}
.vb-map-vignette { position:absolute; inset:0; pointer-events:none; z-index:400;
  box-shadow: inset 0 0 110px rgba(74,58,32,.32), inset 0 0 20px rgba(74,58,32,.2); border-radius:14px;
  background:
    linear-gradient(104deg, transparent 49.55%, rgba(110,86,48,.075) 49.95%, transparent 50.45%),
    linear-gradient(2deg, transparent 63.7%, rgba(110,86,48,.06) 64.05%, transparent 64.5%); }
.vb-map-vignette::before { content:''; position:absolute; inset:9px; border:1.5px solid rgba(122,95,51,.35);
  border-radius:8px; }
.vb-map-vignette::after { content:''; position:absolute; inset:13px; border:.5px solid rgba(122,95,51,.22);
  border-radius:6px; }
.vb-decor { pointer-events:none; opacity:.5; }
.vb-decor svg { display:block; width:100%; height:100%; }
.vb-decor img { display:block; width:100%; height:100%; object-fit:contain;
  opacity:.72; }
.vb-sealabel { pointer-events:none; text-align:center; }
.vb-sealabel span { font-family: Georgia, 'Times New Roman', serif; font-style:italic;
  font-size:13px; letter-spacing:.3em; color:#8a7454; opacity:.6; white-space:nowrap;
  text-shadow: 0 1px 0 rgba(255,250,235,.5); }
.vb-map-rose { position:absolute; right:16px; top:14px; width:84px; height:84px; z-index:401; opacity:.75; pointer-events:none; }
.vb-map-sample-note { position:absolute; left:12px; bottom:10px; z-index:401; font-size:11px; letter-spacing:.08em;
  color:#7a6a50; background:rgba(246,241,231,.85); padding:4px 10px; border-radius:999px; border:1px solid var(--vb-line); }

/* leaflet cosmetics */
.vb-map-stage .leaflet-container { font-family: inherit; }
.vb-map-stage .leaflet-control-zoom { border:none; box-shadow:0 2px 8px rgba(0,0,0,.18); border-radius:10px; overflow:hidden; }
.vb-map-stage .leaflet-control-zoom a { background:var(--vb-parch); color:var(--vb-ink); border-color:var(--vb-line); }
.vb-map-stage .leaflet-control-zoom a:hover { background:var(--vb-bone); }
.vb-land { /* polygon styling done in JS; class hook for effects */ }

/* routes: dashed 'sailing' animation */
.vb-route-line { stroke-dasharray: 7 9; animation: vb-sail 26s linear infinite; }
@keyframes vb-sail { to { stroke-dashoffset: -640; } }
@media (prefers-reduced-motion: reduce){ .vb-route-line { animation:none; } }

/* the longship that sails each route */
.vb-ship-wrap { pointer-events:none; }
.vb-ship { display:block; width:46px; height:18px; filter: drop-shadow(0 2px 3px rgba(28,26,23,.35));
  animation: vb-bob 3.4s ease-in-out infinite; will-change: transform; }
.vb-ship svg { display:block; width:100%; height:100%; }
@keyframes vb-bob { 0%,100%{ margin-top:0 } 50%{ margin-top:-1.5px } }
@media (prefers-reduced-motion: reduce){ .vb-ship { animation:none; } }

/* ---- markers: drop pins with category glyphs ---- */
.vb-mk { display:block; width:24px; height:32px; transition: transform .15s ease;
  transform-origin: 50% 100%; filter: drop-shadow(0 2px 3px rgba(28,26,23,.4)); }
.vb-mk svg { display:block; width:100%; height:100%; }
.leaflet-marker-icon:hover .vb-mk { transform: scale(1.22); }
.vb-mk.is-explored { filter: drop-shadow(0 0 3px rgba(184,134,11,.85)) drop-shadow(0 2px 3px rgba(28,26,23,.35)); }
.vb-mk.is-active { transform: scale(1.3);
  filter: drop-shadow(0 0 6px rgba(184,134,11,1)) drop-shadow(0 0 2px rgba(246,241,231,.9)) drop-shadow(0 3px 4px rgba(28,26,23,.4));
  animation: vb-pin-pop .35s ease-out; }
.leaflet-marker-icon:hover .vb-mk.is-active { transform: scale(1.3); }
@keyframes vb-pin-pop { 0% { transform: scale(1); } 55% { transform: scale(1.45); } 100% { transform: scale(1.3); } }
@media (prefers-reduced-motion: reduce) { .vb-mk.is-active { animation: none; } }
.vb-mk-tip { background:var(--vb-ink); color:var(--vb-bone); border:none; border-radius:8px;
  font-size:12.5px; letter-spacing:.04em; padding:5px 10px; box-shadow:0 3px 10px rgba(0,0,0,.3); }
.vb-mk-tip::before { display:none; }
.vb-rt-arrowwrap { pointer-events:none; }
.vb-rt-arrow { display:block; width:12px; height:12px;
  filter: drop-shadow(0 0 1.5px rgba(246,241,231,.9)); }
.vb-rt-arrow svg { display:block; }
.vb-route-line { transition: stroke-opacity .25s, stroke-width .2s; }

/* ---- fullscreen ---- */
.vb-map-fsbtn { position:absolute; z-index:600; left:11px; top:100px; width:36px; height:36px;
  border-radius:9px; border:1.5px solid rgba(122,95,51,.55); background:#f6f1e7; color:#4a3a20;
  font-size:17px; cursor:pointer; box-shadow:0 1px 5px rgba(28,26,23,.25);
  display:flex; align-items:center; justify-content:center; padding:0; }
.vb-map-fsbtn:hover { background:#fff; }
.vb-map-stage:fullscreen { border-radius:0; }
.vb-map-stage:fullscreen #vb-map { height:100vh; }
.vb-map-stage.is-fakefs { position:fixed; inset:0; z-index:99999; border-radius:0; }
.vb-map-stage.is-fakefs #vb-map { height:100vh; }
html.vb-noscroll, html.vb-noscroll body { overflow:hidden; }

/* ---- info card: bottom panel (desktop = 3 columns, mobile = bottom sheet) ---- */
.vb-map-card { position:absolute; bottom:0; left:0; right:0; z-index:500; width:100%;
  background:var(--vb-parch); border-top:1px solid var(--vb-line); border-radius:0 0 13px 13px;
  box-shadow: 0 -10px 30px rgba(28,26,23,.22); padding:18px 22px 16px; display:none; }
.vb-map-card.is-open { display:block; }
.vb-map-card .cols { display:block; }
@media (min-width:721px){
  .vb-map-card { max-height:47%; padding:14px 20px 12px; }
  .vb-map-card .cols { display:grid; grid-template-columns: 205px minmax(0,1fr) 285px; gap:0 24px; align-items:start; }
  .vb-map-card .sum { font-size:13.5px; line-height:1.5; margin-bottom:6px; }
  .vb-map-card .hook { font-size:14px; margin-bottom:6px; }
  .vb-map-card .gem { font-size:12.5px; line-height:1.5; padding:8px 10px; margin-bottom:8px; }
  .vb-map-card .q .qt { font-size:12.5px; line-height:1.5; }
  .vb-map-card h3 { font-size:19px; }
  .vb-map-card .c1 .next { margin-top:10px; }
}
.vb-map-card .cat { display:inline-block; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:#fff; padding:3px 10px; border-radius:999px; margin-bottom:8px; }
.vb-map-card .cat--homeland{background:var(--vb-c-homeland);} .vb-map-card .cat--raid{background:var(--vb-c-raid);}
.vb-map-card .cat--trade{background:var(--vb-c-trade);} .vb-map-card .cat--settlement{background:var(--vb-c-settlement);}
.vb-map-card .cat--journey{background:var(--vb-accent);}
.vb-map-card .hook { font-size:14.5px; line-height:1.5; font-weight:700; color:var(--vb-ink); margin:0 0 8px; }
.vb-map-card .gem { font-size:13.5px; line-height:1.55; margin:0 0 12px; background:#fff;
  border:1px solid var(--vb-line); border-radius:10px; padding:10px 12px; }
.vb-map-card .q { margin:0 0 12px; padding:2px 0 2px 12px; border-left:3px solid var(--vb-accent); }
.vb-map-card .q .qt { display:block; font-style:italic; font-size:13.5px; line-height:1.55; color:var(--vb-ink); }
.vb-map-card .q cite { display:block; font-size:12px; color:var(--vb-muted); margin-top:4px; font-style:normal; }
.vb-map-card .q cite a { color:var(--vb-muted); }
@media (max-width:720px){
  .vb-map-card { max-height:42vh; overflow-y:auto; padding-top:12px; border-radius:14px 14px 0 0; }
  /* flatten the 3 desktop columns so the "next stop" CTA can sit last, after the story */
  .vb-map-card .cols { display:flex; flex-direction:column; }
  .vb-map-card .c1, .vb-map-card .c2, .vb-map-card .c3 { display:contents; }
  .vb-map-card .cat  { order:1; align-self:flex-start; }
  .vb-map-card h3    { order:2; }
  .vb-map-card .norse{ order:3; }
  .vb-map-card .date { order:4; }
  .vb-map-card .hook { order:5; }
  .vb-map-card .sum  { order:6; }
  .vb-map-card .gem  { order:7; }
  .vb-map-card .q    { order:8; }
  .vb-map-card .src  { order:9; }
  .vb-map-card .next { order:10; align-self:flex-start; }
}
@media (min-width:721px){ .vb-map-card { overflow-y:auto; } }
.vb-map-card h3 { font-family: var(--font-heading-family, inherit); color:var(--vb-ink); font-size:21px; margin:0 0 2px; line-height:1.2; }
.vb-map-card .norse { font-size:13px; color:var(--vb-muted); margin:0 0 2px; }
.vb-map-card .norse .rn { font-family:"Noto Sans Runic", serif; color:var(--vb-accent); }
.vb-map-card .date { font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--vb-accent); margin:0 0 10px; font-weight:700; }
.vb-map-card .sum { font-size:14.5px; line-height:1.55; margin:0 0 12px; }
.vb-map-card .src { font-size:12px; color:var(--vb-muted); margin:0 0 12px; }
.vb-map-card .src a { color:var(--vb-muted); }
.vb-map-card .next { display:inline-block; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  color:var(--vb-accent); text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:1px; cursor:pointer; background:none; border-top:none; border-left:none; border-right:none; }
.vb-map-card .close { position:absolute; right:10px; top:8px; border:none; background:none; font-size:22px;
  color:var(--vb-muted); cursor:pointer; line-height:1; padding:4px; }

/* ---- below-map blocks ---- */
.vb-map-legendnote { text-align:center; font-size:13px; color:var(--vb-muted); margin:14px auto 0; max-width:70ch; line-height:1.6; }
.vb-map-embed { margin:34px auto 0; max-width:760px; background:var(--vb-parch); border:1px solid var(--vb-line);
  border-radius:14px; padding:20px 22px; text-align:center; }
.vb-map-embed h3, .vb-map-embed .vb-map-embed__h { font-family:var(--font-heading-family, inherit); color:var(--vb-ink); margin:0 0 6px; font-size:19px; }
.vb-map-embed p { font-size:13.5px; line-height:1.55; margin:0 0 12px; color:var(--vb-body); }
.vb-map-embed textarea { width:100%; font-size:12px; font-family:monospace; color:var(--vb-body);
  background:#fff; border:1px solid var(--vb-line); border-radius:8px; padding:10px; height:74px; resize:none; box-sizing:border-box; }
.vb-map-embed button { margin-top:10px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;
  padding:9px 20px; border-radius:999px; border:1px solid var(--vb-ink); background:var(--vb-ink); color:var(--vb-bone); }

/* crawlable list */
.vb-map-list { margin-top: 40px; }
.vb-map-list h2 { font-family:var(--font-heading-family, inherit); color:var(--vb-ink); text-align:center;
  font-size: clamp(22px,2.4vw,30px); margin:0 0 16px; }
.vb-map-row { border-top:1px solid var(--vb-line); }
.vb-map-row:last-child { border-bottom:1px solid var(--vb-line); }
.vb-map-row summary { list-style:none; cursor:pointer; display:flex; gap:14px; align-items:center; padding:14px 6px; }
.vb-map-row summary::-webkit-details-marker { display:none; }
.vb-map-row .dot { width:11px; height:11px; border-radius:50%; flex:0 0 auto; }
.vb-map-row .nm { font-weight:600; color:var(--vb-ink); font-family:var(--font-heading-family, inherit); font-size:16.5px; flex:1; }
.vb-map-row .dt { font-size:12.5px; color:var(--vb-muted); letter-spacing:.08em; }
.vb-map-row .bd { padding: 0 6px 16px 31px; font-size:14.5px; line-height:1.55; }
.vb-map-row .bd a { color: var(--vb-accent); }
