/* ==========================================================================
   Typography - 本文・見出し・リンク等の基本スタイル
   ========================================================================== */

/* ========== 本文 ========== */
body {
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
}

p {
  margin-bottom: 1.6em;
  line-height: var(--pb-line-height-normal);
}

/* ========== リンク ========== */
.post-content a,
.widget a,
.comment-content a {
  color: var(--pb-link-color);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--pb-transition-fast), text-decoration-color var(--pb-transition-fast);
}

.post-content a:hover,
.widget a:hover,
.comment-content a:hover {
  color: var(--pb-link-hover);
  text-decoration-color: transparent;
}

/* ========== 見出し（デフォルト） ========== */
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
  margin-top: 2.4em;
  margin-bottom: 1em;
  font-weight: var(--pb-font-weight-bold);
  color: var(--pb-text-primary);
}

.post-content h2 { font-size: var(--pb-font-size-2xl); }
.post-content h3 { font-size: var(--pb-font-size-xl); }
.post-content h4 { font-size: var(--pb-font-size-lg); }
.post-content h5 { font-size: var(--pb-font-size-base); }
.post-content h6 { font-size: var(--pb-font-size-sm); }

/* ========== リスト ========== */
.post-content ul,
.post-content ol {
  margin-bottom: 1.6em;
  padding-left: 1.5em;
}

.post-content ul {
  list-style-type: disc;
}

.post-content ol {
  list-style-type: decimal;
}

.post-content li {
  margin-bottom: 0.5em;
  line-height: var(--pb-line-height-normal);
}

.post-content li > ul,
.post-content li > ol {
  margin-top: 0.5em;
  margin-bottom: 0;
}

/* ========== 引用 ========== */
.post-content blockquote {
  margin: 2em 0;
  padding: 1.5em 1.5em 1.5em 2em;
  border-left: 4px solid var(--pb-primary);
  background: var(--pb-bg-secondary);
  border-radius: 0 var(--pb-radius-md) var(--pb-radius-md) 0;
  font-style: italic;
  position: relative;
}

.post-content blockquote::before {
  content: "\201C";
  font-size: 3rem;
  color: var(--pb-primary-light);
  position: absolute;
  top: -0.2em;
  left: 0.3em;
  opacity: 0.3;
  font-family: Georgia, serif;
}

.post-content blockquote p:last-child {
  margin-bottom: 0;
}

.post-content blockquote cite {
  display: block;
  margin-top: 0.8em;
  font-size: var(--pb-font-size-sm);
  color: var(--pb-text-secondary);
  font-style: normal;
}

/* ========== コードブロック ========== */
.post-content code {
  font-family: var(--pb-font-mono);
  font-size: 0.9em;
  padding: 0.2em 0.5em;
  background: var(--pb-bg-tertiary);
  border-radius: var(--pb-radius-sm);
  color: var(--pb-primary-dark);
}

.post-content pre {
  margin: 2em 0;
  padding: 1.5em;
  background: var(--pb-bg-dark);
  color: #e2e8f0;
  border-radius: var(--pb-radius-md);
  overflow-x: auto;
  line-height: 1.6;
}

.post-content pre code {
  padding: 0;
  background: none;
  color: inherit;
  font-size: var(--pb-font-size-sm);
}

/* ========== テーブル ========== */
.post-content table {
  margin: 2em 0;
  border: 1px solid var(--pb-border-color);
  border-radius: var(--pb-radius-md);
  overflow: hidden;
}

.post-content th,
.post-content td {
  padding: 0.8em 1em;
  border-bottom: 1px solid var(--pb-border-color);
  text-align: left;
}

.post-content th {
  background: var(--pb-bg-secondary);
  font-weight: var(--pb-font-weight-semibold);
  font-size: var(--pb-font-size-sm);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--pb-text-secondary);
}

.post-content tbody tr:hover {
  background: var(--pb-bg-secondary);
}

.post-content tbody tr:last-child td {
  border-bottom: none;
}

/* ========== 画像キャプション ========== */
.post-content figure {
  margin: 2em 0;
}

.post-content figcaption {
  margin-top: 0.5em;
  font-size: var(--pb-font-size-sm);
  color: var(--pb-text-muted);
  text-align: center;
}

/* ========== 水平線 ========== */
.post-content hr {
  margin: 3em 0;
  border: none;
  border-top: 1px solid var(--pb-border-color);
}

/* ========== マーク ========== */
.post-content mark {
  background: linear-gradient(transparent 60%, rgba(var(--pb-primary-rgb), 0.2) 60%);
  padding: 0 0.2em;
}

/* ========== Strong / Em ========== */
.post-content strong {
  font-weight: var(--pb-font-weight-bold);
}

.post-content em {
  font-style: italic;
}

/* ========== レスポンシブ ========== */
@media screen and (max-width: 768px) {
  .post-content h2 { font-size: var(--pb-font-size-xl); }
  .post-content h3 { font-size: var(--pb-font-size-lg); }
  .post-content h4 { font-size: var(--pb-font-size-base); }

  .post-content blockquote {
    padding: 1em 1em 1em 1.5em;
  }
}
