/* ==================================================
   つくりば TOPページ CSS｜管理用目次
   WordPress：AFFINGER6 / 子テーマ affinger-child

   【基本設定・セクション別】
   01. 共通設定
   02. HOMEページ共通レイアウト
   03. HERO
   04. ABOUT
   05. CATEGORY
   06. 5 STEPS
   07. PICK UP
   08. OUR VISION

   【画面幅・共通調整】
   09. タブレット調整：各セクションの見出し・説明文の配置
   10. PC調整（セクション間隔・リンク配置）
   11. スマホ調整：左右余白・セクション間隔・各セクション配置
   12. 共通微調整：説明文の行間統一
   13. スマホ微調整：一覧と下部リンクの間隔
   14. CATEGORY画像サイズ調整
   15. HOME固有表示：制作者情報

   ※既存CSSの順序・セレクタ・宣言は変更しない。
   ※後半の調整ブロックは、前半の設定を上書きする場合がある。
================================================== */

/* ==================================================
   つくりば TOPページ CSS
   WordPress：AFFINGER6 / クラシックエディタ
   ※現在のデザイン・表示を維持するための整理版
================================================== */

/* ==================================================
   01. 共通設定
================================================== */

/* ABOUT・CATEGORY・5 STEPS：英語見出し */
body.home .ts-about .ts-en,
body.home .ts-category .ts-en,
body.home .ts-steps .ts-en {
  display: block !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: .2em !important;
  color: #71818b !important;
}

/* 共通の英語ラベル基本設定 */
.ts-en {
  font-family: "Instrument Sans", sans-serif;
  font-size: 11px;
  letter-spacing: .2em;
  color: #71818b;
  margin-bottom: 25px;
}

/* ==================================================
   02. HOMEページ共通レイアウト
================================================== */

/* サイドバーを非表示 */
body.home #side {
  display: none !important;
}

/* メインコンテンツ・本文を全幅に */
body.home #content,
body.home #contentInner,
body.home #contentInner > main,
body.home #main,
body.home .entry-content {
  width: 100% !important;
  max-width: none !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  margin-bottom: 0 !important;
}

/* メインコンテンツの横幅・配置 */
body.home #content,
body.home #contentInner,
body.home #main,
body.home .entry-content {
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body.home #main {
  float: none !important;
}

/* HOME内の各セクションの幅制限を解除 */
body.home .ts-hero,
body.home .ts-category,
body.home .ts-steps,
body.home .ts-pickup,
body.home .ts-vision {
  max-width: none !important;
}

/* HERO上部の余白をリセット */
body.home .entry-content > .ts-hero:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ==================================================
   03. HERO：メインビジュアル
================================================== */

.ts-hero {
  display: grid;
  grid-template-columns: 0.8fr 1.5fr;
  min-height: 450px;
  align-items: stretch;
  background: #ffffff;
  overflow: hidden;
}

/* 左側テキスト */
.ts-hero__text {
  padding: 65px 8%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ts-hero h1 {
  font-size: clamp(30px, 3.5vw, 48px);
  line-height: 1.45;
  color: #263746;
  margin: 0;
}

.ts-hero__sub {
  font-size: 18px;
  letter-spacing: .12em;
  margin: 15px 0;
}

.ts-hero__description {
  font-size: 14px;
  line-height: 2;
  margin: 20px 0 28px;
}

/* HERO専用CTA */
body.home .ts-hero .ts-hero-button {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  width: fit-content;
  color: #263746 !important;
  text-decoration: none;
  font-size: 14px !important;
  border: none;
  padding: 0;
  line-height: 1 !important;
  vertical-align: middle;
}

/* HERO専用：丸い矢印 */
body.home .ts-hero .ts-hero-button__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  background: #ffffff !important;
  color: #263746 !important;
  border: 1px solid #263746 !important;
  border-radius: 50%;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  transition: .2s;
}

/* HERO専用：リンク文字 */
body.home .ts-hero .ts-hero-button__text {
  display: flex !important;
  align-items: center !important;
  height: 42px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* HERO専用：ホバー */
body.home .ts-hero .ts-hero-button:hover .ts-hero-button__icon {
  background: #477b9c !important;
  border-color: #477b9c !important;
  color: #ffffff !important;
}

/* 右側写真：斜めカット */
.ts-hero__image {
  min-height: 460px;
  overflow: hidden;
  clip-path: polygon(13% 0, 100% 0, 100% 100%, 0 100%);
  margin-left: -1px;
}

.ts-hero__image img {
  width: 100%;
  height: 100%;
  min-height: 460px;
  display: block;
  object-fit: cover;
}

/* HERO：スマホ */
@media screen and (max-width: 767px) {
  .ts-hero {
    grid-template-columns: 1fr !important;
  }

  .ts-hero__text {
    padding: 45px 7%;
  }

  .ts-hero h1 {
    font-size: 32px;
  }

  .ts-hero__image {
    min-height: 260px;
    clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%);
  }

  .ts-hero__image img {
    min-height: 260px;
  }
}

/* ==================================================
   04. ABOUT：つくりばについて
================================================== */

.ts-about {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  width: 100%;
  max-width: 1280px !important;
  margin: 0 auto;
  padding: 20px 0;
  gap: 0;
  align-items: center;
  background: #fff;
  box-sizing: border-box;
}

/* 左側：メッセージ */
body.home .ts-about__heading {
  border-left: 2px solid #71818b;
  padding-left: 25px;
  margin-left: 0;
  box-sizing: border-box;
}

.ts-about__heading .ts-en {
  display: block;
  margin-bottom: 15px;
}

.ts-about__heading h2 {
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.7;
  color: #263746;
  margin: 0;
}

/* 右側：紹介文 */
.ts-about__text {
  padding-left: 35px;
  border-left: 1px solid #dce3e7;
  position: relative;
  left: -100px;
  color: #596b76 !important;
  line-height: 2.2 !important;
}

.ts-about__text p {
  color: #263746 !important;
}

.ts-about__text p {
  font-size: 14px;
  line-height: 2.2;
  margin: 0 0 20px;
}

.ts-about__text p:last-child {
  margin-bottom: 0;
}

/* ABOUT：つくりばの紹介リンク */
body.home .ts-about__link {
  width: 100%;
  margin-top: 25px;
  margin-left: 0px;
  display: flex;
  justify-content: flex-start;
  box-sizing: border-box;
}

/* ABOUT専用リンク */
body.home .ts-about__link .ts-link-button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  text-decoration: none;
}

/* ABOUT専用：丸い矢印 */
body.home .ts-about__link .ts-link-button__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  background: #ffffff !important;
  color: #263746 !important;
  border: 1px solid #263746 !important;
  border-radius: 50%;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  transition: .2s;
}

/* ABOUT専用：リンク文字 */
body.home .ts-about__link .ts-link-button__text {
  display: flex !important;
  align-items: center !important;
  height: 36px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ABOUT専用：ホバー */
body.home .ts-about__link .ts-link-button:hover .ts-link-button__icon {
  background: #263746 !important;
  color: #ffffff !important;
}

/* ABOUT：タブレット・スマホ共通 */
@media screen and (max-width: 1024px) {
  body.home .ts-about {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  body.home .ts-about__text {
    position: static !important;
    left: auto !important;
    margin: 0 !important;
    padding-left: 25px !important;
    box-sizing: border-box !important;
  }
}

/* ABOUT：スマホ */
@media screen and (max-width: 767px) {
  body.home .ts-about {
    padding: 60px 7% !important;
  }

  body.home .ts-about__heading h2 {
    font-size: 29px !important;
  }
}

/* ==================================================
   05. CATEGORY：カテゴリー一覧
   AFFINGER6 / クラシックエディタ対応
================================================== */

/* セクション全体 */
body.home .ts-category {
  display: block !important;
  width: 100% !important;
  padding: 75px 0 0 !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

/* CATEGORY：見出し全体 */
body.home .ts-category > .ts-section-heading.ts-category__section-heading {
  display: grid !important;
  grid-template-columns: 1fr 1.1fr !important;
  grid-template-areas:
    "heading description"
    "link ." !important;
  column-gap: 0 !important;
  row-gap: 25px !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto 5px !important;
  box-sizing: border-box !important;
}

/* CATEGORY：左側見出し */
body.home .ts-category__heading {
  grid-area: heading !important;
  display: block !important;
  width: fit-content !important;
  border-left: 2px solid #71818b !important;
  padding-left: 25px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

body.home .ts-category__heading .ts-en {
  display: block !important;
  margin: 0 0 15px 0 !important;
}

/* CATEGORY：右側説明文 */
body.home .ts-category__description {
  grid-area: description !important;
  display: block !important;
  border-left: 1px solid #dce3e7 !important;
  padding: 0 0 0 35px !important;
  margin: 0 0 0 -100px !important;
  position: relative !important;
  color: #596b76 !important;
  font-size: 16px !important;
  line-height: 2.2 !important;
  box-sizing: border-box !important;
}

/* CATEGORY：左下リンク */
body.home .ts-category__link {
  grid-area: link !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 0 0 0px !important;
  padding: 0 !important;
  border: none !important;
  box-sizing: border-box !important;
}

/* CATEGORY：リンク本体 */
body.home .ts-category__link .ts-link-button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: fit-content !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* CATEGORY：丸い矢印 */
body.home .ts-category__link .ts-link-button__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  background: #ffffff !important;
  color: #263746 !important;
  border: 1px solid #263746 !important;
  border-radius: 50% !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  transition: .2s;
}

/* CATEGORY：リンク文字 */
body.home .ts-category__link .ts-link-button__text {
  display: flex !important;
  align-items: center !important;
  height: 36px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* CATEGORY：ホバー */
body.home .ts-category__link .ts-link-button:hover .ts-link-button__icon {
  background: #263746 !important;
  color: #ffffff !important;
}

/* カテゴリー一覧：2列配置
   左列：01〜04 / 右列：05〜07 */
body.home .ts-category .ts-category__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(4, auto) !important;
  grid-auto-flow: column !important;
  column-gap: 45px !important;
  row-gap: 0 !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* WordPressが一覧内に挿入したpタグを除外 */
body.home .ts-category .ts-category__grid > p {
  display: none !important;
}

/* 各カテゴリー：番号｜文章｜写真｜矢印 */
body.home .ts-category .ts-category__item {
  display: grid !important;
  grid-template-columns: 35px minmax(0, 1fr) 105px 20px !important;
  grid-template-areas: "number info image arrow" !important;
  grid-template-rows: minmax(85px, auto) !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 110px !important;
  margin: 0 !important;
  padding: 15px 0 !important;
  border: none !important;
  border-bottom: 1px solid #d5dfe4 !important;
  float: none !important;
  box-sizing: border-box !important;
}

/* クラシックエディタの自動整形対策 */
body.home .ts-category .ts-category__item > p {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

body.home .ts-category .ts-category__item br {
  display: none !important;
}

body.home .ts-category .ts-category__item p:empty {
  display: none !important;
}

/* 番号 */
body.home .ts-category .ts-category__number {
  grid-area: number !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 21px !important;
  line-height: 1.5 !important;
  color: #8596a0 !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* タイトル・説明文 */
body.home .ts-category .ts-category__info {
  grid-area: info !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.home .ts-category .ts-category__info h3 {
  display: block !important;
  width: 100% !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  font-weight: 600 !important;
  color: #263746 !important;
  margin: 0 0 6px !important;
  padding: 0 0 7px !important;
  border: none !important;
  border-bottom: 3px solid #2879b9 !important;
  background: none !important;
}

body.home .ts-category .ts-category__info p {
  display: block !important;
  font-size: 12px !important;
  line-height: 1.8 !important;
  color: #6d7c86 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 写真 */
body.home .ts-category .ts-category__item img {
  grid-area: image !important;
  display: block !important;
  width: 105px !important;
  min-width: 105px !important;
  max-width: 105px !important;
  height: 65px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  float: none !important;
  position: static !important;
  object-fit: cover !important;
}

/* 矢印 */
body.home .ts-category .ts-category__arrow {
  grid-area: arrow !important;
  display: block !important;
  width: 20px !important;
  min-width: 0 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  color: #71818b !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
}

/* ホバー */
body.home .ts-category .ts-category__item:hover {
  opacity: .75;
}

/* CATEGORY：タブレット・スマホ共通 */
@media screen and (max-width: 1024px) {
  body.home .ts-category > .ts-section-heading.ts-category__section-heading {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "heading"
      "description"
      "link" !important;
  }

  body.home .ts-category__description {
    margin: 0 !important;
    padding-left: 25px !important;
  }
}

/* CATEGORY：スマホ */
@media screen and (max-width: 767px) {
  body.home .ts-category {
    padding: 55px 6% !important;
  }

  body.home .ts-category__heading {
    padding-left: 20px !important;
  }

  body.home .ts-category__heading h2 {
    font-size: 25px !important;
  }

  body.home .ts-category__link {
    padding-left: 0px !important;
  }

  body.home .ts-category .ts-category__grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    column-gap: 0 !important;
  }

  body.home .ts-category .ts-category__item {
    grid-template-columns: 30px minmax(0, 1fr) 90px 16px !important;
    grid-template-rows: minmax(65px, auto) !important;
    gap: 8px !important;
    min-height: 85px !important;
  }

  body.home .ts-category .ts-category__number {
    font-size: 18px !important;
  }

  body.home .ts-category .ts-category__info h3 {
    font-size: 13px !important;
  }

  body.home .ts-category .ts-category__info p {
    font-size: 10px !important;
  }

  body.home .ts-category .ts-category__item img {
    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;
    height: 60px !important;
  }
}

/* ==================================================
   06. 5 STEPS：生産ライン設計ロードマップ
   AFFINGER6対応
================================================== */

/* セクション全体 */
body.home .ts-steps {
  display: block !important;
  width: 100% !important;
  padding: 40px 0 20px !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

/* 見出しエリア */
body.home .ts-steps .ts-section-heading {
  display: grid !important;
  grid-template-columns: 1fr 1.1fr !important;
  grid-template-areas:
    "heading description"
    "link ." !important;
  column-gap: 0 !important;
  row-gap: 25px !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto 5px !important;
  box-sizing: border-box !important;
}

/* 見出し全体 */
body.home .ts-steps__heading {
  border: none !important;
  padding: 0 !important;
}

/* 5 STEPS：見出し全体 */
body.home .ts-steps__title {
  grid-area: heading !important;
  display: block !important;
  width: fit-content !important;
  border-left: 2px solid #71818b !important;
  padding-left: 25px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* 5 STEPS：右側説明文 */
body.home .ts-steps__intro {
  grid-area: description !important;
  display: block !important;
  border-left: 1px solid #dce3e7 !important;
  padding: 0 0 0 35px !important;
  margin: 0 0 0 -100px !important;
  color: #263746 !important;
  font-size: 16px !important;
  line-height: 2.2 !important;
  box-sizing: border-box !important;
}

/* 英語見出し */
body.home .ts-steps__title .ts-steps__en {
  display: block !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: .2em !important;
  color: #71818b !important;
  margin: 0 0 15px 0 !important;
  padding: 0 !important;
}

/* 日本語見出し */
body.home .ts-steps__title .ts-steps__ja {
  display: block !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.7 !important;
  color: #263746 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 全体像を見るリンク：配置 */
body.home .ts-steps__link {
  grid-area: link !important;
  display: flex !important;
  justify-content: flex-start !important;
  width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* リンク本体：ABOUTと同じデザイン */
body.home .ts-steps__link .ts-link-button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 丸い矢印：ABOUTと同じデザイン */
body.home .ts-steps__link .ts-link-button__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  background: #ffffff !important;
  color: #263746 !important;
  border: 1px solid #263746 !important;
  border-radius: 50% !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  transition: .2s;
}

/* リンク文字：ABOUTと同じデザイン */
body.home .ts-steps__link .ts-link-button__text {
  display: flex !important;
  align-items: center !important;
  height: 36px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ホバー */
body.home .ts-steps__link .ts-link-button:hover .ts-link-button__icon {
  background: #263746 !important;
  color: #ffffff !important;
}

/* STEP一覧：横5列 */
body.home .ts-steps .ts-steps__grid {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  position: relative !important;
  box-sizing: border-box !important;
}

/* STEPをつなぐ水平線 */
body.home .ts-steps .ts-steps__grid::before {
  content: "";
  position: absolute !important;
  top: 20px !important;
  left: 10% !important;
  right: 10% !important;
  height: 1px !important;
  background: #aab8c0 !important;
  z-index: 0 !important;
}

/* 各STEP */
body.home .ts-steps .ts-steps__item {
  display: block !important;
  flex: 1 1 20% !important;
  width: 20% !important;
  max-width: 20% !important;
  min-width: 0 !important;
  text-align: center !important;
  padding: 0 12px !important;
  margin: 0 !important;
  border-right: 1px solid #dce2e5 !important;
  position: relative !important;
  box-sizing: border-box !important;
}

body.home .ts-steps .ts-steps__item:last-child {
  border-right: none !important;
}

/* STEP番号：楕円 */
body.home .ts-steps .ts-steps__label {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 125px !important;
  height: 40px !important;
  margin: 0 auto 15px !important;
  padding: 0 !important;
  border: 1px solid #8499a6 !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  color: #526b7b !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  position: relative !important;
  z-index: 2 !important;
  box-sizing: border-box !important;
}

/* STEPタイトル */
body.home .ts-steps .ts-steps__item h3 {
  display: block !important;
  width: 100% !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  font-weight: 600 !important;
  color: #263746 !important;
  margin: 0 0 10px !important;
  padding: 0 0 7px !important;
  border: none !important;
  border-bottom: 3px solid #2879b9 !important;
  background: none !important;
  box-sizing: border-box !important;
}

/* STEP説明文 */
body.home .ts-steps .ts-steps__item .ts-steps__description {
  display: block !important;
  font-size: 12px !important;
  line-height: 1.8 !important;
  color: #71808a !important;
  margin: 0 !important;
  padding: 0 !important;
  border-left: none !important;
}

/* ==================================================
   07. PICK UP：おすすめ記事
   AFFINGER6 / クラシックエディタ対応
================================================== */

/* セクション全体 */
body.home .ts-pickup {
  display: block !important;
  width: 100% !important;
  padding: 70px 0 5px !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

/* PICK UP：見出し全体 */
body.home .ts-pickup .ts-section-heading {
  display: grid !important;
  grid-template-columns: 1fr 1.1fr !important;
  grid-template-areas:
    "heading description"
    "link ." !important;
  column-gap: 0 !important;
  row-gap: 25px !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto 10px !important;
  box-sizing: border-box !important;
}

/* PICK UP：記事一覧リンクの配置 */
body.home .ts-pickup__link {
  grid-area: link !important;
  display: flex !important;
  justify-content: flex-start !important;
  width: 100% !important;
  margin: 0 !important;
  margin-left: 0 !important;
  box-sizing: border-box !important;
}

/* PICK UP：リンク本体 */
body.home .ts-pickup__link .ts-link-button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* PICK UP：丸い矢印 */
body.home .ts-pickup__link .ts-link-button__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  height: 36px !important;
  background: #ffffff !important;
  color: #263746 !important;
  border: 1px solid #263746 !important;
  border-radius: 50% !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  transition: .2s;
}

/* PICK UP：リンク文字 */
body.home .ts-pickup__link .ts-link-button__text {
  display: flex !important;
  align-items: center !important;
  height: 36px !important;
  font-size: 13px !important;
  color: #263746 !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* PICK UP：ホバー */
body.home .ts-pickup__link .ts-link-button:hover .ts-link-button__icon {
  background: #263746 !important;
  color: #ffffff !important;
}

/* PICK UP：英語・日本語見出し */
body.home .ts-pickup__heading {
  grid-area: heading !important;
  display: block !important;
  border-left: 2px solid #71818b !important;
  padding-left: 25px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* PICK UP：右側説明文 */
body.home .ts-pickup__description {
  grid-area: description !important;
  display: block !important;
  border-left: 1px solid #dce3e7 !important;
  padding: 0 0 0 35px !important;
  margin: 0 0 0 -100px !important;
  color: #596b76 !important;
  font-size: 16px !important;
  line-height: 2.2 !important;
  box-sizing: border-box !important;
}

/* PICK UP：英語見出し */
body.home .ts-pickup__heading .ts-en {
  display: block !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: .2em !important;
  color: #71818b !important;
  margin: 0 0 15px 0 !important;
  padding: 0 !important;
}

/* PICK UP：日本語見出し */
body.home .ts-pickup__heading strong {
  display: block !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.7 !important;
  color: #263746 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 記事一覧：3列 */
body.home .ts-pickup .ts-pickup__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  gap: 20px !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* 自動挿入された余分なpタグ */
body.home .ts-pickup .ts-pickup__grid > p {
  display: none !important;
}

/* 記事カード */
body.home .ts-pickup .ts-pickup__card {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
  background: #ffffff !important;
  border: 1px solid #e0e6e9 !important;
  overflow: hidden !important;
  transition: transform .2s ease;
}

/* 画像 */
body.home .ts-pickup .ts-pickup__image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* 画像を囲むpタグへの対応 */
body.home .ts-pickup .ts-pickup__image p {
  margin: 0 !important;
  padding: 0 !important;
}

body.home .ts-pickup .ts-pickup__image img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: cover !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  float: none !important;
}

/* 記事情報 */
body.home .ts-pickup .ts-pickup__body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding: 18px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* タイトル */
body.home .ts-pickup .ts-pickup__body h3 {
  display: block !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  font-weight: 600 !important;
  color: #263746 !important;
  margin: 0 0 10px !important;
  padding: 0 0 8px !important;
  border: none !important;
  border-bottom: 3px solid #2879b9 !important;
  background: none !important;
}

body.home .ts-pickup .ts-pickup__body h3 a {
  color: inherit !important;
  text-decoration: none !important;
}

/* 説明文 */
body.home .ts-pickup .ts-pickup__body p {
  font-size: 12px !important;
  line-height: 1.8 !important;
  color: #6d7c86 !important;
  margin: 0 0 15px !important;
  padding: 0 !important;
}

/* READ MORE */
body.home .ts-pickup .ts-pickup__more {
  display: block !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 10px !important;
  letter-spacing: .1em !important;
  color: #526b7b !important;
  text-decoration: none !important;
  margin-top: auto !important;
  padding: 0 !important;
}

/* ホバー */
body.home .ts-pickup .ts-pickup__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(38, 55, 70, .08);
}

/* PICK UP：タブレット */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  body.home .ts-pickup .ts-pickup__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* PICK UP：タブレット・スマホの見出し配置 */
@media screen and (max-width: 1024px) {
  body.home .ts-pickup .ts-section-heading {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "heading"
      "description"
      "link" !important;
  }

  body.home .ts-pickup__description {
    margin: 0 !important;
    padding-left: 25px !important;
  }
}

/* PICK UP：スマホ */
@media screen and (max-width: 767px) {
  body.home .ts-pickup {
    padding: 55px 6% !important;
  }

  body.home .ts-pickup .ts-pickup__grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  body.home .ts-pickup .ts-section-heading h2 {
    font-size: 23px !important;
  }

  body.home .ts-pickup .ts-pickup__body {
    padding: 15px !important;
  }
}

/* ==================================================
   08. OUR VISION：ビジョン
================================================== */

/* 左右2列レイアウト */
body.home .ts-vision .ts-section-heading {
  display: grid !important;
  grid-template-columns: 1fr 1.1fr !important;
  grid-template-areas: "heading description" !important;
  column-gap: 0 !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* 左側：見出し */
body.home .ts-vision__heading {
  grid-area: heading !important;
  display: block !important;
  width: fit-content !important;
  border-left: 2px solid #71818b !important;
  padding-left: 25px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* 英語見出し */
body.home .ts-vision__heading .ts-en {
  display: block !important;
  font-family: "Instrument Sans", sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: .2em !important;
  color: #71818b !important;
  margin: 0 0 15px 0 !important;
  padding: 0 !important;
}

/* 日本語見出し */
body.home .ts-vision__heading strong {
  display: block !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.7 !important;
  color: #263746 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 日本語見出し内の文字 */
body.home .ts-vision__heading strong span {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 右側：説明文 */
body.home .ts-vision__description {
  grid-area: description !important;
  display: block !important;
  border-left: 1px solid #dce3e7 !important;
  padding: 0 0 0 35px !important;
  margin: 0 0 0 -100px !important;
  color: #596b76 !important;
  font-size: 16px !important;
  line-height: 2.2 !important;
  box-sizing: border-box !important;
}

/* タブレット・スマホ：見出しと説明文を縦並びに */
@media screen and (max-width: 1024px) {
  body.home .ts-vision .ts-section-heading {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "heading"
      "description" !important;
    row-gap: 25px !important;
  }

  body.home .ts-vision__description {
    margin: 0 !important;
    padding-left: 25px !important;
  }
}

/* ==================================================
   09. タブレット調整：各セクションの見出し・説明文の配置
================================================== */

/* 5 STEPS：タブレット */
@media screen and (min-width: 768px) and (max-width: 1024px) {

  /* 見出しと説明文を縦並びに */
  body.home .ts-steps .ts-section-heading {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "heading"
      "description"
      "link" !important;
  }

  body.home .ts-steps__intro {
    margin: 0 !important;
    padding-left: 25px !important;
  }
}

/* ==================================================
   10. PC調整：セクション間隔・リンク配置
================================================== */

/* PC：PICK UPとOUR VISIONの間隔 */
@media screen and (min-width: 1025px) {
  body.home .ts-pickup {
    padding-top: 15px !important;
    padding-bottom: 45px !important;
  }
}

/* PC：5 STEPSのリンクとSTEP図の間隔 */
@media screen and (min-width: 1025px) {
  body.home .ts-steps .ts-steps__grid {
    margin-top: 35px !important;
  }
}

/* PC：5 STEPSの図の下にリンクを配置 */
@media screen and (min-width: 1025px) {

  body.home .ts-steps .ts-steps__link {
    display: flex !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 1280px !important;
    margin: 35px auto 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

}

/* PC：PICK UPのリンクと記事一覧の間隔 */
@media screen and (min-width: 1025px) {
  body.home .ts-pickup .ts-pickup__grid {
    margin: 35px auto 0 !important;
  }
}

/* PC：PICK UPの記事一覧下にリンクを配置 */
@media screen and (min-width: 1025px) {

  body.home .ts-pickup .ts-pickup__link {
    display: flex !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 1280px !important;
    margin: 35px auto 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

}

/* PC・広い画面：CATEGORYの間隔調整 */
@media screen and (min-width: 1025px) {

  /* 見出しとカテゴリー一覧の間隔 */
  body.home .ts-category .ts-category__grid {
    margin-top: 0px !important;
  }

  /* カテゴリー一覧と下部リンクの間隔 */
  body.home .ts-category .ts-category__link {
    display: flex !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 1280px !important;
    margin: 35px auto 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

}

/* ==================================================
   11. スマホ調整：左右余白・セクション間隔・各セクション配置
================================================== */

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

  /* 各セクションの左右位置を統一 */
  body.home .ts-about,
  body.home .ts-category,
  body.home .ts-steps,
  body.home .ts-pickup,
  body.home .ts-vision {
    padding-left: 6% !important;
    padding-right: 6% !important;
    box-sizing: border-box !important;
  }

  /* 5 STEPS：STEP一覧を縦並びに */
  body.home .ts-steps .ts-steps__grid {
    flex-direction: column !important;
  }

  body.home .ts-steps .ts-steps__grid::before {
    display: none !important;
  }

  body.home .ts-steps .ts-steps__item {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 20px 0 !important;
    border-right: none !important;
    border-bottom: 1px solid #dce2e5 !important;
  }

  body.home .ts-steps .ts-steps__label {
    margin-bottom: 20px !important;
  }

  /* ABOUT → CATEGORY */
  body.home .ts-about {
    padding-bottom: 25px !important;
  }

  /* CATEGORY → 5 STEPS */
  body.home .ts-category {
    padding-top: 45px !important;
    padding-bottom: 0 !important;
  }

  body.home .ts-steps {
    padding-top: 0 !important;
    padding-bottom: 15px !important;
  }

  /* 5 STEPS：見出し・説明文・リンクを縦並び */
  body.home .ts-steps .ts-section-heading {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
  }

  body.home .ts-steps .ts-steps__title {
    margin: 0 !important;
  }

  /* 5 STEPS：説明文 */
  body.home .ts-steps__intro {
    margin: 25px 0 0 !important;
    padding-left: 25px !important;
    color: #596b76 !important;
  }

  /* 5 STEPS：全体像を見るリンク（上下左右の基本余白） */
  body.home .ts-steps .ts-steps__link {
    margin: 0 !important;
  }

  /* 5 STEPS：STEP一覧とSTEP01 */
  body.home .ts-steps .ts-steps__grid {
    margin: 0 !important;
  }

  body.home .ts-steps .ts-steps__item:first-child {
    padding-top: 0 !important;
  }

  /* 5 STEPS → PICK UP */
  body.home .ts-pickup {
    padding-top: 5px !important;
    padding-bottom: 0 !important;
  }

  /* PICK UP：見出し・説明文・リンク */
  body.home .ts-pickup .ts-section-heading {
    margin-bottom: 0 !important;
  }

  /* PICK UP：リンクと記事カードの間隔 */
  body.home .ts-pickup .ts-pickup__grid {
    margin-top: 45px !important;
    padding-top: 0 !important;
  }

  /* PICK UP → OUR VISION */
  body.home .ts-vision {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

/* ==================================================
   12. 共通微調整：説明文の行間統一
================================================== */

/* ABOUTのHTMLはdivなので、親要素に直接指定する */
body.home .ts-about__text,
body.home .ts-category__description,
body.home .ts-steps__intro,
body.home .ts-pickup__description,
body.home .ts-vision__description {
  line-height: 1.8 !important;
}

/* 画面幅1280px以下：ABOUT段落の行間 */
@media screen and (min-width: 100px) and (max-width: 1280px) {

  /* ABOUT：段落にも共通の行間を適用 */
  body.home .ts-about__text p {
    line-height: 1.8 !important;
  }

}

/* ==================================================
   13. スマホ微調整：一覧と下部リンクの間隔
================================================== */

/* 各一覧と下部リンクの間隔を35pxに統一 */
@media screen and (max-width: 767px) {

  /* CATEGORY：カテゴリー一覧と「すべてのカテゴリーを見る」 */
  body.home .ts-category .ts-category__link {
    margin-top: 35px !important;
  }

  /* 5 STEPS：STEP一覧と「全体像を見る」 */
  body.home .ts-steps .ts-steps__link {
    margin-top: 35px !important;
  }

  /* PICK UP：記事一覧と「記事一覧を見る」 */
  body.home .ts-pickup .ts-pickup__link {
    margin-top: 35px !important;
  }

}

/* ==================================================
   14. CATEGORY画像サイズ調整
================================================== */

/* CATEGORY：写真サイズを拡大 */

/* PC・タブレット */
@media screen and (min-width: 768px) {

  body.home .ts-category .ts-category__item {
    grid-template-columns: 35px minmax(0, 1fr) 130px 20px !important;
  }

  body.home .ts-category .ts-category__item img {
    width: 130px !important;
    min-width: 130px !important;
    max-width: 130px !important;
    height: 80px !important;
  }

}

/* ==================================================
   15. HOME固有表示：制作者情報
================================================== */

/* TOPページ：制作者情報を非表示 */
body.home #authorst_widget-4 {
    display: none !important;
}


/* ==================================================
   16. 記事ページ：STEP NAVIGATION
   目標デザインに合わせたレイアウト調整
================================================== */

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

  /* ナビ全体 */
body.single .ts-step-nav {
  width: 100%;
  margin: 0 0 30px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #E1E6E9;
  border-radius: 0;
  box-sizing: border-box;
}

body.single .ts-step-nav__details {
  width: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
}
  /* 見出し：英語タイトル＋日本語サブタイトル */
  body.single .ts-step-nav__summary {
    display: flex;
    align-items: flex-start;
    gap: 0;
    padding: 22px 18px 14px;
    color: #263746;
    background: #ffffff;
    border: 0;
    cursor: default;
    list-style: none;
  }

  body.single .ts-step-nav__summary::-webkit-details-marker {
    display: none;
  }

  /* 目標画像にはないアイコン・開閉矢印を非表示 */
  body.single .ts-step-nav__icon,
  body.single .ts-step-nav__arrow {
    display: none !important;
  }

  /* 元の日本語タイトルを隠し、英語タイトルを表示 */
  body.single .ts-step-nav__summary > span:nth-child(2) {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    color: transparent;
    font-size: 0;
    line-height: 1.4;
  }

  body.single .ts-step-nav__summary > span:nth-child(2)::before {
    content: "STEP NAVIGATION";
    display: block;
    color: #263746;
    font-family: "Instrument Sans", sans-serif;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.4;
    white-space: nowrap;
  }

  body.single .ts-step-nav__summary > span:nth-child(2)::after {
    content: "生産ライン設計の学習ロードマップ";
    display: block;
    margin-top: 5px;
    color: #89949D;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: .04em;
    line-height: 1.5;
    white-space: nowrap;
  }

  /* STEP一覧 */
  body.single .ts-step-nav__list {
    display: block;
    margin: 0;
    padding: 0 18px 14px;
    border: 0;
  }

  /* 各STEP：横長・ゆとりのある行 */
  body.single .ts-step-nav__item {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 10px;
    min-height: 88px;
    margin: 0;
    padding: 12px 0;
    color: #263746;
    background: #ffffff;
    border: 0;
    border-bottom: 1px solid #E1E6E9;
    border-radius: 0;
    box-shadow: none;
    text-decoration: none;
    box-sizing: border-box;
  }

  /* STEP番号：背景なし */
  body.single .ts-step-nav__number {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #B8BEC3 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-family: "Instrument Sans", sans-serif !important;
    font-size: 0 !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  body.single .ts-step-nav__item:nth-child(1) .ts-step-nav__number::before { content: "01"; }
  body.single .ts-step-nav__item:nth-child(2) .ts-step-nav__number::before { content: "02"; }
  body.single .ts-step-nav__item:nth-child(3) .ts-step-nav__number::before { content: "03"; }
  body.single .ts-step-nav__item:nth-child(4) .ts-step-nav__number::before { content: "04"; }
  body.single .ts-step-nav__item:nth-child(5) .ts-step-nav__number::before { content: "05"; }

  body.single .ts-step-nav__number::before {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 30px !important;
    line-height: 1 !important;
  }

  /* STEP名 */
  body.single .ts-step-nav__item > span:nth-child(2) {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
    color: #263746;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
  }

  body.single .ts-step-nav__item > span:nth-child(2)::after {
    display: block;
    margin-top: 5px;
    color: #89949D;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
  }

  body.single .ts-step-nav__item:nth-child(1) > span:nth-child(2)::after { content: "STEP 1"; }
  body.single .ts-step-nav__item:nth-child(2) > span:nth-child(2)::after { content: "STEP 2"; }
  body.single .ts-step-nav__item:nth-child(3) > span:nth-child(2)::after { content: "STEP 3"; }
  body.single .ts-step-nav__item:nth-child(4) > span:nth-child(2)::after { content: "STEP 4"; }
  body.single .ts-step-nav__item:nth-child(5) > span:nth-child(2)::after { content: "STEP 5"; }

  /* 右向き矢印 */
  body.single .ts-step-nav__item::after {
    content: "→";
    color: #263746;
    font-size: 20px;
    text-align: center;
  }

  /* ホバー */
  body.single .ts-step-nav__item:hover {
    background: #F5F8FA;
    color: #263746;
  }

  /* 記事URLに応じた現在STEPの強調表示 */
  body.single.ts-current-step-1 .ts-step-nav__item:nth-child(1),
  body.single.ts-current-step-2 .ts-step-nav__item:nth-child(2),
  body.single.ts-current-step-3 .ts-step-nav__item:nth-child(3),
  body.single.ts-current-step-4 .ts-step-nav__item:nth-child(4),
  body.single.ts-current-step-5 .ts-step-nav__item:nth-child(5) {
    background: #EAF1F6 !important;
    border-left: 3px solid #263746 !important;
    padding-left: 12px;
  }

  body.single.ts-current-step-1 .ts-step-nav__item:nth-child(1) .ts-step-nav__number,
  body.single.ts-current-step-2 .ts-step-nav__item:nth-child(2) .ts-step-nav__number,
  body.single.ts-current-step-3 .ts-step-nav__item:nth-child(3) .ts-step-nav__number,
  body.single.ts-current-step-4 .ts-step-nav__item:nth-child(4) .ts-step-nav__number,
  body.single.ts-current-step-5 .ts-step-nav__item:nth-child(5) .ts-step-nav__number {
    color: #819DB5 !important;
    background: transparent !important;
  }
}

/* スマホ */
@media screen and (max-width: 767px) {

  body.single .ts-step-nav {
    margin-bottom: 25px;
  }

  body.single .ts-step-nav__summary {
    padding: 16px;
  }

  body.single .ts-step-nav__icon,
  body.single .ts-step-nav__arrow {
    display: none !important;
  }

  body.single .ts-step-nav__summary > span:nth-child(2) {
    font-size: 0;
  }

  body.single .ts-step-nav__summary > span:nth-child(2)::before {
    content: "STEP NAVIGATION";
    display: block;
    color: #263746;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .1em;
  }

  body.single .ts-step-nav__summary > span:nth-child(2)::after {
    content: "生産ライン設計の学習ロードマップ";
    display: block;
    margin-top: 4px;
    color: #89949D;
    font-size: 11px;
    font-weight: 400;
  }

  body.single .ts-step-nav__list {
    padding: 0 12px 12px;
  }

  body.single .ts-step-nav__item {
    grid-template-columns: 46px minmax(0, 1fr) 20px;
    min-height: 68px;
    padding: 10px 4px;
  }

  body.single .ts-step-nav__number::before {
    font-size: 26px !important;
  }

  body.single .ts-step-nav__item > span:nth-child(2) {
    font-size: 18px;
  }

  body.single .ts-step-nav__item > span:nth-child(2)::after {
    font-size: 15px;
  }
}

/* ==================================================
   17. 記事ページ：STEP NAVIGATIONの高さ調整
================================================== */

/* PC・タブレット */
@media screen and (min-width: 768px) {
  body.single .ts-step-nav__item {
    min-height: 72px;
    padding: 8px 0;
  }
}

/* スマホ */
@media screen and (max-width: 767px) {
  body.single .ts-step-nav__item {
    min-height: 58px;
    padding: 6px 4px;
  }

  body.single .ts-step-nav__item > span:nth-child(2)::after {
    margin-top: 3px;
  }
}

/* ==================================================
   18. 記事ページ：サイドバー目次
================================================== */

/* 目次全体 */
body.single .ts-sidebar-toc {
  margin-top: 24px;
  padding: 22px 20px;
  background: #FFFFFF;
  border: 1px solid #E2E7EB;
}

/* 目次タイトル */
body.single .ts-sidebar-toc__title {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 14px;
  border-bottom: 1px solid #DCE3E8;
  color: #263746;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
}

/* タイトルアイコン */
body.single .ts-sidebar-toc__title span:first-child {
  color: #819DB5;
  font-size: 18px;
}

/* 目次リスト */
body.single .ts-sidebar-toc__generated {
  margin: 12px 0 0;
  padding: 0 0 0 24px;
  list-style: decimal;
}

/* 目次番号 */
body.single .ts-sidebar-toc__generated li::marker {
  color: #819DB5;
  font-size: 13px;
}

/* 目次項目 */
body.single .ts-sidebar-toc__item {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #EEF1F3;
}

/* 目次リンク */
body.single .ts-sidebar-toc__item a {
  display: block;
  padding: 11px 4px;
  color: #536575;
  font-size: 13px;
  line-height: 1.6;
  text-decoration: none;
  transition: color .2s ease, padding-left .2s ease;
}

/* マウスを乗せたとき */
body.single .ts-sidebar-toc__item a:hover {
  color: #263746;
  padding-left: 9px;
}

/* 最後の項目 */
body.single .ts-sidebar-toc__item:last-child {
  border-bottom: none;
}

/* ==================================================
   19. スマホ：STEP NAVIGATIONレイアウト修正
================================================== */

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

    /* ナビ全体 */
body.single .ts-step-nav {
  display: block !important;
  width: 100% !important;
  margin: 0 0 25px !important;
  padding: 0 !important;
  background: #FFFFFF !important;
  border: 1px solid #E1E6E9 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}
body.single .ts-step-nav__details {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}
  /* 見出し */
  body.single .ts-step-nav__summary {
    display: flex !important;
    align-items: flex-start !important;
    padding: 22px 18px 14px !important;
    background: #FFFFFF !important;
    border: none !important;
    list-style: none !important;
  }

  body.single .ts-step-nav__summary > span:nth-child(2)::before {
    font-size: 17px !important;
  }

  /* STEP一覧 */
  body.single .ts-step-nav__list {
    display: block !important;
    margin: 0 !important;
    padding: 0 18px 14px !important;
    border: none !important;
  }

  /* 各STEP */
  body.single .ts-step-nav__item {
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) 20px !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-height: 68px !important;
    margin: 0 !important;
    padding: 10px 4px !important;
    color: #263746 !important;
    text-align: left !important;
    background: #FFFFFF !important;
    border: none !important;
    border-bottom: 1px solid #E1E6E9 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
  }

  /* STEP番号 */
  body.single .ts-step-nav__number {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #B8BEC3 !important;
    font-size: 0 !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    background: transparent !important;
  }

  body.single .ts-step-nav__item:nth-child(1) .ts-step-nav__number::before {
    content: "01";
  }

  body.single .ts-step-nav__item:nth-child(2) .ts-step-nav__number::before {
    content: "02";
  }

  body.single .ts-step-nav__item:nth-child(3) .ts-step-nav__number::before {
    content: "03";
  }

  body.single .ts-step-nav__item:nth-child(4) .ts-step-nav__number::before {
    content: "04";
  }

  body.single .ts-step-nav__item:nth-child(5) .ts-step-nav__number::before {
    content: "05";
  }

  body.single .ts-step-nav__number::before {
    display: inline-block !important;
    color: inherit !important;
    font-size: 26px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
  }

  /* STEP名 */
  body.single .ts-step-nav__item > span:nth-child(2) {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #263746 !important;
    text-align: left !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    white-space: normal !important;
  }

  /* STEP番号の補足 */
  body.single .ts-step-nav__item > span:nth-child(2)::after {
    display: block !important;
    margin-top: 3px !important;
    color: #89949D !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
  }

  body.single .ts-step-nav__item:nth-child(1) > span:nth-child(2)::after {
    content: "STEP 1";
  }

  body.single .ts-step-nav__item:nth-child(2) > span:nth-child(2)::after {
    content: "STEP 2";
  }

  body.single .ts-step-nav__item:nth-child(3) > span:nth-child(2)::after {
    content: "STEP 3";
  }

  body.single .ts-step-nav__item:nth-child(4) > span:nth-child(2)::after {
    content: "STEP 4";
  }

  body.single .ts-step-nav__item:nth-child(5) > span:nth-child(2)::after {
    content: "STEP 5";
  }

  /* 右向き矢印 */
  body.single .ts-step-nav__item::after {
    content: "→" !important;
    display: block !important;
    color: #263746 !important;
    font-size: 20px !important;
    text-align: center !important;
  }

  /* 現在のSTEP */
  body.single.ts-current-step-1 .ts-step-nav__item:nth-child(1),
  body.single.ts-current-step-2 .ts-step-nav__item:nth-child(2),
  body.single.ts-current-step-3 .ts-step-nav__item:nth-child(3),
  body.single.ts-current-step-4 .ts-step-nav__item:nth-child(4),
  body.single.ts-current-step-5 .ts-step-nav__item:nth-child(5) {
    background: #EAF1F6 !important;
    border-left: 3px solid #263746 !important;
    padding-left: 12px !important;
  }

  /* 現在のSTEP番号 */
  body.single.ts-current-step-1 .ts-step-nav__item:nth-child(1) .ts-step-nav__number,
  body.single.ts-current-step-2 .ts-step-nav__item:nth-child(2) .ts-step-nav__number,
  body.single.ts-current-step-3 .ts-step-nav__item:nth-child(3) .ts-step-nav__number,
  body.single.ts-current-step-4 .ts-step-nav__item:nth-child(4) .ts-step-nav__number,
  body.single.ts-current-step-5 .ts-step-nav__item:nth-child(5) .ts-step-nav__number {
    color: #819DB5 !important;
  }
}


/* ==================================================
   20. 記事ページ：関連記事
================================================== */

/* 関連記事全体 */
body.single .ts-related {
  margin-top: 24px;
  padding: 22px 20px;
  background: #FFFFFF;
  border: 1px solid #E2E7EB;
  box-sizing: border-box;
}

/* 関連記事タイトル */
body.single .ts-related__title {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 14px;
  border-bottom: 1px solid #DCE3E8;
  color: #263746;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
}

/* タイトルアイコン */
body.single .ts-related__title span:first-child {
  color: #819DB5;
  font-size: 18px;
}

/* 関連記事一覧 */
body.single .ts-related__list {
  margin-top: 8px;
}

/* 記事リンク */
body.single .ts-related__item {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin: 0 !important;
  padding: 12px 0;
  border-bottom: 1px solid #EEF1F3;
  color: #536575 !important;
  text-decoration: none !important;
  box-sizing: border-box;
}

/* 最後の記事 */
body.single .ts-related__item:last-child {
  border-bottom: none;
}

/* サムネイル */
body.single .ts-related__item img {
  display: block;
  width: 88px !important;
  height: 58px !important;
  margin: 0 !important;
  object-fit: cover;
}

/* 記事タイトル */
body.single .ts-related__name {
  display: block;
  min-width: 0;
  color: #536575;
  font-size: 13px;
  line-height: 1.6;
}

/* 矢印 */
body.single .ts-related__arrow {
  color: #819DB5;
  font-size: 16px;
  text-align: right;
}

/* ホバー */
body.single .ts-related__item:hover .ts-related__name {
  color: #263746;
}

/* スマホ */
@media screen and (max-width: 767px) {
  body.single .ts-related {
    padding: 18px 15px;
  }

  body.single .ts-related__item {
    grid-template-columns: 76px minmax(0, 1fr) 14px;
    gap: 9px;
  }

  body.single .ts-related__item img {
    width: 76px !important;
    height: 52px !important;
  }

  body.single .ts-related__name {
    font-size: 12px;
  }
}
