/* Directory chrome for country, town, and shop pages.
   Uses the shared forest / Fraunces tokens. Search reads the static index, not Nova. */

body[data-directory] {
  background: var(--gnm-bg);
  color: var(--gnm-ink);
}

.gnm-dir-crumbs {
  width: min(var(--gnm-container), calc(100% - 2 * var(--gnm-page)));
  margin: 0 auto;
  padding-top: 1.25rem;
  color: var(--gnm-muted);
  font-size: 0.875rem;
}

.gnm-dir-crumbs a {
  color: var(--gnm-forest);
  text-decoration: none;
}

.gnm-dir-crumbs a:hover {
  text-decoration: underline;
}

[data-directory="country"] .gnm-hero h1 {
  max-width: 16ch;
}

[data-directory="town"] h1.serif,
[data-directory="shop"] h1.serif,
[data-directory="listing"] h1 {
  max-width: 18ch;
  font-size: clamp(2.4rem, 4.5vw, 3.75rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

.gnm-dir-list {
  max-width: 40rem;
  margin-top: 2.5rem;
}

.gnm-dir-list h2 {
  margin: 0.35rem 0 0;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 400;
}

.gnm-dir-list p {
  margin: 0.75rem 0 0;
}

body[data-directory="town"] article.gnm-card,
body[data-directory="shop"] .gnm-card,
body[data-directory="listing"] .gnm-card {
  border-radius: var(--gnm-radius-medium);
}

body[data-directory="town"] .gnm-dir-grid {
  margin-top: 1.25rem;
}

body[data-directory="shop"] .flex.flex-wrap.gap-3,
body[data-directory="listing"] .gnm-mkt-actions {
  margin-top: 1.5rem;
}

body[data-directory] a.bg-black,
body[data-directory] a.bg-emerald-600,
body[data-directory] a.bg-emerald-500 {
  border-radius: var(--gnm-radius-pill);
}

@media (max-width: 640px) {
  [data-directory="town"] h1.serif,
  [data-directory="shop"] h1.serif {
    max-width: none;
  }
}
