.vmsd-directory { --vmsd-cream: #f8f1da; --vmsd-line: #e9e6db; margin: 0; }
.vmsd-directory * { box-sizing: border-box; }
.vmsd-directory .col { padding-bottom: 0; }
.vmsd-directory p { line-height: 1.7; }
.vmsd-directory h1, .vmsd-directory h2, .vmsd-directory h3 { line-height: 1.35; }
.vmsd-hero { background: var(--vmsd-cream); padding: 38px 0 44px; margin-bottom: 38px; }
.vmsd-breadcrumb { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; line-height: 1.6; }
.vmsd-directory .vmsd-eyebrow { margin: 0 0 10px; letter-spacing: .15em; font-weight: 700; }
.vmsd-hero h1, .vmsd-hero h2 { margin: 0 0 16px; }
.vmsd-directory .vmsd-lead { margin: 0 0 24px; }
.vmsd-summary { display: flex; flex-wrap: wrap; gap: 10px; }
.vmsd-summary span { padding: 6px 14px; border: 1px solid rgba(0,0,0,.12); border-radius: 99px; }
.vmsd-list-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 24px; scroll-margin-top: 110px; }
.vmsd-list-heading h3, .vmsd-list-heading p { margin: 0; }
.vmsd-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.vmsd-card { min-width: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--vmsd-line); border-radius: 18px; overflow: hidden; box-shadow: 0 6px 24px rgba(38,52,27,.05); }
.vmsd-photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #f1f2e9; }
.vmsd-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.vmsd-photo svg { display: block; width: 100%; height: 100%; color: #c8cfb6; padding: 24px; }
.vmsd-no-photo { position: absolute; bottom: 16px; left: 0; width: 100%; text-align: center; color: #4c563e; }
.vmsd-card-body { flex: 1; display: flex; flex-direction: column; align-items: stretch; padding: 18px; }
.vmsd-card-body h3 { margin: 0 0 12px; overflow-wrap: anywhere; }
.vmsd-directory .vmsd-bio { margin: 0 0 18px; white-space: pre-line; overflow-wrap: anywhere; }
.vmsd-directory .vmsd-booking { margin: auto 0 0; min-height: 42px; padding: 8px 12px; border-radius: 10px; letter-spacing: 0; text-align: center; white-space: normal; }
.vmsd-pagination { margin-top: 32px; }
.vmsd-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.vmsd-pagination li { margin: 0; }
.vmsd-pagination a, .vmsd-pagination span { display: inline-flex; align-items: center; justify-content: center; padding: 7px 13px; min-height: 42px; border: 1px solid var(--vmsd-line); border-radius: 8px; }
.vmsd-pagination .current { font-weight: 700; border-color: currentColor; }
.vmsd-empty { padding: 40px 24px; text-align: center; border: 1px dashed #c9ceb9; border-radius: 18px; }
.vmsd-empty h3 { margin: 0 0 12px; }
.vmsd-empty p { margin: 0; }
.vmsd-contact { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px; margin: 38px 0 24px; background: var(--vmsd-cream); border-radius: 18px; }
.vmsd-contact h3 { margin: 0 0 10px; }
.vmsd-contact p { margin-bottom: 0; }
.vmsd-directory .vmsd-call { flex-shrink: 0; margin: 0; padding-left: 24px; padding-right: 24px; }
.vmsd-back { margin-bottom: 0; padding-bottom: 32px; }
.vmsd-directory a:focus-visible { outline: 2px solid var(--primary-color,#778b4e); outline-offset: 3px; }
@media(max-width:849px) {
  .vmsd-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
  .vmsd-hero { padding: 30px 0 34px; }
  .vmsd-card-body { padding: 14px; }
  .vmsd-contact { padding: 24px; }
}
@media(max-width:549px) {
  .vmsd-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .vmsd-hero { margin-bottom: 28px; padding: 24px 0 30px; }
  .vmsd-breadcrumb { margin-bottom: 20px; gap: 7px; }
  .vmsd-card-body { padding: 12px; }
  .vmsd-contact { align-items: stretch; flex-direction: column; margin-top: 28px; padding: 22px; }
  .vmsd-directory .vmsd-call { width: 100%; }
  .vmsd-list-heading { margin-bottom: 20px; }
  .vmsd-photo svg { padding: 12px; }
}
