/* Basic, clean styles for DirectorySlate */
:root {
  --container: 1100px;
  --gap: 1rem;
  --border: #e3e3e3;
  --muted: #666;
}

* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; margin:0; color:#222; line-height:1.65; }
a { color:#0d6efd; text-decoration:none; }
a:hover { text-decoration:underline; }
img { max-width:100%; height:auto; display:block; }

.container { width: min(var(--container), 100% - 2rem); margin-inline:auto; }

.site-header, .site-footer { border-bottom:1px solid var(--border); }
.site-footer { border-top:1px solid var(--border); border-bottom:0; }
.branding { display:flex; flex-direction:column; gap:.25rem; }
.site-title { font-size:1.375rem; font-weight:700; }
.site-description { color:var(--muted); margin:0; }

.primary-nav ul, .footer-nav ul { list-style:none; padding:0; margin:0; display:flex; gap:1rem; flex-wrap:wrap;}
.primary-nav a, .footer-nav a { padding:.5rem .25rem; }

.search-form { display:flex; gap:.5rem; margin-top: .75rem; }
.search-field { flex:1; padding:.5rem .75rem; border:1px solid var(--border); border-radius:.375rem; }
.search-submit, button { border:1px solid var(--border); background:#fafafa; padding:.5rem .75rem; border-radius:.375rem; cursor:pointer; }
button:hover, .search-submit:hover { background:#f0f0f0; }

.content-area { padding: 2rem 0; }
.posts-grid, .listing-grid {
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--gap);
}
.card, .listing-card {
  border:1px solid var(--border);
  border-radius:.5rem;
  overflow:hidden;
  background:#fff;
  transition: box-shadow .2s ease;
}
.card:hover, .listing-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.listing-card .listing-content { padding:1rem; }
.listing-title { margin:.25rem 0 .5rem; font-size:1.125rem; }
.listing-meta { color:var(--muted); font-size:.9rem; display:flex; gap:.75rem; flex-wrap:wrap; }
.listing-address::before { content:"📍 "; }
.listing-excerpt { margin-top:.5rem; }

.listing-filter { display:flex; gap:.5rem; margin: 1rem 0 2rem; }
.listing-filter input[type="search"], .listing-filter select { padding:.5rem .75rem; border:1px solid var(--border); border-radius:.375rem; }

.entry-title { margin-top:0; }

/* pagination tweaks */
.pagination .page-numbers, .nav-links a, .nav-links span {
  display:inline-block; padding:.5rem .75rem; border:1px solid var(--border); margin-right:.25rem; border-radius:.375rem;
}
