/**
 * File: single-column.css
 * Usage: single-post.php（コラム post の個別ページ）のスタイル。
 * Design: figma「まーける様 / 6_コラム一覧_個別記事」281-4638
 *
 * 記事ヘッダー（.bl_postHero*）・本文（.bl_postContent）・関連記事の外枠（.bl_relPosts）は
 * 実績詳細と共通のため subp.css に定義。カード / スライダー / ボタンは main.css。
*/

.ly_columnSingle {
  padding-top: 40px;
}

/* ================================================
  目次（Table of Contents Plus）
  プラグインが本文先頭に #toc_container を挿入する。
  プラグイン標準CSS（screen.min.css）は ID セレクタで書かれているため、
  こちらも #toc_container 起点で上書きする（読み込み順はテーマが後）。
  h2 は数字、h3 は英小文字のマーカーで表示する。
================================================ */
#toc_container {
  display: block;
  /* プラグイン標準の display: table を解除 */
  box-sizing: border-box;
  width: 100%;
  max-width: 640px;
  margin: 0 auto 40px;
  padding: 20px;
  border: none;
  /* プラグイン標準の 1px solid #aaa を解除 */
  border-radius: 8px;
  background: var(--c-soft);
  font-size: 1rem;
  /* プラグイン標準の 95% を解除 */
}

#toc_container p.toc_title {
  margin: 0;
  padding: 0;
  font-size: 1rem;
  /* 16px */
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: center;
  color: #000;
}

#toc_container ul.toc_list {
  margin: 8px 0 0;
  padding-left: 1.5em;
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #000;
}

/* プラグインの .no_bullets とテーマの li { list-style: none } を打ち消す */
#toc_container.no_bullets ul.toc_list>li {
  list-style: decimal;
}

#toc_container.no_bullets ul.toc_list ul {
  margin: 0;
  padding-left: 1.5em;
}

#toc_container.no_bullets ul.toc_list ul>li {
  list-style: lower-alpha;
}

/* 連番はCSSのリストマーカーで表示するため、プラグインの番号は隠す */
#toc_container .toc_number {
  display: none;
}

#toc_container a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

#toc_container a:hover {
  opacity: 0.6;
  text-decoration: underline;
}

/* 目次から飛んだ見出し（プラグインは見出し内に span#... を挿入）が
   追従ヘッダーに隠れないようにする */
.bl_postContent :is(h2, h3, h4) span[id] {
  scroll-margin-top: calc(var(--header-h) + 24px);
}

/* ================================================
  監修者情報（bl_supervisor）
  見出しはタブ状に box の左上へ重ねる。
================================================ */
.bl_supervisor {
  margin-top: 42px;
}

.bl_supervisor_tab {
  display: block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  min-width: 200px;
  padding: 6px 16px 0;
  border-radius: 8px 8px 0 0;
  background: var(--c-soft);
  font-size: 1.25rem;
  /* 20px → PC 24px */
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.04em;
  text-align: center;
  color: #000;
}

/* 写真の右に肩書き・氏名を配置し、プロフィール文は幅いっぱいで折り返して下に置く。
   横に収まらない幅では自然に折り返して中央寄せになる（.bl_supervisor_main 参照） */
.bl_supervisor_box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 20px;
  padding: 20px;
  border-radius: 0 8px 8px 8px;
  background: var(--c-soft);
}

.bl_supervisor_photo {
  flex: none;
  width: 140px;
  height: 140px;
  overflow: hidden;
  border-radius: 50%;
  background: #e3e3e3;
}

/* author.webp は正方形（400×400）のため中央のままで顔が収まる */
.bl_supervisor_photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/* SP: head（肩書き・氏名）と txt（プロフィール文）を個別の flex アイテムにして
   head は写真の右、txt は幅いっぱいで折り返して次の行に配置する */
.bl_supervisor_main {
  display: contents;
}

.bl_supervisor_head {
  flex: 1 1 auto;
  min-width: 0;
}

.bl_supervisor_role {
  font-size: 0.79rem;
  /* 14px */
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #000;
}

.bl_supervisor_name {
  margin-top: 4px;
  font-size: 1.25rem;
  /* 20px → PC 24px */
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #000;
}

.bl_supervisor_txt {
  flex: 1 1 100%;
  margin-top: 4px;
  font-size: 1rem;
  /* 16px */
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #000;
}

/* ================================================
  他のコラム（COLUMN カルーセル）：デザイン実寸 1280px
================================================ */
.bl_relColumns {
  max-width: 1280px;
}

/* ================================================
  タブレット / PC
================================================ */
@media screen and (min-width: 768px) {
  .ly_columnSingle {
    padding-top: 80px;
  }

  #toc_container {
    margin-bottom: 80px;
    padding: 20px 40px;
  }

  .bl_supervisor_tab {
    width: 240px;
    font-size: 1.5rem;
    /* 24px */
  }

  /* 写真左・テキスト右の2カラム（head + txt をまとめて右側に配置） */
  .bl_supervisor_box {
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    padding-right: clamp(1.25rem, -2.1786rem + 7.1429vw, 4.25rem);
    gap: 32px;
  }

  .bl_supervisor_photo {
    width: 200px;
    height: 200px;
  }

  .bl_supervisor_main {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
  }

  .bl_supervisor_name {
    font-size: 1.5rem;
    /* 24px */
  }
}

@media screen and (min-width: 1024px) {
  .bl_relColumns {
    padding: 50px 80px;
  }
}