/*
Theme Name: SWELL CHILD - AFRODE
Template: swell
Version: 4.6.3
*/
/* =========================================================
   AFRODE COLUMNS Design Tokens (spec v3)
   ========================================================= */
:root {
  --afrode-black: #2C2C2B;
  --afrode-ink: #1A1A1A;
  --afrode-beige-1: #F5F1EB;
  --afrode-beige-2: #E8E1D5;
  --afrode-gold: #8A7960;
  --afrode-gold-hover: #6F5F48;
  --afrode-gray-900: #222222;
  --afrode-gray-700: #555555;
  --afrode-gray-500: #888888;
  --afrode-gray-300: #D4CFC7;
  --afrode-gray-100: #F7F6F3;
  --afrode-quote-bg: #F7F4EE;
  --font-serif-ja: "Noto Serif JP", "游明朝", YuMincho, serif;
  --font-serif-en: "Cormorant Garamond", "Playfair Display", serif;
  --font-sans-ja: "Noto Sans JP", "游ゴシック", YuGothic, sans-serif;
}


/* ==========================================================================
   Cover block hero visibility fix
   - AFRODE CLINIC では SWELL の .section-label / .post_content h2 等が
     テキストカラーを上書きし、cover block のヒーローが暗文字になる問題を解消。
   - 全 cover block 内のテキストを強制的に白+シャドウにする。
   ========================================================================== */
.wp-block-cover .wp-block-cover__inner-container,
.wp-block-cover .wp-block-cover__inner-container h1,
.wp-block-cover .wp-block-cover__inner-container h2,
.wp-block-cover .wp-block-cover__inner-container h3,
.wp-block-cover .wp-block-cover__inner-container h4,
.wp-block-cover .wp-block-cover__inner-container h5,
.wp-block-cover .wp-block-cover__inner-container h6,
.wp-block-cover .wp-block-cover__inner-container p,
.wp-block-cover .wp-block-cover__inner-container .section-label,
.wp-block-cover .wp-block-cover__inner-container .wp-block-heading {
    color: #ffffff !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8), 0 1px 4px rgba(0, 0, 0, 0.6) !important;
}

.wp-block-cover .wp-block-cover__inner-container .section-label {
    opacity: 0.95;
    letter-spacing: 0.18em;
    font-weight: 400;
}

.wp-block-cover .wp-block-cover__inner-container h2,
.wp-block-cover .wp-block-cover__inner-container h3 {
    font-weight: 400;
    letter-spacing: 0.08em;
}

/* =========================================================
   AFRODE CLINIC 修正パッチ (2026-04-22)
   ========================================================= */

/* 1. 通常ヘッダー強制不透明化 */
.l-header,
.l-header.-transparent,
.l-header.-transparent.-top {
  background-color: rgba(255, 255, 255, 0.97) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.l-header .c-gnav a,
.l-header .c-headLogo a {
  color: #222 !important;
}

/* 2. 二重ヘッダー解消: l-fixHeader はスクロール時のみ */
.l-fixHeader {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
body.is-scrolled .l-fixHeader,
body[data-scroll-position="scrolled"] .l-fixHeader,
body[data-scrolled="true"] .l-fixHeader {
  opacity: 1;
  visibility: visible;
}
@supports (animation-timeline: scroll()) {
  .l-fixHeader {
    animation: show-fix-header linear;
    animation-timeline: scroll(root);
    animation-range: 50px 200px;
  }
  @keyframes show-fix-header {
    to { opacity: 1; visibility: visible; }
  }
}

/* 3. ロゴ幅0px潰れ対策 */
.l-header__logo,
.l-fixHeader__logo {
  flex-shrink: 0 !important;
  min-width: 180px;
}
.c-headLogo,
.c-headLogo__link {
  flex-shrink: 0 !important;
  min-width: 180px;
  width: auto !important;
}
.c-headLogo img,
.l-header__logo img,
.l-fixHeader__logo img {
  width: auto !important;
  max-width: 100%;
  height: auto;
}

@media (min-width: 1024px) {
  .l-header__inner,
  .l-fixHeader__inner {
    max-width: 1400px;
    padding-left: 24px;
    padding-right: 24px;
  }
  .c-gnav > .menu-item > a {
    padding-left: 12px;
    padding-right: 12px;
    font-size: 12px;
  }
}

/* 4. メインビジュアル黒背景除去・グラデーションオーバーレイ再適用 */
.p-mainVisual__slide {
  background-color: transparent !important;
}
.p-mainVisual__imgLayer {
  z-index: 1 !important;
}
.p-mainVisual__slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right,
    rgba(0,0,0,0.45) 0%,
    rgba(0,0,0,0.2) 40%,
    rgba(0,0,0,0) 80%);
  z-index: 2;
  pointer-events: none;
}
.p-mainVisual__contents,
.p-mainVisual__inner .swell-block-columns,
.p-mainVisual__catch,
.p-mainVisual__desc,
.p-mainVisual__slideInner,
.p-mainVisual__slideTitle,
.p-mainVisual__slideText,
.p-mainVisual__btns {
  position: relative;
  z-index: 3;
}

/* 5. 下層ページ過剰下部余白の削減 */
.l-mainContent.l-article {
  padding-bottom: 4rem;
}

/* =========================================================
   Phase 6: アクセシビリティ - コントラスト改善
   ========================================================= */
.c-postThumb__figcaption,
.c-pageTitle__subTitle,
.swell-block-columns__subTitle,
small,
.c-caption,
figcaption {
  color: #555 !important;
}
.has-background .wp-block-group__inner-container p,
.has-light-background-color {
  color: #222 !important;
}

/* =========================================================
   Phase 7: モバイル - タップ領域44px+ / フォント15px+
   ========================================================= */
@media (max-width: 959px) {
  .p-spMenu li > a {
    min-height: 48px;
    display: flex;
    align-items: center;
    padding: 12px 20px;
  }
  .l-footer a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .swell-block-button > a,
  .swell-btn,
  a.c-ctaBtn,
  .wp-block-button__link {
    min-height: 52px;
    padding: 14px 24px;
  }
  a[href^="tel:"],
  a[href^="mailto:"] {
    display: inline-block;
    min-height: 44px;
    line-height: 1.6;
  }
}

@media (max-width: 599px) {
  body, p, li, td, th, dd, dt {
    font-size: max(15px, 1rem);
    line-height: 1.7;
  }
  small, .c-caption, figcaption {
    font-size: max(13px, 0.85rem);
  }
  .c-pageTitle__subTitle {
    font-size: 12px;
    letter-spacing: 0.3em;
  }
}

/* =========================================================
   Article pages (.single-post) — spec v3 compliant
   ========================================================= */

/* SWELL default H2 (濃茶帯) override with max specificity */
html .single-post .post_content h2,
html .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  background: none !important;
  color: var(--afrode-ink) !important;
  padding: 0 0 0.5em 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--afrode-gold) !important;
  font-family: var(--font-serif-ja) !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  text-align: left !important;
  letter-spacing: 0.02em !important;
  margin: 3.5em 0 1.5em !important;
  line-height: 1.45 !important;
}
html .single-post .post_content h2::before,
html .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
  content: none !important;
  display: none !important;
  border: none !important;
}
html .single-post .post_content h3 {
  font-family: var(--font-serif-ja) !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  color: var(--afrode-ink) !important;
  margin: 2em 0 0.8em !important;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}
html .single-post .post_content h3::before { content: none !important; background: none !important; }

.single-post .post_content,
.single-post .entry-content {
  font-family: var(--font-serif-ja);
  font-size: 16px;
  line-height: 1.9;
  color: #222;
  letter-spacing: 0.02em;
}
.single-post .post_content p { margin: 0 0 1.5em; }
.single-post .post_content strong {
  font-weight: 700;
  color: var(--afrode-ink);
  background: linear-gradient(transparent 62%, rgba(138,121,96,0.18) 62%);
  padding: 0 0.08em;
}

/* Post meta */
.single-post .post-meta {
  display: flex; gap: 16px; flex-wrap: wrap;
  font-family: var(--font-sans-ja);
  font-size: 12px; color: var(--afrode-gray-500);
  letter-spacing: 0.1em;
  margin: 1em 0 2.5em;
}
.single-post .post-meta time::before,
.single-post .post-meta .reading::before {
  content: "●"; margin-right: 0.4em;
  font-size: 0.7em; color: var(--afrode-gold);
}

/* Interviewee */
.single-post .post-interviewee {
  background: var(--afrode-beige-1);
  border-left: 3px solid var(--afrode-gold);
  padding: 2em;
  margin: 2.5em 0;
}
.single-post .post-interviewee__label {
  font-family: var(--font-serif-en);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--afrode-gold);
  text-transform: uppercase;
  margin-bottom: 1em;
}
.single-post .post-interviewee__body {
  display: flex; gap: 1.5em; align-items: flex-start;
}
.single-post .post-interviewee__photo img {
  width: 120px; height: 160px;
  max-width: 120px; max-height: 160px;
  object-fit: cover; object-position: center top;
  border-radius: 2px;
}
.single-post .post-interviewee__role {
  font-family: var(--font-serif-ja);
  font-weight: 600;
  color: var(--afrode-ink);
  font-size: 15px;
  margin: 0 0 0.5em;
}
.single-post .post-interviewee__bio {
  font-size: 13px;
  line-height: 1.8;
  color: var(--afrode-gray-700);
  margin: 0;
}
@media (max-width: 599px) {
  .single-post .post-interviewee__body { flex-direction: column; }
  .single-post .post-interviewee__photo img {
    width: 100%; height: auto; max-height: 240px; aspect-ratio: 3/2;
  }
}

/* Speaker badges */
.single-post .speaker {
  display: inline-block;
  padding: 3px 12px;
  font-family: var(--font-sans-ja);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  margin-right: 12px;
  vertical-align: 2px;
  border-radius: 2px;
  line-height: 1.5;
}
.single-post .speaker--interviewer {
  background: var(--afrode-gray-100);
  color: var(--afrode-gray-700);
  border: 1px solid var(--afrode-gray-300);
}
.single-post .speaker--doctor {
  background: var(--afrode-ink);
  color: #fff;
  border: 1px solid var(--afrode-ink);
}

/* Keyword list */
.single-post .keyword-list {
  list-style: none;
  padding: 0;
  margin: 2em 0;
}
.single-post .keyword-list > li {
  padding: 1.2em 0;
  border-bottom: 1px solid var(--afrode-gray-300);
}
.single-post .keyword-list > li:last-child { border-bottom: none; }
.single-post .keyword-list__term {
  display: block;
  font-family: var(--font-serif-ja);
  font-size: 17px;
  font-weight: 700;
  color: var(--afrode-ink);
  margin-bottom: 0.35em;
}
.single-post .keyword-list__term::before {
  content: "";
  display: inline-block;
  width: 4px; height: 16px;
  background: var(--afrode-gold);
  margin-right: 10px;
  vertical-align: middle;
}
.single-post .keyword-list__desc {
  font-size: 15px;
  line-height: 1.8;
  color: var(--afrode-gray-700);
  margin: 0;
}

/* CTA box */
.single-post .post-cta-box {
  background: var(--afrode-quote-bg);
  border-left: 3px solid var(--afrode-gold);
  border-right: none; border-top: none; border-bottom: none;
  padding: 1.8em 2em;
  margin: 3em 0;
}
.single-post .post-cta-box::before {
  content: none !important;
  display: none !important;
}
.single-post .post-cta-box__label {
  font-size: 13px;
  color: var(--afrode-gold);
  font-weight: 600;
  margin: 0 0 0.5em;
}
.single-post .post-cta-box__product {
  font-family: var(--font-serif-ja);
  font-size: 20px;
  font-weight: 700;
  color: var(--afrode-ink);
  margin: 0 0 1em;
}
.single-post .post-cta-box__link {
  display: inline-block;
  font-family: var(--font-serif-en);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--afrode-gold);
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1px solid var(--afrode-gold);
  transition: all 0.3s;
}
.single-post .post-cta-box__link:hover {
  color: var(--afrode-gold-hover);
  border-color: var(--afrode-gold-hover);
  padding-left: 6px;
}

/* References */
.single-post .post-references {
  background: var(--afrode-gray-100);
  border-top: 2px solid var(--afrode-gold);
  padding: 1.8em 2em;
  margin: 3em 0 2em;
}
.single-post .post-references__title {
  font-family: var(--font-serif-en);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: var(--afrode-ink);
  text-transform: uppercase;
  margin: 0 0 1em;
  padding-bottom: 0.6em;
  border-bottom: 1px solid var(--afrode-gray-300);
}
.single-post .post-references ol {
  counter-reset: ref;
  list-style: none;
  padding: 0; margin: 0;
}
.single-post .post-references ol li {
  counter-increment: ref;
  padding: 0.6em 0 0.6em 2em;
  position: relative;
  font-size: 13px; line-height: 1.8;
  color: var(--afrode-gray-700);
  border-bottom: 1px solid var(--afrode-gray-300);
}
.single-post .post-references ol li:last-child { border: none; }
.single-post .post-references ol li::before {
  content: "(" counter(ref) ")";
  position: absolute; left: 0;
  color: var(--afrode-gold);
  font-family: var(--font-serif-en);
  font-weight: 600;
}
.single-post .post-references em { font-style: italic; color: #222; margin-left: 0.3em; }
.single-post .post-references a {
  margin-left: 0.4em;
  color: var(--afrode-gold);
  font-family: var(--font-serif-en);
  text-decoration: none;
}

/* Easy TOC */
.single-post #ez-toc-container {
  background: var(--afrode-gray-100) !important;
  border: 1px solid var(--afrode-gray-300) !important;
  padding: 1.5em 1.8em !important;
  margin: 2em auto !important;
  max-width: 720px;
}
.single-post #ez-toc-container .ez-toc-title {
  font-family: var(--font-serif-en) !important;
  letter-spacing: 0.15em !important;
  color: var(--afrode-ink) !important;
}
.single-post #ez-toc-container a { color: var(--afrode-gray-700) !important; }
.single-post #ez-toc-container a:hover { color: var(--afrode-gold) !important; }

/* Hide SWELL default TOC on article */
.single-post .p-toc.-double { display: none !important; }
.single-post .swell-toc-placeholder:empty { display: none !important; }

/* Eyecatch limit */
.single-post .p-articleThumb {
  max-width: 960px;
  margin: 0 auto 2em;
}
.single-post .p-articleThumb__img,
.single-post .p-articleThumb img {
  max-height: 450px;
  width: 100%;
  object-fit: cover;
  object-position: center;
}

/* =========================================================
   Article readability (.single-post only) — spec v3
   記事幅・スペーシング・可読性
   ========================================================= */

/* 本文幅を720pxに制限（横長すぎで読みにくい問題の解消） */
.single-post .post_content {
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* フルワイド系ブロックは幅制限から外す */
.single-post .post_content > .alignfull,
.single-post .post_content > .alignwide,
.single-post .post_content > .wp-block-image.alignfull,
.single-post .post_content > .wp-block-image.alignwide {
  max-width: none;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw;
}

/* 記事ヘッダー（タイトル・メタ・アイキャッチ）も720pxに */
.single-post .l-mainContent__inner > .p-articleHead,
.single-post .l-mainContent__inner > .p-articleMetas,
.single-post .l-mainContent__inner > .p-articleThumb {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.single-post .p-articleThumb {
  max-width: 960px !important;
}

/* 記事タイトル (c-postTitle__ttl) 可読性 */
.single-post .c-postTitle__ttl {
  font-family: var(--font-serif-ja);
  font-size: clamp(22px, 2vw + 1rem, 32px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.01em;
  color: var(--afrode-ink);
}

/* 段落間のリズム調整 */
.single-post .post_content p {
  font-size: 16px;
  line-height: 2.0;
  margin: 0 0 1.75em;
  color: #222;
}

/* speaker パラグラフは発言者バッジ＋本文で少し余白多め */
.single-post .post_content p:has(> .speaker) {
  margin-bottom: 1.5em;
  padding-left: 0;
}

/* H2はセクション区切りとして上余白強め */
.single-post .post_content h2 {
  margin-top: 4em !important;
}

/* キーワードリスト周りの余白 */
.single-post .keyword-list {
  margin: 2.5em 0 !important;
}

/* インタビュイーブロックの左右余白抜け */
.single-post .post-interviewee {
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* CTA / References も同幅 */
.single-post .post-cta-box,
.single-post .post-references {
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* モバイル：左右余白 */
@media (max-width: 767px) {
  .single-post .post_content,
  .single-post .post-interviewee,
  .single-post .post-cta-box,
  .single-post .post-references {
    padding-left: 20px;
    padding-right: 20px;
  }
  .single-post .post_content h2 {
    font-size: 1.4rem !important;
    margin-top: 3em !important;
  }
}

/* ============================================================
   AFRODE CLINIC — Preventive Medicine Columns
   Article-page-only styles (.single-post)

   子テーマ swell_child/style.css の末尾に追記する想定。
   既存のトップページ・下層ページデザインには一切影響しない。
   ============================================================ */

/* ------------------------------------------------------------
   1. デザイントークン（記事ページ用）
   ------------------------------------------------------------ */
.single-post {
  --afrode-ink: #1A1A1A;
  --afrode-text: #2C2C2B;
  --afrode-text-sub: #555555;
  --afrode-text-meta: #888888;
  --afrode-beige-1: #F5F1EB;
  --afrode-beige-2: #EBE5DA;
  --afrode-gold: #8A7960;
  --afrode-gold-dark: #6F5F48;
  --afrode-gold-light: #C7B994;
  --afrode-gray-100: #F7F6F3;
  --afrode-gray-300: #D4CFC7;
  --afrode-quote-bg: #F7F4EE;

  --font-col-ja: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  --font-col-en: "Cormorant Garamond", "Playfair Display", Didot, serif;
  --font-col-sans: "Noto Sans JP", "游ゴシック", YuGothic, "Hiragino Sans", sans-serif;

  --col-content-max: 720px;
  --col-content-wide: 920px;
}

/* ------------------------------------------------------------
   2. SWELLデフォルトH2/H3/H4 の装飾を完全に打ち消す
   ------------------------------------------------------------ */
.single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)),
.single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)),
.single-post .post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  background: transparent;
  color: var(--afrode-ink);
  padding: 0;
  border: none;
}
.single-post .post_content h2::before,
.single-post .post_content h3::before,
.single-post .post_content h4::before {
  display: none;
  content: none;
  background: none;
  border: none;
}

/* ------------------------------------------------------------
   3. 記事本文のコンテナ幅・余白
   ------------------------------------------------------------ */
.single-post .l-mainContent {
  max-width: 960px;
  margin: 0 auto;
}

.single-post .post_content {
  max-width: var(--col-content-max);
  margin: 0 auto;
  font-family: var(--font-col-ja);
  color: var(--afrode-text);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.02em;
}

.single-post .post_content > *:not(.p-articleThumb):not(.alignfull):not(.alignwide) {
  max-width: var(--col-content-max);
  margin-left: auto;
  margin-right: auto;
}

.single-post .post_content p {
  font-family: var(--font-col-ja);
  font-size: 16px;
  line-height: 1.9;
  color: var(--afrode-text);
  margin: 0 0 1.6em 0;
}

.single-post .post_content strong,
.single-post .post_content b {
  font-weight: 700;
  color: var(--afrode-ink);
}

/* ------------------------------------------------------------
   4. アイキャッチ画像
   ------------------------------------------------------------ */
.single-post .p-articleThumb {
  max-width: 960px;
  margin: 0 auto 48px;
}

.single-post .p-articleThumb__img {
  width: 100%;
  max-height: 520px;
  object-fit: cover;
  object-position: center;
  aspect-ratio: 16 / 9;
  box-shadow: none;
  border-radius: 0;
}

/* ------------------------------------------------------------
   5. 記事タイトル（H1）とメタ情報エリア
   ------------------------------------------------------------ */
.single-post .p-articleHead {
  max-width: var(--col-content-max);
  margin: 48px auto 32px;
  padding: 0 20px;
  text-align: left;
  border: none;
  background: transparent;
}

.single-post .c-postTitle__ttl {
  font-family: var(--font-col-ja);
  font-size: clamp(24px, 2.5vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--afrode-ink);
  margin: 0 0 20px;
  padding: 0;
  border: none;
  background: transparent;
  text-align: left;
}

.single-post .c-postTitle__date {
  display: none;
}

.single-post .p-articleMetas.-top {
  max-width: var(--col-content-max);
  margin: 0 auto 16px;
  padding: 0 20px;
  border: none;
  background: transparent;
}

.single-post .p-articleMetas__termList.c-categoryList {
  margin-bottom: 12px;
}

.single-post .c-categoryList__link {
  display: inline-block;
  font-family: var(--font-col-en);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--afrode-gold);
  background: transparent;
  border: 1px solid var(--afrode-gold);
  padding: 4px 12px;
  border-radius: 0;
  margin-right: 8px;
}

.single-post .p-articleMetas__times {
  font-family: var(--font-col-sans);
  font-size: 12px;
  color: var(--afrode-text-meta);
  letter-spacing: 0.08em;
}

.single-post .c-postTimes__posted,
.single-post .c-postTimes__modified {
  color: var(--afrode-text-meta);
}

.single-post .c-postTimes__posted::before {
  color: var(--afrode-gold);
}

/* ------------------------------------------------------------
   6. 本文内 .post-meta
   ------------------------------------------------------------ */
.single-post .post_content .post-meta {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-family: var(--font-col-sans);
  font-size: 12px;
  color: var(--afrode-text-meta);
  letter-spacing: 0.08em;
  margin-bottom: 32px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--afrode-gray-300);
}

.single-post .post_content .post-meta time::before {
  content: "●";
  color: var(--afrode-gold);
  margin-right: 6px;
  font-size: 0.7em;
  vertical-align: 1px;
}

/* ------------------------------------------------------------
   7. インタビュイー紹介ブロック
   ------------------------------------------------------------ */
.single-post .post_content .post-interviewee {
  background: var(--afrode-beige-1);
  border-left: 3px solid var(--afrode-gold);
  padding: 32px 32px 28px;
  margin: 40px auto;
  max-width: var(--col-content-max);
}

.single-post .post_content .post-interviewee__label {
  font-family: var(--font-col-en);
  font-size: 11px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--afrode-gold);
  margin-bottom: 20px;
  font-weight: 500;
}

.single-post .post_content .post-interviewee__body {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

.single-post .post_content .post-interviewee__photo {
  flex: 0 0 auto;
  margin: 0;
}

.single-post .post_content .post-interviewee__photo img {
  width: 120px;
  height: 160px;
  object-fit: cover;
  object-position: center top;
  border-radius: 2px;
  display: block;
}

.single-post .post_content .post-interviewee__role {
  font-family: var(--font-col-ja);
  font-size: 15px;
  font-weight: 600;
  color: var(--afrode-ink);
  margin: 0 0 10px;
  line-height: 1.5;
}

.single-post .post_content .post-interviewee__bio {
  font-family: var(--font-col-ja);
  font-size: 13px;
  line-height: 1.85;
  color: var(--afrode-text-sub);
  margin: 0;
}

@media (max-width: 599px) {
  .single-post .post_content .post-interviewee {
    padding: 24px 20px;
  }
  .single-post .post_content .post-interviewee__body {
    flex-direction: column;
    gap: 16px;
  }
  .single-post .post_content .post-interviewee__photo img {
    width: 100%;
    max-width: 200px;
    height: auto;
    aspect-ratio: 3/4;
  }
}

/* ------------------------------------------------------------
   8. Q1〜Q10 の見出し（H2）
   ------------------------------------------------------------ */
.single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  font-family: var(--font-col-ja);
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: var(--afrode-ink);
  margin: 64px 0 28px;
  padding: 0 0 16px;
  border-bottom: 1px solid var(--afrode-gold);
  text-align: left;
  position: relative;
  background: transparent;
}

.single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 60px;
  height: 3px;
  background: var(--afrode-gold);
}

.single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  font-family: var(--font-col-ja);
  font-size: clamp(17px, 1.5vw, 19px);
  font-weight: 600;
  color: var(--afrode-ink);
  line-height: 1.5;
  margin: 40px 0 16px;
  padding: 0 0 0 14px;
  border-left: 3px solid var(--afrode-gold);
  background: transparent;
  text-align: left;
}

.single-post .post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  font-family: var(--font-col-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--afrode-ink);
  margin: 28px 0 12px;
  padding: 0;
  border: none;
  background: transparent;
}

/* ------------------------------------------------------------
   9. 発言者ラベル（記者 / 道下医師）
   ------------------------------------------------------------ */
.single-post .post_content .speaker {
  display: inline-block;
  font-family: var(--font-col-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 3px 10px;
  margin-right: 10px;
  vertical-align: 2px;
  border-radius: 2px;
  line-height: 1.4;
}

.single-post .post_content .speaker--interviewer {
  background: var(--afrode-gray-100);
  color: var(--afrode-text-sub);
  border: 1px solid var(--afrode-gray-300);
}

.single-post .post_content .speaker--doctor {
  background: var(--afrode-ink);
  color: #ffffff;
  border: 1px solid var(--afrode-ink);
}

/* ------------------------------------------------------------
   10. キーワードリスト
   ------------------------------------------------------------ */
.single-post .post_content ul.keyword-list {
  list-style: none;
  padding: 0;
  margin: 32px 0;
}

.single-post .post_content ul.keyword-list > li {
  padding: 20px 0;
  border-bottom: 1px solid var(--afrode-gray-300);
  margin: 0;
}

.single-post .post_content ul.keyword-list > li:last-child {
  border-bottom: none;
}

.single-post .post_content ul.keyword-list > li::before,
.single-post .post_content ul.keyword-list > li::marker {
  content: none;
  display: none;
}

.single-post .post_content .keyword-list__term {
  display: block;
  font-family: var(--font-col-ja);
  font-size: 17px;
  font-weight: 700;
  color: var(--afrode-ink);
  margin-bottom: 8px;
  position: relative;
  padding-left: 16px;
}

.single-post .post_content .keyword-list__term::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 18px;
  background: var(--afrode-gold);
}

.single-post .post_content .keyword-list__desc {
  font-family: var(--font-col-ja);
  font-size: 15px;
  line-height: 1.9;
  color: var(--afrode-text-sub);
  margin: 0;
  padding-left: 16px;
}

/* ------------------------------------------------------------
   11. 本文内の図版
   ------------------------------------------------------------ */
.single-post .post_content .wp-block-image {
  margin: 40px auto;
  max-width: var(--col-content-max);
}

.single-post .post_content .wp-block-image img {
  max-width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: cover;
  display: block;
  margin: 0 auto;
  border-radius: 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.single-post .post_content .wp-block-image figcaption {
  font-family: var(--font-col-sans);
  font-size: 12px;
  color: var(--afrode-text-meta);
  text-align: center;
  margin-top: 10px;
  letter-spacing: 0.05em;
}

/* ------------------------------------------------------------
   12. 目次
   ------------------------------------------------------------ */
.single-post .post_content .p-toc.-double {
  display: none;
}

.single-post #ez-toc-container {
  max-width: var(--col-content-max);
  margin: 40px auto;
  padding: 24px 28px;
  background: var(--afrode-gray-100);
  border: 1px solid var(--afrode-gray-300);
  border-radius: 0;
  box-shadow: none;
}

.single-post #ez-toc-container .ez-toc-title-container {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--afrode-gray-300);
}

.single-post #ez-toc-container .ez-toc-title {
  font-family: var(--font-col-en);
  font-size: 14px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--afrode-ink);
  font-weight: 500;
}

.single-post #ez-toc-container nav ul {
  list-style: none;
  counter-reset: toc;
  padding: 0;
  margin: 0;
}

.single-post #ez-toc-container nav ul li {
  counter-increment: toc;
  padding: 6px 0;
  font-family: var(--font-col-ja);
  font-size: 14px;
  line-height: 1.7;
}

.single-post #ez-toc-container nav ul li a {
  color: var(--afrode-text-sub);
  text-decoration: none;
  transition: color 0.2s ease;
  font-weight: 400;
}

.single-post #ez-toc-container nav ul li a:hover {
  color: var(--afrode-gold);
}

.single-post #ez-toc-container.ez-toc-counter nav ul li a::before {
  font-family: var(--font-col-en);
  color: var(--afrode-gold);
  font-weight: 600;
  margin-right: 6px;
}

/* ------------------------------------------------------------
   13. CTAボックス
   ------------------------------------------------------------ */
.single-post .post_content blockquote.post-cta-box {
  max-width: var(--col-content-max);
  margin: 56px auto;
  padding: 28px 32px;
  background: var(--afrode-quote-bg);
  border-left: 3px solid var(--afrode-gold);
  border-right: none;
  border-top: none;
  border-bottom: none;
  border-radius: 0;
}

.single-post .post_content blockquote.post-cta-box::before,
.single-post .post_content blockquote.post-cta-box::after {
  content: none;
  display: none;
}

.single-post .post_content .post-cta-box__label {
  font-family: var(--font-col-sans);
  font-size: 13px;
  color: var(--afrode-gold);
  font-weight: 600;
  margin: 0 0 10px;
  letter-spacing: 0.04em;
}

.single-post .post_content .post-cta-box__product {
  font-family: var(--font-col-ja);
  font-size: 20px;
  font-weight: 700;
  color: var(--afrode-ink);
  margin: 0 0 16px;
  line-height: 1.4;
}

.single-post .post_content .post-cta-box__link {
  display: inline-block;
  font-family: var(--font-col-en);
  font-size: 13px;
  letter-spacing: 0.15em;
  color: var(--afrode-gold);
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1px solid var(--afrode-gold);
  transition: all 0.3s ease;
}

.single-post .post_content .post-cta-box__link:hover {
  color: var(--afrode-gold-dark);
  border-bottom-color: var(--afrode-gold-dark);
  padding-left: 6px;
}

/* ------------------------------------------------------------
   14. 参考文献ブロック
   ------------------------------------------------------------ */
.single-post .post_content .post-references {
  max-width: var(--col-content-max);
  margin: 56px auto 32px;
  padding: 28px 32px;
  background: var(--afrode-gray-100);
  border-top: 2px solid var(--afrode-gold);
  border-radius: 0;
}

.single-post .post_content .post-references__title {
  font-family: var(--font-col-en);
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--afrode-ink);
  font-weight: 500;
  margin: 0 0 16px;
  padding: 0 0 12px;
  border: none;
  border-bottom: 1px solid var(--afrode-gray-300);
  background: transparent;
  text-align: left;
}

.single-post .post_content .post-references__title::before,
.single-post .post_content .post-references__title::after {
  content: none;
  display: none;
}

.single-post .post_content .post-references ol {
  counter-reset: ref;
  list-style: none;
  padding: 0;
  margin: 0;
}

.single-post .post_content .post-references ol li {
  counter-increment: ref;
  padding: 10px 0 10px 28px;
  position: relative;
  font-family: var(--font-col-ja);
  font-size: 13px;
  line-height: 1.85;
  color: var(--afrode-text-sub);
  border-bottom: 1px solid var(--afrode-gray-300);
}

.single-post .post_content .post-references ol li:last-child {
  border-bottom: none;
}

.single-post .post_content .post-references ol li::before,
.single-post .post_content .post-references ol li::marker {
  content: "(" counter(ref) ")";
  position: absolute;
  left: 0;
  top: 10px;
  font-family: var(--font-col-en);
  color: var(--afrode-gold);
  font-weight: 600;
  font-size: 13px;
}

.single-post .post_content .post-references em {
  font-style: italic;
  color: var(--afrode-text);
}

.single-post .post_content .post-references a {
  color: var(--afrode-gold);
  font-family: var(--font-col-en);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
  margin-left: 6px;
}

.single-post .post_content .post-references a:hover {
  border-bottom-color: var(--afrode-gold);
}

/* ------------------------------------------------------------
   15. SWELL blockquote デフォルト装飾を打ち消し
   ------------------------------------------------------------ */
.single-post .post_content blockquote {
  padding: 28px 32px;
}

.single-post .post_content blockquote::before {
  display: none;
  content: none;
  background: none;
  border: none;
}

/* ------------------------------------------------------------
   16. パンくず
   ------------------------------------------------------------ */
.single-post .c-breadcrumb,
.single-post #breadcrumb {
  display: block;
}

.single-post #breadcrumb {
  max-width: 960px;
  margin: 0 auto;
  padding: 16px 20px;
  font-family: var(--font-col-sans);
  font-size: 12px;
  color: var(--afrode-text-meta);
  letter-spacing: 0.04em;
}

.single-post .p-breadcrumb__text {
  color: var(--afrode-text-meta);
}

.single-post .p-breadcrumb__item a {
  color: var(--afrode-text-meta);
  transition: color 0.2s ease;
}

.single-post .p-breadcrumb__item a:hover {
  color: var(--afrode-gold);
}

/* ------------------------------------------------------------
   17. 記事末尾
   ------------------------------------------------------------ */
.single-post .p-articleFoot {
  max-width: var(--col-content-max);
  margin: 48px auto 32px;
}

.single-post .c-shareBtns.-bottom {
  max-width: var(--col-content-max);
  margin: 32px auto;
}

.single-post .l-articleBottom__section {
  max-width: var(--col-content-wide);
  margin: 48px auto;
}

.single-post .l-articleBottom__title.c-secTitle {
  font-family: var(--font-col-en);
  font-size: 14px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--afrode-ink);
  font-weight: 500;
  border-left: 2px solid var(--afrode-gold);
  padding: 0 0 0 14px;
  margin-bottom: 24px;
  background: transparent;
}

/* ------------------------------------------------------------
   18. リンク（本文内）
   ------------------------------------------------------------ */
.single-post .post_content a:not(.post-cta-box__link):not(.ez-toc-link) {
  color: var(--afrode-gold);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}

.single-post .post_content a:not(.post-cta-box__link):not(.ez-toc-link):hover {
  border-bottom-color: var(--afrode-gold);
}

/* ------------------------------------------------------------
   19. モバイル調整
   ------------------------------------------------------------ */
@media (max-width: 781px) {
  .single-post .post_content {
    padding: 0 20px;
    font-size: 15px;
    line-height: 1.85;
  }
  .single-post .post_content p {
    font-size: 15px;
    line-height: 1.85;
  }
  .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 19px;
    margin: 48px 0 20px;
  }
  .single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 16px;
  }
  .single-post .c-postTitle__ttl {
    font-size: 22px;
  }
  .single-post .p-articleThumb__img {
    max-height: 280px;
  }
  .single-post .post_content .post-cta-box,
  .single-post .post_content .post-references,
  .single-post #ez-toc-container {
    padding: 20px 18px;
  }
  .single-post .post_content .keyword-list__term {
    font-size: 16px;
  }
  .single-post .post_content .keyword-list__desc {
    font-size: 14px;
  }
}

/* ============================================================
   END: AFRODE CLINIC Columns CSS
   ============================================================ */

/* ============================================================
   Article H2/H3 直後の段落余白調整（v2）
   ============================================================ */
.single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  margin: 72px 0 40px !important;
  padding-bottom: 20px !important;
}
.single-post .post_content h2 + p,
.single-post .post_content h2 + div,
.single-post .post_content h2 + ul {
  margin-top: 0 !important;
}
.single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  margin: 48px 0 24px !important;
}
.single-post .post_content h3 + p,
.single-post .post_content h3 + ul {
  margin-top: 0 !important;
}
/* H2/H3 の直後段落は一段大きめの余白で読みやすく */
.single-post .post_content h2 ~ p:first-of-type {
  margin-bottom: 1.8em !important;
}

/* モバイル */
@media (max-width: 781px) {
  .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    margin: 56px 0 28px !important;
    padding-bottom: 16px !important;
  }
  .single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    margin: 36px 0 18px !important;
  }
}

/* ============================================================
   Article H2/H3 スペーシング強化（最終調整）
   ============================================================ */
/* H2下を確実に56pxの空間確保 + 直後要素にも余白 */
.single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  margin: 204px 0 0 !important;
  padding-bottom: 0 !important;
  /* Q9のような長いタイトルで大きくなる問題への対策 */
  font-size: 22px !important;
  line-height: 1.55 !important;
}

/* H2とその直後要素の間に必ず32pxの空間 */
.single-post .post_content h2 + * {
  margin-top: 32px !important;
}
.single-post .post_content h2 + p,
.single-post .post_content h2 + figure,
.single-post .post_content h2 + ul,
.single-post .post_content h2 + div,
.single-post .post_content h2 + .wp-block-image {
  margin-top: 32px !important;
}

/* H3も余白調整 */
.single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  margin: 56px 0 20px !important;
}
.single-post .post_content h3 + * {
  margin-top: 20px !important;
}

/* 段落同士の間隔も少し広めに */
.single-post .post_content p {
  margin-bottom: 1.8em !important;
}

/* モバイル */
@media (max-width: 781px) {
  .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    margin: 150px 0 0 !important;
    padding-bottom: 32px !important;
    font-size: 19px !important;
    line-height: 1.5 !important;
  }
  .single-post .post_content h2 + * {
    margin-top: 24px !important;
  }
}

/* ============================================================
   AFRODE 記事CSSパッチ 2026-04-23
   1) H2 行間を広げる（記事用）
   2) スマホでH3の左余白過剰を解消（装飾トーンダウン）
   3) H4 デコ装飾（縦棒+bg）がスマホで読み幅を圧迫→本文幅に揃える
   4) 本文フォント weight 400 → 500 で読みやすく
   ============================================================ */

/* 1. H2 行間を広げる */
html .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  line-height: 1.85 !important;
}
@media (max-width: 781px) {
  html .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    line-height: 1.8 !important;
  }
}

/* 4. 本文フォント一段階太く (400 → 500) */
html .single-post .post_content,
html .single-post .post_content p,
html .single-post .post_content li {
  font-weight: 600 !important;
}
html .single-post .post_content strong,
html .single-post .post_content b {
  font-weight: 700 !important;
}

/* 2 & 3. スマホ: H3/H4 の装飾を軽くして本文と同じ左端に揃える */
@media (max-width: 781px) {
  /* H3: 縦棒の幅を細く/パディングを減らす（完全に消さず、ミニマルに） */
  html .single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    padding: 0 0 0 10px !important;
    border-left-width: 2px !important;
    margin-left: 0 !important;
    font-size: 17px !important;
    line-height: 1.6 !important;
  }

  /* H4 装飾付き: 左ボーダー+bg を廃止、文字だけ強調に切替 */
  html .single-post .post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    margin-left: 0 !important;
    font-size: 15.5px !important;
    line-height: 1.6 !important;
    color: var(--afrode-ink, #2C2A26) !important;
  }

  /* H4 直後のpは通常通り本文幅で */
  html .single-post .post_content h4 + p,
  html .single-post .post_content h4 + ul,
  html .single-post .post_content h4 + div {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }

  /* 記者/道下医師バッジがあるパラグラフも幅揃え */
  html .single-post .post_content p:has(> .speaker) {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }
}

/* ============================================================
   Q9改行問題の修正: 長尺H2タイトルを balance wrap で複数行化
   ============================================================ */
html .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
  text-wrap: balance !important;
  max-width: 640px !important;
  word-break: auto-phrase !important;
  overflow-wrap: break-word !important;
}
@media (max-width: 781px) {
  html .single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    max-width: 100% !important;
    text-wrap: balance !important;
    word-break: auto-phrase !important;
  }
}

/* ============================================================
   keyword-list 修正: 不自然なマージン復元 + スマホ左余白除去
   ============================================================ */
/* desc の p に p { margin-bottom: 1.8em } が乗っていた問題を打ち消し */
html .single-post .post_content ul.keyword-list p.keyword-list__desc,
html .single-post .post_content .keyword-list__desc {
  margin: 0 !important;
  margin-bottom: 0 !important;
}

/* li 間の余白を元のコンパクトに戻す */
html .single-post .post_content ul.keyword-list > li {
  padding: 16px 0 !important;
  margin: 0 !important;
}
html .single-post .post_content ul.keyword-list > li + li {
  margin-top: 0 !important;
}
html .single-post .post_content ul.keyword-list > li > * + * {
  margin-top: 0 !important;
}

/* ul 自体の余白を抑える（PC / SP 共通） */
html .single-post .post_content ul.keyword-list {
  padding-left: 0 !important;
  list-style: none !important;
}

/* スマホで padding-left: 20px が乗っていた問題を打ち消し */
@media (max-width: 781px) {
  html body .post_content ul.keyword-list,
  html .single-post .post_content ul.keyword-list {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }
  html body .post_content ul.keyword-list > li,
  html .single-post .post_content ul.keyword-list > li {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* ============================================================
   画像と前後要素の余白を十分確保（記事限定）
   ============================================================ */
html .single-post .post_content .wp-block-image,
html .single-post .post_content figure {
  margin-top: 28px !important;
  margin-bottom: 28px !important;
}

/* 画像直後の段落にも上マージン */
html .single-post .post_content .wp-block-image + p,
html .single-post .post_content figure + p,
html .single-post .post_content .wp-block-image + .wp-block-paragraph,
html .single-post .post_content figure + .wp-block-paragraph {
  margin-top: 24px !important;
}

/* モバイルは少し控えめに */
@media (max-width: 781px) {
  html .single-post .post_content .wp-block-image,
  html .single-post .post_content figure {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
  }
  html .single-post .post_content .wp-block-image + p,
  html .single-post .post_content figure + p {
    margin-top: 20px !important;
  }
}

/* ============================================================
   記事専用 モバイルフォント二回り拡大
   ============================================================ */
@media (max-width: 781px) {
  /* 本文段落 14 -> 17 */
  html body.single-post .post_content p,
  html body.single-post .post_content li,
  html body.single-post .post_content {
    font-size: 17px !important;
    line-height: 1.95 !important;
  }

  /* 本文ul/ol（keyword-list除く）13 -> 16 */
  html body.single-post .post_content ul,
  html body.single-post .post_content ol {
    font-size: 16px !important;
    line-height: 1.9 !important;
  }
  html body.single-post .post_content ul li,
  html body.single-post .post_content ol li {
    font-size: 16px !important;
    line-height: 1.9 !important;
  }

  /* keyword-list */
  html body.single-post .post_content .keyword-list__term {
    font-size: 17px !important;
  }
  html body.single-post .post_content .keyword-list__desc {
    font-size: 16px !important;
    line-height: 1.9 !important;
  }

  /* H2 タイトル */
  html body.single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 22px !important;
    line-height: 1.65 !important;
  }

  /* H3 */
  html body.single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 19px !important;
    line-height: 1.65 !important;
  }

  /* H4 */
  html body.single-post .post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 17px !important;
    line-height: 1.65 !important;
  }

  /* CTA・参考文献なども可読性底上げ */
  html body.single-post .post_content .post-references,
  html body.single-post .post_content .post-references li {
    font-size: 15px !important;
    line-height: 1.9 !important;
  }
  html body.single-post .post_content .post-cta-box {
    font-size: 16px !important;
    line-height: 1.9 !important;
  }

  /* 記者/医師バッジ少し大きく */
  html body.single-post .post_content .speaker {
    font-size: 12px !important;
    padding: 4px 11px !important;
  }
}

/* <=480 のさらに小さい端末も同水準を維持（既存の19px縮小を打ち消す） */
@media (max-width: 480px) {
  html body.single-post .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 21px !important;
  }
  html body.single-post .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
    font-size: 18px !important;
  }
  html body.single-post .post_content p,
  html body.single-post .post_content li {
    font-size: 16.5px !important;
  }
}

/* ============================================================
   記事本文フォント差し替え: BIZ UDPGothic（UDフォント）
   - H1/H2/H3/H4 の見出しは Noto Serif JP を維持して格調感キープ
   - 本文p/li/blockquote/keyword-list/post-cta/post-references を UD 化
   ============================================================ */
html body.single-post .post_content,
html body.single-post .post_content p,
html body.single-post .post_content li,
html body.single-post .post_content blockquote,
html body.single-post .post_content .keyword-list__term,
html body.single-post .post_content .keyword-list__desc,
html body.single-post .post_content .post-cta-box,
html body.single-post .post_content .post-references,
html body.single-post .post_content .post-references li,
html body.single-post .post_content .post-interviewee__bio,
html body.single-post .post_content .post-interviewee__role,
html body.single-post .post-meta,
html body.single-post .post-meta * {
  font-family: BIZ UDPGothic, Hiragino Sans, Yu Gothic, Meiryo, sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
}

/* strong は UD の太さで強調 */
html body.single-post .post_content strong,
html body.single-post .post_content b {
  font-family: BIZ UDPGothic, Hiragino Sans, Yu Gothic, sans-serif !important;
  font-weight: 700 !important;
}

/* 見出しは Noto Serif JP 維持 */
html body.single-post .post_content h1,
html body.single-post .post_content h2,
html body.single-post .post_content h3,
html body.single-post .post_content h4,
html body.single-post .post_content h5 {
  font-family: Noto Serif JP, 游明朝, YuMincho, serif !important;
}

/* Cormorant Garamond を使う装飾（Q番号など）はそのまま */
html body.single-post .post_content .q-label,
html body.single-post .post_content .cormorant {
  font-family: Cormorant Garamond, serif !important;
}

/* UD化により body で 500/600 weight指定が無効になるため、リズムを揃え直す */
html body.single-post .post_content p {
  line-height: 2.0 !important;
}

/* ============================================================
   記事 視認性強化パッチ
   - palt で日本語の詰め最適化
   - optimizeLegibility で字形レンダリング改善
   - letter-spacing 広めでリラックス
   - auto-phrase で文節改行
   - 段落間を広めに
   - 記事エリア背景をやや暖色に（目の疲れ軽減）
   ============================================================ */
html body.single-post .post_content {
  font-feature-settings: palt 1, kern 1 !important;
  text-rendering: optimizeLegibility !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  word-break: auto-phrase !important;
  overflow-wrap: break-word !important;
  line-break: strict !important;
}

html body.single-post .post_content p,
html body.single-post .post_content li {
  letter-spacing: 0.05em !important;
  line-height: 2.05 !important;
  color: #1F1F1F !important;
}

/* 段落間のリズム */
html body.single-post .post_content p {
  margin-bottom: 2.1em !important;
}

/* 可読最適行長: 1行40字前後に収まるよう幅を調整 */
html body.single-post .post_content {
  max-width: 680px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
html body.single-post .post_content .wp-block-image,
html body.single-post .post_content .swell-block-fullWide,
html body.single-post .post_content .alignwide,
html body.single-post .post_content .alignfull {
  max-width: 100% !important;
}

/* 記事エリアの背景をやや暖かみのあるオフホワイトに */
html body.single-post .l-mainContent,
html body.single-post .l-mainContent.l-article {
  background-color: #FCFAF6 !important;
}

/* 太字の存在感を少し強めて目のひっかかりを作る */
html body.single-post .post_content strong,
html body.single-post .post_content b {
  color: #000 !important;
  background: linear-gradient(transparent 60%, rgba(184, 149, 106, 0.18) 60%) !important;
  padding: 0 2px !important;
}

/* モバイル: palt はそのまま、間隔のみ微調整 */
@media (max-width: 781px) {
  html body.single-post .post_content p,
  html body.single-post .post_content li {
    letter-spacing: 0.04em !important;
    line-height: 1.95 !important;
  }
  html body.single-post .post_content p {
    margin-bottom: 1.8em !important;
  }
  html body.single-post .post_content {
    max-width: 100% !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}


/* ============================================================
   post-interviewee 写真サイズ強制（lazyload や inline width 上書き対策）
   ============================================================ */
html .single-post .post_content .post-interviewee__photo,
html .single-post .post-interviewee__photo {
  flex-shrink: 0 !important;
  width: 120px !important;
  max-width: 120px !important;
}
html .single-post .post_content .post-interviewee__photo img,
html .single-post .post-interviewee__photo img {
  width: 120px !important;
  height: 160px !important;
  max-width: 120px !important;
  max-height: 160px !important;
  object-fit: cover !important;
  object-position: center top !important;
  border-radius: 2px !important;
  display: block !important;
  margin: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 599px) {
  html .single-post .post_content .post-interviewee__photo,
  html .single-post .post-interviewee__photo {
    width: 100% !important;
    max-width: 220px !important;
    margin: 0 auto 12px !important;
  }
  html .single-post .post_content .post-interviewee__photo img,
  html .single-post .post-interviewee__photo img {
    width: 100% !important;
    max-width: 220px !important;
    height: auto !important;
    max-height: 280px !important;
    aspect-ratio: 3/4 !important;
  }
}

/* ============================================================
   縦長画像（is-portrait）対応: 480px max-heightと object-fit:cover を打ち消し
   ============================================================ */
html .single-post .post_content .wp-block-image.is-portrait {
  max-width: 460px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
html .single-post .post_content .wp-block-image.is-portrait img {
  max-height: none !important;
  height: auto !important;
  object-fit: contain !important;
  width: 100% !important;
  max-width: 100% !important;
  border-radius: 4px !important;
}
@media (max-width: 781px) {
  html .single-post .post_content .wp-block-image.is-portrait {
    max-width: 320px !important;
  }
}

/* ============================================================
   Product card (記事末尾の商品導線)
   ============================================================ */
html .single-post .post_content .product-card {
  margin: 64px 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #E8E2D6 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  box-shadow: 0 6px 24px rgba(40, 30, 20, 0.06) !important;
}
html .single-post .post_content .product-card__link {
  display: grid !important;
  grid-template-columns: 1fr 1.2fr !important;
  gap: 0 !important;
  align-items: center !important;
  text-decoration: none !important;
  color: inherit !important;
  border: none !important;
}
html .single-post .post_content .product-card__image {
  background: #F8F6F2 !important;
  padding: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
html .single-post .post_content .product-card__image img {
  width: 100% !important;
  max-width: 220px !important;
  height: auto !important;
  max-height: 280px !important;
  object-fit: contain !important;
  margin: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
html .single-post .post_content .product-card__body {
  padding: 32px 36px !important;
}
html .single-post .post_content .product-card__title {
  font-family: Noto Serif JP, serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1F1F1F !important;
  margin: 0 0 8px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  padding: 0 !important;
}
html .single-post .post_content .product-card__spec {
  font-family: Noto Sans JP, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #6B6B69 !important;
  margin: 0 0 18px !important;
  letter-spacing: 0.06em !important;
}
html .single-post .post_content .product-card__desc {
  font-family: BIZ UDPGothic, Hiragino Sans, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.85 !important;
  color: #444 !important;
  margin: 0 0 22px !important;
  letter-spacing: 0.03em !important;
}
html .single-post .post_content .product-card__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #1A1A1A !important;
  color: #FFFFFF !important;
  font-family: Noto Sans JP, sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  padding: 12px 28px !important;
  min-width: 160px !important;
  transition: all .2s ease !important;
  border-radius: 0 !important;
}
html .single-post .post_content .product-card__link:hover .product-card__btn {
  background: #B8956A !important;
  color: #FFFFFF !important;
}

@media (max-width: 599px) {
  html .single-post .post_content .product-card__link {
    grid-template-columns: 1fr !important;
  }
  html .single-post .post_content .product-card__image {
    padding: 28px 28px 0 !important;
  }
  html .single-post .post_content .product-card__body {
    padding: 24px 24px 28px !important;
    text-align: center !important;
  }
  html .single-post .post_content .product-card__btn {
    width: 100% !important;
    padding: 14px 24px !important;
  }
}

/* ============================================================
   TOPページ: セクション上下余白のみAbout準拠に拡張
   - 左右余白（既存customizerの20px）はそのまま温存
   - max-width:1060px の inner container も触らない（崩れ防止）
   - 上下のみ広げて余白感だけ統一
   ============================================================ */
html .home .post_content > .wp-block-group.swell-block-fullWide,
html .home .post_content > .swell-block-fullWide {
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}
@media (max-width: 781px) {
  html .home .post_content > .wp-block-group.swell-block-fullWide,
  html .home .post_content > .swell-block-fullWide {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
}

/* ============================================================
   post_list カードのタイトル(.p-postList__title)が
   customizer の body:not(.single-post) .post_content h2 に
   呑み込まれて 28px center-align で表示崩れしている問題を修正
   ============================================================ */
html body .post_content h2.p-postList__title,
html body .p-postList__title {
  font-family: Noto Serif JP, 游明朝, YuMincho, serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  line-height: 1.55 !important;
  text-align: left !important;
  color: #1F1F1F !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  word-break: break-all !important;
  overflow-wrap: anywhere !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  max-height: 4.7em !important;
}
html body .p-postList__title::before,
html body .p-postList__title::after {
  display: none !important;
  content: none !important;
}

/* カード内余白の最低限を確保 */
html body .p-postList.-type-card .p-postList__item {
  padding: 0 12px !important;
}
html body .p-postList.-type-card .p-postList__body {
  padding: 16px 4px 8px !important;
}

/* ============================================================
   NEWS list (TOPページ The Latest Activities)
   ============================================================ */
html body .post_content .afrode-news-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 24px 0 0 !important;
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
html body .post_content .afrode-news-list__item {
  padding: 16px 0 !important;
  border-bottom: 1px solid #E8E2D6 !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  letter-spacing: 0.04em !important;
  display: flex !important;
  gap: 16px !important;
  align-items: baseline !important;
}
html body .post_content .afrode-news-list__item:last-child {
  border-bottom: none !important;
}
html body .post_content .afrode-news-list__date {
  font-family: Cormorant Garamond, Noto Serif JP, serif !important;
  font-size: 14px !important;
  color: #B8956A !important;
  letter-spacing: 0.06em !important;
  flex-shrink: 0 !important;
  min-width: 96px !important;
  font-weight: 500 !important;
}
html body .post_content .afrode-news-list__body a {
  color: #2C2C2B !important;
  text-decoration: none !important;
  border-bottom: 1px solid transparent !important;
  transition: border-color 0.3s ease !important;
}
html body .post_content .afrode-news-list__body a:hover {
  border-bottom-color: #B8956A !important;
}
@media (max-width: 599px) {
  html body .post_content .afrode-news-list__item {
    flex-direction: column !important;
    gap: 4px !important;
    padding: 14px 0 !important;
  }
  html body .post_content .afrode-news-list__date { font-size: 13px !important; }
}

/* ============================================================
   モバイル重大問題パッチ v4.5.0（2026-05-04）
   - iPhone 13 (390px) 基準で重大な視認性問題のみ修正
   ============================================================ */
@media (max-width: 781px) {
  /* カバーH2 の inline font-size 過大を上書き（acupuncture/kampo等） */
  html body .wp-block-cover h2.wp-block-heading[style*="font-size:2"] {
    font-size: 24px !important;
    letter-spacing: 0.04em !important;
    line-height: 1.4 !important;
  }
  html body .wp-block-cover h2.wp-block-heading[style*="font-size:2.5rem"],
  html body .wp-block-cover h2.wp-block-heading[style*="font-size:2.25rem"] {
    font-size: 24px !important;
  }

  /* table をモバイル横スクロール可能に（protein比較表/aesthefill料金表/副作用） */
  html body .post_content .wp-block-table,
  html body .post_content figure.wp-block-table {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  html body .post_content .wp-block-table table {
    min-width: 480px !important;
    font-size: 13px !important;
  }
  html body .post_content .wp-block-table th,
  html body .post_content .wp-block-table td {
    padding: 8px 10px !important;
    line-height: 1.6 !important;
  }

  /* Contact Form 7 入力欄: iOS Safari auto-zoom 回避 */
  html body .wpcf7 input[type="text"],
  html body .wpcf7 input[type="email"],
  html body .wpcf7 input[type="tel"],
  html body .wpcf7 input[type="number"],
  html body .wpcf7 input[type="date"],
  html body .wpcf7 input[type="url"],
  html body .wpcf7 select,
  html body .wpcf7 textarea {
    font-size: 16px !important;
    box-sizing: border-box !important;
    width: 100% !important;
  }

  /* タップターゲット最低 44px 保証（CTAボタン全般） */
  html body .wp-block-button__link,
  html body .swell-block-button a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/* ============================================================
   モバイル微細改善パッチ v4.5.1（2026-05-04 / 固定ページ向け）
   ============================================================ */
@media (max-width: 781px) {
  /* About page: padding 長形式対応（既存ルールのpadding:80px等の短形式に該当しないため別途上書き） */
  html body .post_content .wp-block-group[style*="padding-top:100px"],
  html body .post_content .wp-block-group[style*="padding-top:80px"] {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* 補足テキスト 12px → 13px に底上げ（読みやすさ向上） */
  html body .post_content p[style*="font-size:12px"] {
    font-size: 13px !important;
    line-height: 1.85 !important;
  }
  /* 装飾用ラベル（Cormorant + uppercase）は意図的に小さめ維持 */
  html body .post_content p[style*="Cormorant Garamond"][style*="font-size:12px"] {
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
  }

  /* 英字大見出し 32px+letter-spacing:0.3em → モバイル縮小 */
  html body .post_content [style*="font-size:32px"][style*="letter-spacing:0.3em"] {
    font-size: 22px !important;
    letter-spacing: 0.15em !important;
  }

  /* 長見出しH3の行間最適化（折返し時の可読性向上） */
  html body .post_content h3.wp-block-heading {
    line-height: 1.55 !important;
    letter-spacing: 0.02em !important;
  }

  /* 副作用ul/ol などの小フォントを底上げ */
  html body .post_content ul[style*="font-size:14px"],
  html body .post_content ol[style*="font-size:13px"],
  html body .post_content ul[style*="font-size:13px"] {
    font-size: 15px !important;
    line-height: 1.85 !important;
  }
}

/* ============================================================
   デザイン整合性統一パッチ v4.6.0（2026-05-04）
   - セクションpadding正規化 / section-label統一 / ボタン統一
   ============================================================ */

/* 1. セクション底パディング正規化 (100px→80px / 40px→60px) */
html body .post_content > .wp-block-group[style*="padding:60px 5% 100px"],
html body .post_content > .wp-block-group[style*="padding:80px 5% 100px"] {
  padding-bottom: 80px !important;
}
html body .post_content > .wp-block-group[style*="padding:60px 5% 40px"],
html body .post_content > .wp-block-group[style*="padding:80px 5% 40px"] {
  padding-bottom: 60px !important;
}

/* 2. インライン 13px補足テキストを 14px に底上げ (デスクトップ) */
@media (min-width: 782px) {
  html body .post_content p[style*="font-size:13px"] {
    font-size: 14px !important;
    line-height: 1.85 !important;
  }
}

/* 3. section-label 統一スタイル */
html body .post_content .section-label,
html body .post_content p.section-label {
  font-family: "Cormorant Garamond", "Noto Serif JP", serif !important;
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
  color: #B8956A !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  margin-bottom: 12px !important;
  line-height: 1.4 !important;
}
@media (max-width: 781px) {
  html body .post_content .section-label,
  html body .post_content p.section-label {
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
  }
}

/* 4. 連続する has-background セクションの境目を明示 */
html body .post_content > .wp-block-group.has-background + .wp-block-group.has-background {
  border-top: 1px solid #E8E2D6 !important;
}

/* 5. ボタンスタイル統一: filled=ゴールド塗り / outline=ゴールド枠 */
html body .wp-block-button:not(.is-style-outline):not(.is-style-outline--1):not(.is-style-outline--4):not(.is-style-outline--5) .wp-block-button__link {
  background-color: #B8956A !important;
  border: 1px solid #B8956A !important;
  color: #ffffff !important;
  letter-spacing: 0.08em !important;
  font-weight: 400 !important;
  font-size: 14px !important;
}
html body .wp-block-button:not(.is-style-outline):not(.is-style-outline--1):not(.is-style-outline--4):not(.is-style-outline--5) .wp-block-button__link:hover {
  background-color: #8A7960 !important;
  border-color: #8A7960 !important;
  color: #ffffff !important;
}
html body .wp-block-button.is-style-outline .wp-block-button__link,
html body .wp-block-button[class*="is-style-outline"] .wp-block-button__link {
  background: transparent !important;
  border: 1px solid #B8956A !important;
  color: #B8956A !important;
  letter-spacing: 0.08em !important;
  font-weight: 400 !important;
  font-size: 14px !important;
}
html body .wp-block-button.is-style-outline .wp-block-button__link:hover,
html body .wp-block-button[class*="is-style-outline"] .wp-block-button__link:hover {
  background: #B8956A !important;
  color: #ffffff !important;
}

/* ============================================================
   v4.6.1 (2026-05-04): モバイル細部調整
   - TOPページ最終CONTACTセクション底余白の縮小
   - About等の下層ページ H1直下余白の縮小
   - SPECIALIST画像のサイズを代表医師と統一
   ============================================================ */
@media (max-width: 781px) {
  /* 1. TOPページ最終CONTACTセクション: 底padding削減で footer との隙間圧縮 */
  html body.home .post_content > .wp-block-group.swell-block-fullWide:last-child,
  html body.home .post_content > .swell-block-fullWide:last-child {
    padding-bottom: 32px !important;
  }

  /* 2. 下層ページ H1直下: c-pageTitle と最初のgroupの間を圧縮 */
  html body.page .l-mainContent__inner > .c-pageTitle {
    margin-bottom: 8px !important;
    padding-bottom: 12px !important;
  }
  html body.page .l-mainContent__inner > .post_content > .wp-block-group:first-child[style*="padding-top:100px"],
  html body.page .l-mainContent__inner > .post_content > .wp-block-group:first-child[style*="padding-top:80px"] {
    padding-top: 24px !important;
  }

  /* 3. SPECIALIST 3名の画像を代表医師(320px max)と統一 */
  html body.home .wp-block-columns .wp-block-image img[src*="watanabe"],
  html body.home .wp-block-columns .wp-block-image img[src*="carter"],
  html body.home .wp-block-columns .wp-block-image img[src*="shimada"] {
    max-width: 280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    object-position: center top !important;
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }
  /* SPECIALIST 各カラム自体も中央寄せして余白を均等化 */
  html body.home .wp-block-columns:has(.wp-block-image img[src*="watanabe"]) > .wp-block-column,
  html body.home .wp-block-columns:has(.wp-block-image img[src*="carter"]) > .wp-block-column {
    text-align: center !important;
  }
}

/* ============================================================
   v4.6.2 (2026-05-04): 代表医師画像の縦幅拡張・頭頂部見切れ対策
   ============================================================ */
html body .wp-block-columns.are-vertically-aligned-center .wp-block-image img {
  object-position: center top !important;
  max-height: 640px !important;
}


/* ============================================================
   v4.6.3 (2026-05-04): モバイルのみ alignfull cover を画面端まで拡張
   - PCは触らない (PC は max-width: 1060px の意図的レイアウト)
   - 固定ページ + TOP のみ対象、記事(single-post)は既存ルールが優先
   ============================================================ */
@media (max-width: 781px) {
  html body:not(.single-post) .l-mainContent .post_content > .wp-block-cover.alignfull,
  html body:not(.single-post) .l-content .post_content > .wp-block-cover.alignfull,
  html body:not(.single-post) .l-mainContent .post_content > .alignfull,
  html body:not(.single-post) .l-content .post_content > .alignfull {
    margin-left: -4vw !important;
    margin-right: -4vw !important;
    width: calc(100% + 8vw) !important;
    max-width: calc(100% + 8vw) !important;
  }
}
