.directory { padding-bottom: 2rem; }
.directory__header h1 { color: #2d4a2e; margin: 0 0 0.25rem; }
.directory__desc { color: #57533f; max-width: 62ch; margin: 0 0 1rem; }

.directory__toolbar {
  display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
  margin: 1rem 0 0.5rem;
  padding: 0.75rem; background: #fff;
  border: 1px solid #e4e0d2; border-radius: 8px;
}
.directory__search {
  display: flex; gap: 0.5rem; flex: 1 1 18rem;
}
.directory__search input[type=search] {
  flex: 1; padding: 0.4rem 0.6rem; border-radius: 4px;
  border: 1px solid #d6d1c3; font-size: 0.95rem;
}
.directory__search button {
  padding: 0.4rem 0.9rem; background: #2d4a2e; color: #fff;
  border: 0; border-radius: 4px; cursor: pointer; font-size: 0.9rem;
}
.directory__facet {
  padding: 0.4rem 0.6rem; border-radius: 4px;
  border: 1px solid #d6d1c3; background: #fff; font-size: 0.9rem;
}
.directory__print-link { margin-left: auto; }

.directory__tabs {
  display: flex; gap: 0.5rem;
  margin: 1.5rem 0 0.5rem; color: #7a7565;
  font-size: 0.9rem;
}
.directory__tabs a { color: #2d4a2e; text-decoration: none; }

.directory__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  margin: 1rem 0 2rem;
}
.directory-card {
  background: #fff;
  border: 1px solid #e4e0d2;
  border-radius: 8px;
  padding: 1rem 1.15rem 0.9rem;
  display: flex; flex-direction: column; gap: 0.35rem;
}
.directory-card__name { margin: 0; font-size: 1.05rem; color: #2d4a2e; }
.directory-card__addr {
  margin: 0;
  font-size: 0.85rem; color: #5a5a5a;
}
.directory-card__badges {
  list-style: none; padding: 0; margin: 0.25rem 0 0;
  display: flex; flex-wrap: wrap; gap: 0.35rem;
}
.directory-card__badges li {
  font-size: 0.72rem;
  background: #e7f1e2; color: #264829;
  padding: 0.1rem 0.5rem; border-radius: 3px;
}
.directory-card__hours {
  margin: 0.25rem 0 0; font-size: 0.85rem; color: #57533f;
}
.directory-card__site {
  margin-top: auto;
  font-size: 0.85rem; color: #3a6b3c; text-decoration: none;
}
.directory-card__site:hover { text-decoration: underline; }

.directory__map-wrap h2 { margin: 0 0 0.5rem; color: #2d4a2e; }
.directory__map { box-shadow: 0 1px 0 rgba(0,0,0,0.05); }

.directory__attribution {
  font-size: 0.8rem; color: #7a7565;
  margin-top: 1.5rem;
}

.directory__empty {
  padding: 2rem; background: #fff; border: 1px dashed #d6d1c3;
  border-radius: 8px; color: #57533f; text-align: center;
}
