.fd-directory { max-width: 1100px; margin: 0 auto; }
.fd-search-bar { display: flex; gap: 8px; margin-bottom: 24px; flex-wrap: wrap; }
.fd-search-bar input[type="text"] { flex: 1; min-width: 200px; padding: 10px 12px; border: 1px solid #ccc; border-radius: 6px; }
.fd-search-bar select { padding: 10px 12px; border: 1px solid #ccc; border-radius: 6px; }
.fd-search-bar button { padding: 10px 20px; border: none; border-radius: 6px; background: #1a5d3a; color: #fff; cursor: pointer; }

.fd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.fd-card { display: block; border: 1px solid #e2e2e2; border-radius: 10px; padding: 16px; text-decoration: none; color: inherit; position: relative; transition: box-shadow .15s ease; background: #fff; }
.fd-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.fd-card.fd-featured { border-color: #e0b23c; background: #fffdf5; }
.fd-badge { position: absolute; top: 10px; right: 10px; background: #e0b23c; color: #3a2c00; font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 20px; letter-spacing: .03em; text-transform: uppercase; }
.fd-thumb img { width: 100%; height: 140px; object-fit: cover; border-radius: 6px; margin-bottom: 10px; }
.fd-card h3 { margin: 4px 0; font-size: 18px; }
.fd-cat-list { color: #666; font-size: 13px; margin: 0; }
.fd-unclaimed { display: inline-block; margin-top: 8px; font-size: 12px; color: #b00; }

.fd-pagination { display: flex; gap: 6px; margin-top: 24px; justify-content: center; }
.fd-pagination .page-numbers { padding: 8px 12px; border: 1px solid #ddd; border-radius: 6px; text-decoration: none; color: #333; }
.fd-pagination .current { background: #1a5d3a; color: #fff; border-color: #1a5d3a; }

.fd-listing-meta { background: #f7f7f5; border-radius: 8px; padding: 16px; margin: 16px 0; }
.fd-listing-meta p { margin: 4px 0; }

.fd-claim-cta, .fd-featured-form, .fd-featured-status { margin: 20px 0; }
.fd-claim-form { display: flex; flex-direction: column; gap: 10px; max-width: 420px; }
.fd-claim-form input, .fd-claim-form textarea { padding: 10px; border: 1px solid #ccc; border-radius: 6px; }
.fd-claim-form button, .fd-featured-btn { padding: 12px 20px; border: none; border-radius: 6px; background: #1a5d3a; color: #fff; cursor: pointer; font-weight: 600; }
.fd-featured-btn { background: #c68a00; }
.fd-notice { background: #eaf7ee; border: 1px solid #b6e2c2; padding: 12px 16px; border-radius: 8px; }
