/* Publication themes (Publications page). Colours follow styles.css and the research map. */
#pub-themes {
  margin: 18px 0 28px;
}
.pt-intro { margin: 0 0 6px; }
.pt-group {
  margin: 18px 0 10px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #6d5f3a;
}
.pt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
  gap: 12px;
}
.pt-card {
  font: inherit;
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 16px 18px;
  background: #ffffff;
  color: #3e3a2c;
  border: 1px solid #ece3bf;
  border-radius: 10px;
  transition: border-color .15s, background-color .15s;
}
.pt-card:hover { border-color: #33691e; background: #f9fcf3; }
.pt-card:focus-visible { outline: 3px solid #ffd54f; outline-offset: 2px; }
.pt-card[aria-pressed="true"] { border: 2px solid #33691e; padding: 15px 17px; background: #f1f8e6; }
.pt-count {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #6d5f3a;
  font-variant-numeric: tabular-nums;
}
.pt-name {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: #33691e;
}
.pt-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; transform: translateY(-1px); }
.pt-desc { font-size: 17px; line-height: 1.45; color: #5a5137; }
.pt-go { margin-top: auto; padding-top: 4px; font-size: 16px; font-weight: 700; color: #1a5fb4; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgba(26, 95, 180, .35); text-underline-offset: .2em; }
.pt-card:hover .pt-go { color: #0f3f80; text-decoration-color: currentColor; text-decoration-thickness: 2px; }

.pt-status {
  margin: 0 0 16px;
  padding: 10px 14px;
  background: #ffffff;
  border: 1px solid #ece3bf;
  border-radius: 8px;
}
.pt-status:empty { display: none; }
.pt-reset {
  font: inherit;
  cursor: pointer;
  border: none;
  background: none;
  padding: 4px 2px;
  color: #1a5fb4;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(26, 95, 180, .35);
  text-underline-offset: .2em;
}
.pt-reset:focus-visible { outline: 3px solid #ffd54f; outline-offset: 2px; }
#all-papers { scroll-margin-top: 70px; }
