.feature-hero { padding: 70px 0 20px; }
.feature-title { margin: 12px 0 0; font-family: Georgia, "Hiragino Mincho ProN", serif; font-size: clamp(2rem, 4vw, 3rem); font-weight: 400; }
.feature-lead { color: #607177; font-size: 1rem; margin-top: 10px; }

.feature-filters { padding: 20px 0 10px; display: flex; flex-direction: column; gap: 20px; }
.feature-filter-group { display: flex; flex-direction: column; gap: 10px; }
.feature-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.feature-chip {
  padding: 8px 16px; background: #fbfaf7; border: 1px solid var(--line); border-radius: 999px;
  font: inherit; font-size: 0.84rem; color: var(--ink); cursor: pointer;
}
.feature-chip:hover { border-color: #48606a; }
.feature-chip:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.feature-chip.is-selected { background: var(--night); border-color: var(--night); color: #fff; }

.feature-results { padding: 30px 0 60px; }
.feature-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.feature-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); overflow: hidden; color: inherit; text-decoration: none; }
.feature-card:hover { border-color: #48606a; }
.feature-card-body { padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.feature-card-region { font-size: 0.76rem; color: #75888d; }
.feature-card h3 { margin: 0; font-family: Georgia, "Hiragino Mincho ProN", serif; font-size: 1.15rem; font-weight: 400; }
.feature-card-summary { margin: 0; font-size: 0.88rem; color: #52646a; line-height: 1.6; }
.feature-card-facts { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.feature-card-fact { font-size: 0.78rem; color: #75888d; }
.feature-card-fact dt { font-weight: 600; color: #48606a; }
.feature-empty { grid-column: 1 / -1; margin: 0; padding: 26px 20px; background: #edf2ee; color: #52646a; font-size: 0.92rem; }

.feature-notes { padding-bottom: 80px; }
.feature-notes p { margin: 0 0 8px; font-size: 0.8rem; color: #75888d; }

/* 詳細ページ */
.feature-detail-list { margin: 32px 0; border-top: 1px solid var(--line); }
.feature-detail-list dt { margin-top: 20px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.05em; color: #48606a; }
.feature-detail-list dd { margin: 6px 0 0; color: #33474e; line-height: 1.8; }
.feature-search-link { margin-top: 40px; }

@media (prefers-reduced-motion: reduce) {
  .feature-card { transition: none; }
}

@media (max-width: 700px) {
  .feature-grid { grid-template-columns: 1fr; }
  .feature-chip { padding: 7px 14px; font-size: 0.8rem; }
}
