/* Culmina category-page intro paragraph (above the map) */
.culmina-cat-intro {
  font-size: 15px;
  line-height: 1.8;
  color: #333;
  margin: 0 0 1em;
}

/* Culmina article → category contextual link block (Tier2 ⑤) */
.culmina-related {
  margin: 1.8em 0 0.6em;
  padding: 14px 16px;
  background: #f4f8f4;
  border: 1px solid #dce7dc;
  border-left: 4px solid #2e7d32;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.8;
}
.culmina-related .culmina-related-head {
  font-weight: 700;
  color: #2e7d32;
  margin: 0 0 6px;
  font-size: 15px;
}
.culmina-related ul { margin: 0; padding: 0; list-style: none; }
.culmina-related li { margin: 2px 0; }
.culmina-related .culmina-related-cat { font-weight: 600; color: #e65100; text-decoration: none; }
.culmina-related .culmina-related-cat:hover { text-decoration: underline; }
.culmina-related .culmina-related-near a { color: #1565c0; text-decoration: none; }
.culmina-related .culmina-related-near a:hover { text-decoration: underline; }

/* Culmina category-page mesh nav (Tier2 ⑦): parent / adjacent / by-prefecture */
.culmina-cat-nav {
  font-size: 14px;
  line-height: 2;
  color: #444;
  margin: 0 0 1.2em;
  padding: 10px 14px;
  background: #fafafa;
  border: 1px solid #ececec;
  border-radius: 6px;
}
.culmina-cat-nav a { color: #1565c0; text-decoration: none; }
.culmina-cat-nav a:hover { text-decoration: underline; }
.culmina-cat-nav .culmina-related-cat { color: #e65100; font-weight: 600; }

/* Culmina homepage "explore by region" grid (Tier2 ⑥) */
.culmina-hp-grid { margin: 0 0 1.6em; }
.culmina-hp-title {
  font-size: 18px; font-weight: 700; color: #2e7d32;
  margin: 0 0 12px; padding: 0; border: none;
}
.culmina-hp-cards {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px;
}
.culmina-hp-card {
  padding: 10px 14px; background: #f7f8f7;
  border: 1px solid #e3e8e3; border-left: 4px solid #2e7d32; border-radius: 6px;
}
.culmina-hp-region {
  display: block; font-weight: 700; font-size: 15px; color: #e65100;
  text-decoration: none; margin-bottom: 4px;
}
a.culmina-hp-region:hover { text-decoration: underline; }
.culmina-hp-c { color: #888; font-weight: 400; font-size: 12px; }
.culmina-hp-prefs { font-size: 13px; line-height: 1.9; color: #555; }
.culmina-hp-prefs a { color: #1565c0; text-decoration: none; }
.culmina-hp-prefs a:hover { text-decoration: underline; }

/* Culmina category-page map block */
#culmina-catmap {
  margin: 0 0 1.6em;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
#culmina-catmap .culmina-catmap-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 10px;
  padding: 10px 14px;
  background: #f7f7f5;
  border-bottom: 1px solid #e8e8e8;
}
#culmina-catmap .culmina-catmap-title {
  font-size: 16px;
  font-weight: 700;
  color: #2e7d32;
  margin: 0;
}
#culmina-catmap .culmina-catmap-count {
  font-size: 12px;
  color: #777;
}
#culmina-catmap-canvas {
  width: 100%;
  height: 420px;
}
#culmina-catmap .culmina-catmap-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px 14px;
  max-height: 132px;
  overflow-y: auto;
}
#culmina-catmap .culmina-catmap-chip {
  display: inline-block;
  padding: 3px 10px;
  font-size: 12px;
  line-height: 1.6;
  background: #f0f0f0;
  color: #333;
  border-radius: 13px;
  text-decoration: none;
  cursor: pointer;
}
#culmina-catmap .culmina-catmap-chip:hover {
  background: #e65100;
  color: #fff;
}
/* Active highlight (chip hovered, or its marker hovered on the map) */
#culmina-catmap .culmina-catmap-chip.is-hl {
  background: #1565c0;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.3);
}
#culmina-catmap .maplibregl-popup-content {
  padding: 10px 14px;
}
@media (max-width: 768px) {
  #culmina-catmap-canvas { height: 320px; }
  #culmina-catmap .culmina-catmap-list { max-height: 108px; }
}
