/* 目次全体 */
.tw-toc {
  margin: 1.8rem 0 2.2rem;
  padding: 1.2rem 1.4rem;
  border: 1px solid rgba(43, 76, 126, 0.22);
  border-radius: 14px;
  background: #f8fafc;
}

/* 目次タイトル */
.tw-toc-title {
  margin-bottom: 0.8rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(43, 76, 126, 0.18);
  color: var(--wp--preset--color--navy-blue, #2b4c7e);
  font-size: 1.05rem;
  font-weight: 700;
}

/* 目次本文 */
.tw-toc-body {
  display: grid;
  gap: 0.35rem;
}

/* 各行 */
.tw-toc-row {
  line-height: 1.5;
}

/* リンク */
.tw-toc-row a {
  display: block;
  color: #333;
  text-decoration: none;
  border-radius: 8px;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.tw-toc-row a:hover {
  background: rgba(43, 76, 126, 0.08);
  color: var(--wp--preset--color--navy-blue, #2b4c7e);
}

/* h2 見出し */
.tw-toc-row-h2 a {
  padding: 0.35rem 0.5rem;
  font-weight: 700;
}

/* h3 小見出し */
.tw-toc-row-h3 a {
  padding: 0.25rem 0.5rem 0.25rem 1.5rem;
  font-size: 0.94rem;
  color: #555;
}

/* h3 の前に小さな記号 */
.tw-toc-row-h3 a::before {
  content: "— ";
  color: var(--wp--preset--color--navy-blue, #2b4c7e);
}

/* スマホ */
@media (max-width: 600px) {
  .tw-toc {
    margin: 1.4rem 0 1.8rem;
    padding: 1rem;
    border-radius: 12px;
  }

  .tw-toc-row-h3 a {
    padding-left: 1.1rem;
  }
}