.vet-directory{padding-top:12px}
.vet-filters{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:end;gap:20px;background:#f0f1e9;padding:24px;border-radius:18px}
.vet-filters .field{margin:0}.vet-filters .field select{width:100%;min-height:46px;background:#fffdf8}
.vet-filters .check,.vet-filters>.text-link{min-height:46px;display:flex;align-items:center;white-space:nowrap}
.vet-directory button.text-link{font:inherit;color:#3d5548;background:transparent;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.vet-filters>button.text-link{padding:0 12px;border:1px solid #d5dcce;border-radius:10px;font-size:.82rem;background:#fffdf8;text-decoration:none}
.vet-results-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:24px 0 16px;font-size:.9rem}.vet-results-head p{margin:0}.vet-results-head a{text-decoration:underline;text-underline-offset:4px}
.vet-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:24px;align-items:start}
.vet-map-panel{border:1px solid #dfe3d8;background:#fffdf8;border-radius:20px;overflow:hidden;position:sticky;top:20px;min-width:0}
.vet-map-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px}.vet-map-heading h2{font-size:1.25rem;margin:0}.vet-map-heading button{font-size:.8rem}
#vet-map{height:540px;min-width:0;background:#e7eadd;z-index:0;font-family:inherit}
.vet-map-note,#vet-map-status{font-size:.76rem;line-height:1.6;margin:0;padding:12px 20px;color:#536056}.vet-map-note{border-top:1px solid #e4e6dc}
#vet-list{display:grid;gap:14px;padding:1px 1px 2px}
.vet-card{background:#fffdf8;border:1px solid #dfe3d8;border-radius:18px;padding:20px;scroll-margin-block:16px;transition:box-shadow .15s ease}.vet-card.is-selected{border-color:#3d5548;box-shadow:inset 0 0 0 1px #3d5548}
.vet-card-heading{display:flex;gap:12px;align-items:flex-start}.vet-number{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#3d5548;color:white;font-size:.84rem;font-weight:600}.vet-card h3{font-size:1.25rem;line-height:1.25;margin:0}.vet-area{font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:#667660;margin:0 0 5px!important}
.vet-address{font-size:.88rem;margin:14px 0 8px}.vet-emergency-tag{display:inline-block;border:1px solid #d9bca9;background:#fbf0e7;border-radius:20px;color:#854928;font-size:.72rem;padding:3px 10px;margin:2px 0 12px}
.vet-card-actions{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;font-size:.82rem}.vet-card-actions a,.vet-card-actions button,.vet-popup button{text-decoration:underline;text-underline-offset:4px}.vet-card-actions button,.vet-popup button{background:transparent;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}.vet-card-actions a:first-child{font-weight:600}
.vet-details{border-top:1px solid #e8e8df;padding-top:12px;margin-top:15px;font-size:.82rem;line-height:1.65}.vet-details summary{cursor:pointer;font-weight:600}.vet-details p{margin:10px 0}.vet-sources{display:flex;gap:14px;flex-wrap:wrap;font-size:.69rem;color:#63745f;margin-top:14px}.vet-sources a{text-decoration:underline;text-underline-offset:3px}
.vet-pin{display:grid!important;place-items:center;border:3px solid #fffdf8;border-radius:50%;background:#3d5548;color:white;box-shadow:0 2px 7px #182c3b40;font:600 14px/1 sans-serif}.vet-pin.has-emergency{background:#99592f}.vet-pin:focus{outline:3px solid #101f16;outline-offset:3px}
.vet-popup{font-size:13px;line-height:1.5;min-width:185px}.vet-popup strong{display:block;font-size:15px}.vet-popup p{margin:9px 0!important}.vet-popup button{margin-top:4px}.vet-popup-emergency{color:#854928;font-weight:600}
.vet-directory-note{max-width:850px;padding:24px 0 0;font-size:.85rem;line-height:1.8;color:#5d6c62}.vet-directory-note p{margin:6px 0}
.vet-shortcut{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;margin-bottom:28px;background:#edf0e3;border-radius:18px}.vet-shortcut p{margin:0}.vet-shortcut a{white-space:nowrap}
@media(max-width:1000px){.vet-layout{grid-template-columns:1fr 1fr;gap:16px}.vet-card{padding:16px}.vet-results-head{align-items:flex-start}.vet-map-heading{align-items:flex-start;flex-direction:column;gap:8px}#vet-map{height:510px}}
@media(max-width:700px){.vet-filters{grid-template-columns:1fr 1fr;padding:18px;gap:14px}.vet-filters .field{grid-column:1/-1}.vet-filters>.text-link{justify-self:end}.vet-layout{grid-template-columns:1fr}.vet-map-panel{position:relative;top:0}.vet-map-heading{flex-direction:row}.vet-results-head{flex-direction:column;gap:6px}#vet-map{height:330px}#vet-list{max-height:none;overflow:visible;padding:0}.vet-shortcut{flex-direction:column;align-items:flex-start;gap:10px}.vet-card h3{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.vet-card{transition:none}}

/* Authentic practice photos beside each practice name. */
.vet-practice-heading{display:block}.vet-practice-heading.has-photo{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:16px;align-items:start}
.vet-practice-title{min-width:0}.vet-practice-title h3{overflow-wrap:anywhere}.vet-practice-location{display:flex;align-items:center;gap:8px;margin-bottom:10px}.vet-practice-location .vet-number{width:25px;height:25px;font-size:.7rem}.vet-practice-location .vet-area{margin:0!important;overflow-wrap:anywhere}
.vet-photo{margin:0;min-width:0}.vet-photo-frame{display:block;overflow:hidden;border-radius:10px}.vet-photo img{display:block;width:112px;max-width:100%;height:104px;object-fit:cover;border-radius:10px;background:#eff1e7}.vet-photo figcaption{margin-top:5px;text-align:right;font-size:.65rem;line-height:1.4;color:#536056}.vet-photo a{text-decoration:underline;text-underline-offset:3px}.vet-photo a:focus-visible{outline:3px solid #566e3c;outline-offset:3px}
@media(min-width:701px) and (max-width:1000px){.vet-practice-heading.has-photo{grid-template-columns:minmax(0,1fr) 90px;gap:12px}.vet-photo img{width:90px;height:90px}}
@media(max-width:400px){.vet-practice-heading.has-photo{grid-template-columns:minmax(0,1fr) 86px;gap:12px}.vet-photo img{width:86px;height:86px}}
