.vm-mm { margin: 2rem 0; font-size: 1rem; }
.vm-mm__filters { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-bottom: 1rem; }
.vm-mm__filter { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; }
.vm-mm__pin { width: 14px; height: 14px; border-radius: 50% 50% 50% 0; background: var(--vm-pin-color); transform: rotate(-45deg); border: 2px solid #fff; box-shadow: 0 0 0 1px #777; }
.vm-mm__term-count { font-variant-numeric: tabular-nums; }
.vm-mm__reset, .vm-mm__item button { border: 1px solid #1f2937; background: #1f2937; color: #fff; padding: .55rem .85rem; cursor: pointer; }
.vm-mm__reset:hover, .vm-mm__reset:focus, .vm-mm__item button:hover, .vm-mm__item button:focus { background: #fff; color: #1f2937; }
.vm-mm__status { margin: 1rem 0; padding: .8rem 1rem; background: #f3f4f6; }
.vm-mm__layout { display: flex; gap: 1rem; align-items: stretch; }
.vm-mm__list { flex: 0 0 340px; height: 540px; overflow-y: auto; border: 1px solid #ddd; background: #fff; }
.vm-mm__map { flex: 1 1 auto; min-height: 540px; border: 1px solid #ddd; }
.vm-mm__item { padding: 1rem; border-bottom: 1px solid #ddd; }
.vm-mm__item:last-child { border-bottom: 0; }
.vm-mm__item--active { background: #eef6fa; box-shadow: inset 4px 0 #1f6f8b; }
.vm-mm__item h3 { margin: 0 0 .3rem; font-size: 1.1rem; }
.vm-mm__location { font-weight: 600; margin-bottom: .25rem; }
.vm-mm__item address { font-style: normal; margin-bottom: .75rem; }
.vm-mm__info { max-width: 260px; line-height: 1.45; }
.vm-mm__notice, .vm-mm-error { padding: .75rem 1rem; border-left: 4px solid #d97706; background: #fff7ed; }
@media (max-width: 900px) {
    .vm-mm__layout { flex-direction: column; }
    .vm-mm__map { order: 1; min-height: 400px; }
    .vm-mm__list { order: 2; flex-basis: auto; width: auto; height: auto; max-height: 520px; }
}
@media (max-width: 520px) {
    .vm-mm__map { min-height: 340px; }
    .vm-mm__filters { align-items: flex-start; flex-direction: column; }
}
