/* ==========================================================================
   c-wp-article — WordPress 記事本文スタイル
   ========================================================================== */

/* ---------- カテゴリ・タグ + 更新日 ---------- */
.p-cd-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.p-cd-terms {
  flex: 1;
  min-width: 0;
}
.p-cd-terms .c-tags {
  flex-wrap: wrap;
}

/* ---------- 更新日 ---------- */
.p-cd-updated {
  font-size: 13px;
  color: #999;
  white-space: nowrap;
  margin: 0;
}

/* ---------- 抜粋 ---------- */
.p-cd-excerpt {
  line-height: 1.8;
  color: #555;
  margin: 0 0 28px;
}

/* ---------- 目次 ---------- */
.c-toc {
  background: #f8fafc;
  border: 1px solid #dde8ed;
  border-radius: 8px;
  padding: 20px 24px 24px;
  margin-bottom: 36px;
}
.c-toc-title {
  font-size: 13px;
  font-weight: 700;
  color: #888;
  letter-spacing: 0.08em;
  margin: 0 0 14px;
}
.c-toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.c-toc-item a {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  text-decoration: none;
  color: var(--main-color);
  font-size: 15px;
  line-height: 1.5;
  transition: opacity 0.2s;
}
.c-toc-item a:hover {
  opacity: 0.65;
}
.c-toc-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 5px;
  background: var(--main-color);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  font-family: var(--font-en);
  margin-top: 1px;
}
.c-toc-text {
  flex: 1;
}

@media screen and (min-width: 768px) {

  /* ---------- 共通リセット ---------- */
  .c-wp-article > * + * {
    margin-top: min(28px, 28 / var(--w) * 100vw);
  }
  .c-wp-article > * {
    margin-bottom: 0;
  }

  /* ---------- 段落 ---------- */
  .c-wp-article p {
    line-height: 1.9;
    font-size: min(16px, 16 / var(--w) * 100vw);
  }

  /* ---------- 見出し h2 ---------- */
  .c-wp-article h2 {
    margin-top: min(56px, 56 / var(--w) * 100vw);
    margin-bottom: min(24px, 24 / var(--w) * 100vw);
    padding: min(12px, 12 / var(--w) * 100vw) min(20px, 20 / var(--w) * 100vw);
    background: linear-gradient(135deg, #f0f7fa 0%, #e8f3f8 100%);
    border-left: min(4px, 4 / var(--w) * 100vw) solid var(--main-color);
    border-radius: 0 min(4px, 4 / var(--w) * 100vw) min(4px, 4 / var(--w) * 100vw) 0;
    font-size: min(20px, 20 / var(--w) * 100vw);
    font-weight: 700;
    color: var(--main-color);
    line-height: 1.5;
  }

  /* ---------- 見出し h3 ---------- */
  .c-wp-article h3 {
    margin-top: min(40px, 40 / var(--w) * 100vw);
    margin-bottom: min(16px, 16 / var(--w) * 100vw);
    padding-bottom: min(8px, 8 / var(--w) * 100vw);
    border-bottom: min(2px, 2 / var(--w) * 100vw) solid #ccc;
    font-size: min(18px, 18 / var(--w) * 100vw);
    font-weight: 700;
    color: var(--main-color);
    line-height: 1.5;
  }

  /* ---------- 見出し h4 ---------- */
  .c-wp-article h4 {
    margin-top: min(32px, 32 / var(--w) * 100vw);
    margin-bottom: min(12px, 12 / var(--w) * 100vw);
    font-size: min(16px, 16 / var(--w) * 100vw);
    font-weight: 700;
    color: var(--main-color);
    line-height: 1.5;
  }

  /* ---------- リスト ---------- */
  .c-wp-article ul,
  .c-wp-article ol {
    padding-left: min(28px, 28 / var(--w) * 100vw);
    line-height: 1.9;
    font-size: min(16px, 16 / var(--w) * 100vw);
  }
  .c-wp-article ul {
    list-style: none;
    padding-left: 0;
  }
  .c-wp-article ul li {
    padding-left: min(20px, 20 / var(--w) * 100vw);
    position: relative;
  }
  .c-wp-article ul li::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: min(10px, 10 / var(--w) * 100vw);
    width: min(8px, 8 / var(--w) * 100vw);
    height: min(8px, 8 / var(--w) * 100vw);
    background: var(--gold1);
    border-radius: 50%;
  }
  .c-wp-article li + li {
    margin-top: min(6px, 6 / var(--w) * 100vw);
  }

  /* ---------- リンク ---------- */
  .c-wp-article a {
    color: #1a7fa0;
    text-decoration: underline;
    text-underline-offset: 0.2em;
    transition: opacity 0.2s;
  }
  .c-wp-article a:hover {
    opacity: 0.7;
  }

  /* ---------- 太字・斜体 ---------- */
  .c-wp-article strong {
    font-weight: 700;
    color: var(--main-color);
  }
  .c-wp-article em {
    font-style: italic;
    color: #555;
  }

  /* ---------- 画像 ---------- */
  .c-wp-article img {
    max-width: 100%;
    height: auto;
    border-radius: min(6px, 6 / var(--w) * 100vw);
    display: block;
  }
  .c-wp-article figure {
    margin: 0;
  }
  .c-wp-article figcaption {
    margin-top: min(8px, 8 / var(--w) * 100vw);
    font-size: min(13px, 13 / var(--w) * 100vw);
    color: #888;
    text-align: center;
  }

  /* ---------- 引用 ---------- */
  .c-wp-article blockquote {
    margin: min(32px, 32 / var(--w) * 100vw) 0;
    padding: min(20px, 20 / var(--w) * 100vw) min(24px, 24 / var(--w) * 100vw);
    background: #f8f8f8;
    border-left: min(4px, 4 / var(--w) * 100vw) solid #ccc;
    border-radius: 0 min(4px, 4 / var(--w) * 100vw) min(4px, 4 / var(--w) * 100vw) 0;
    color: #555;
    font-size: min(15px, 15 / var(--w) * 100vw);
    line-height: 1.8;
  }
  .c-wp-article blockquote p {
    margin: 0;
    font-size: inherit;
  }

  /* ---------- テーブル ---------- */
  .c-wp-article table {
    width: 100%;
    border-collapse: collapse;
    font-size: min(15px, 15 / var(--w) * 100vw);
    line-height: 1.7;
  }
  .c-wp-article th {
    padding: min(10px, 10 / var(--w) * 100vw) min(16px, 16 / var(--w) * 100vw);
    background: var(--main-color);
    color: #fff;
    font-weight: 700;
    text-align: left;
    border: min(1px, 1 / var(--w) * 100vw) solid #ccc;
  }
  .c-wp-article td {
    padding: min(10px, 10 / var(--w) * 100vw) min(16px, 16 / var(--w) * 100vw);
    border: min(1px, 1 / var(--w) * 100vw) solid #ddd;
  }
  .c-wp-article tr:nth-child(even) td {
    background: #f5f8fa;
  }

  /* ---------- 区切り線 ---------- */
  .c-wp-article hr {
    border: none;
    border-top: min(1px, 1 / var(--w) * 100vw) solid #ddd;
    margin: min(40px, 40 / var(--w) * 100vw) 0;
  }

  /* ---------- コード ---------- */
  .c-wp-article code {
    display: inline-block;
    padding: 0.1em 0.5em;
    background: #f0f4f6;
    border-radius: 3px;
    font-size: 0.9em;
    font-family: 'Courier New', monospace;
    color: #c0392b;
  }
  .c-wp-article pre {
    padding: min(20px, 20 / var(--w) * 100vw);
    background: #1e1e1e;
    border-radius: min(6px, 6 / var(--w) * 100vw);
    overflow-x: auto;
    color: #d4d4d4;
    font-size: min(14px, 14 / var(--w) * 100vw);
    line-height: 1.7;
  }
  .c-wp-article pre code {
    background: none;
    padding: 0;
    color: inherit;
    font-size: inherit;
  }

}

/* ==========================================================================
   SP
   ========================================================================== */

@media screen and (max-width: 767px) {

  .c-wp-article > * + * {
    margin-top: min(24px, 24 / var(--w) * 100vw);
  }
  .c-wp-article > * {
    margin-bottom: 0;
  }

  .c-wp-article p {
    line-height: 1.85;
    font-size: min(15px, 15 / var(--w) * 100vw);
  }

  .c-wp-article h2 {
    margin-top: min(44px, 44 / var(--w) * 100vw);
    margin-bottom: min(18px, 18 / var(--w) * 100vw);
    padding: min(10px, 10 / var(--w) * 100vw) min(14px, 14 / var(--w) * 100vw);
    border-left: min(4px, 4 / var(--w) * 100vw) solid var(--main-color);
    background: linear-gradient(135deg, #f0f7fa 0%, #e8f3f8 100%);
    border-radius: 0 min(4px, 4 / var(--w) * 100vw) min(4px, 4 / var(--w) * 100vw) 0;
    font-size: min(18px, 18 / var(--w) * 100vw);
    font-weight: 700;
    color: var(--main-color);
    line-height: 1.5;
  }

  .c-wp-article h3 {
    margin-top: min(32px, 32 / var(--w) * 100vw);
    margin-bottom: min(12px, 12 / var(--w) * 100vw);
    padding-bottom: min(8px, 8 / var(--w) * 100vw);
    border-bottom: min(2px, 2 / var(--w) * 100vw) solid #ccc;
    font-size: min(16px, 16 / var(--w) * 100vw);
    font-weight: 700;
    color: var(--main-color);
    line-height: 1.5;
  }

  .c-wp-article h4 {
    margin-top: min(24px, 24 / var(--w) * 100vw);
    margin-bottom: min(10px, 10 / var(--w) * 100vw);
    font-size: min(15px, 15 / var(--w) * 100vw);
    font-weight: 700;
    color: var(--main-color);
  }

  .c-wp-article ul,
  .c-wp-article ol {
    font-size: min(15px, 15 / var(--w) * 100vw);
    line-height: 1.85;
  }
  .c-wp-article ul {
    list-style: none;
    padding-left: 0;
  }
  .c-wp-article ul li {
    padding-left: min(18px, 18 / var(--w) * 100vw);
    position: relative;
  }
  .c-wp-article ul li::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: min(9px, 9 / var(--w) * 100vw);
    width: min(7px, 7 / var(--w) * 100vw);
    height: min(7px, 7 / var(--w) * 100vw);
    background: var(--gold1);
    border-radius: 50%;
  }
  .c-wp-article ol {
    padding-left: min(22px, 22 / var(--w) * 100vw);
  }
  .c-wp-article li + li {
    margin-top: min(6px, 6 / var(--w) * 100vw);
  }

  .c-wp-article a {
    color: #1a7fa0;
    text-decoration: underline;
    text-underline-offset: 0.2em;
  }

  .c-wp-article strong {
    font-weight: 700;
    color: var(--main-color);
  }

  .c-wp-article img {
    max-width: 100%;
    height: auto;
    border-radius: min(6px, 6 / var(--w) * 100vw);
    display: block;
  }
  .c-wp-article figcaption {
    margin-top: min(6px, 6 / var(--w) * 100vw);
    font-size: min(12px, 12 / var(--w) * 100vw);
    color: #888;
    text-align: center;
  }

  .c-wp-article blockquote {
    padding: min(16px, 16 / var(--w) * 100vw) min(18px, 18 / var(--w) * 100vw);
    background: #f8f8f8;
    border-left: min(4px, 4 / var(--w) * 100vw) solid #ccc;
    color: #555;
    font-size: min(14px, 14 / var(--w) * 100vw);
    line-height: 1.8;
  }
  .c-wp-article blockquote p {
    margin: 0;
    font-size: inherit;
  }

  .c-wp-article table {
    width: 100%;
    border-collapse: collapse;
    font-size: min(13px, 13 / var(--w) * 100vw);
    line-height: 1.6;
    display: block;
    overflow-x: auto;
  }
  .c-wp-article th {
    padding: min(8px, 8 / var(--w) * 100vw) min(12px, 12 / var(--w) * 100vw);
    background: var(--main-color);
    color: #fff;
    font-weight: 700;
    text-align: left;
    border: 1px solid #ccc;
    white-space: nowrap;
  }
  .c-wp-article td {
    padding: min(8px, 8 / var(--w) * 100vw) min(12px, 12 / var(--w) * 100vw);
    border: 1px solid #ddd;
    white-space: nowrap;
  }

  .c-wp-article hr {
    border: none;
    border-top: 1px solid #ddd;
    margin: min(32px, 32 / var(--w) * 100vw) 0;
  }

  .c-wp-article code {
    padding: 0.1em 0.4em;
    background: #f0f4f6;
    border-radius: 3px;
    font-size: 0.85em;
    font-family: 'Courier New', monospace;
    color: #c0392b;
  }
  .c-wp-article pre {
    padding: min(16px, 16 / var(--w) * 100vw);
    background: #1e1e1e;
    border-radius: min(4px, 4 / var(--w) * 100vw);
    overflow-x: auto;
    color: #d4d4d4;
    font-size: min(13px, 13 / var(--w) * 100vw);
    line-height: 1.7;
  }
  .c-wp-article pre code {
    background: none;
    padding: 0;
    color: inherit;
    font-size: inherit;
  }

}
