﻿/*------------------------------------*
　コラム共通CSS（詳細ページ用）
\*------------------------------------*/

/* Noto Sans JP フォント適用 */
.column main,
.column .sec_column_detail,
.column .column_sidebar {
  font-family: "Noto Sans JP", sans-serif;
}

/* common.cssのmain要素のmin-width:980pxを上書き */
body main {
    min-width: 0 !important;
    width: 100% !important;
}

.column {
  /* すべての子要素にbox-sizingを適用 */
  * {
    box-sizing: border-box;
  }

  main header {
    background: #fff;
    color: #23262D;
    font-weight: 700;
    text-align-last: left;
    height: fit-content;

    h1 {
      margin: 0;
      padding: 22px 0 0 0;
      font-size: 129%;
      line-height: 1.5em;
      font-weight: bold;
      letter-spacing: 0em;
    }
  }

  .inner {
    max-width: 1232px;
    padding: 0 20px;
    margin: 0 auto;
    box-sizing: border-box;
  }

  /* パンくずリスト */
  #pankuzu {
    max-width: 1366px;
    width: 100%;
    padding: 0 30px;
    margin: 0 auto;
    box-sizing: border-box;
  }
}

/*------------------------------------*
　詳細ページ専用CSS
\*------------------------------------*/

.column_detail_container {
    display: flex;
    gap: 68px;
    padding: 0 20px;
    margin: 60px auto 160px;
    box-sizing: border-box;
}

/* コラム詳細ページのタイトル */
.column_ttl {
    font-size: 40px;
    font-weight: bold;
    margin: 40px 0 60px;
    line-height: 1.4;
    color: #333;
}

.sec_column_detail {
    flex: 2;
    min-width: 0;
    text-align: left;
}

.column_sidebar {
    flex: 1;
    max-width: 324px;
    position: sticky;
    top: 20px;
    align-self: flex-start;
    height: fit-content;
}

/* コラム記事内の基本リストスタイル */
.sec_column_detail ol,
.sec_column_detail ul {
    list-style-position: outside;
    margin: 1em 0;
    padding-left: 1.8em;
    line-height: 1.9;
}

.sec_column_detail li {
    margin: 16px 0;
    line-height: 1.6;
    list-style-position: outside;
}

/* 入れ子リストの調整 */
.sec_column_detail ol ol,
.sec_column_detail ol ul,
.sec_column_detail ul ol,
.sec_column_detail ul ul {
    margin: 5px 0;
    padding-left: 1.5em;
}


/* コラム記事内の画像レスポンシブ設定 */
.sec_column_detail .column_text img {
    max-width: 100%;
    height: auto;
    margin: 10px 0;
    border-radius: 4px;
}

/* コラム記事内のテーブルスタイル */
.sec_column_detail table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    background: #fff;
    border: 1px solid #ddd;
}

.sec_column_detail th,
.sec_column_detail td {
    padding: 12px 15px;
    text-align: left;
    border: 1px solid #ddd;
    vertical-align: top;
}

.sec_column_detail th {
    background: #f8f9fa;
    font-weight: 600;
    color: #333;
}

/* hoverが利用可能なデバイスでのみhover効果を有効化 */
@media (hover: hover) {
    .sec_column_detail tr:hover {
        background-color: rgba(0, 124, 186, 0.05);
    }
}

/* コラム詳細ページのタイトル */
.sec_column_detail .column_ttl {
    font-size: 40px;
    line-height: 1.45em;
    border-bottom: none;
    margin-top: 0;
    margin-bottom: 0;
    padding:0;
    &::after {
      content: none;
    }
}

/* 記事内の目次スタイル */
.sec_column_detail .table-of-contents {
    margin: 64px 0 80px;
    list-style-position: inside;
    list-style-type: none;
    counter-reset: toc-counter;
    padding-left: 0;
    font-size: 18px;
}

.sec_column_detail .table-of-contents li {
    margin:0 !important;
    line-height: 1.6;
    list-style-position: inside;
    border-bottom: 1px solid #DBDBDB;
    padding: 20px 5px 20px 44px;
    position: relative;
    transition: background-color 0.3s ease;
    counter-increment: toc-counter;
    font-weight: 500;
}

.sec_column_detail .table-of-contents li::before {
    content: counter(toc-counter);
    position: absolute;
    left: 15px;
    top: 17px;
    color: #6E6E6E;
    font-weight: 300;
}

.sec_column_detail .table-of-contents li::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid #6E6E6E;
    border-bottom: 2px solid #6E6E6E;
}
.sec_column_detail .table-of-contents li:first-child {
    border-top: 1px solid #DBDBDB;
}
.sec_column_detail .table-of-contents a {
    color: #6E6E6E;
    text-decoration: none;
    padding: 4px 0;
    display: inline;
    border-radius: 4px;
}

/* hoverが利用可能なデバイスでのみhover効果を有効化 */
@media (hover: hover) {
    .sec_column_detail .table-of-contents li:hover {
        background-color: rgba(0, 124, 186, 0.05);
    }

    .sec_column_detail .table-of-contents a:hover {
        color: #007cba;
    }
}

/* 入れ子リストの調整 */
.sec_column_detail .table-of-contents ol,
.sec_column_detail .table-of-contents ul {
    margin-left: 0;
    padding-left: 20px;
    margin-top: 5px;
    list-style-position: inside;
}

.sec_column_detail .table-of-contents > li:first-child {
    margin-top: 0;
}

.sec_column_detail .table-of-contents > li:last-child {
    margin-bottom: 0;
}

.sec_column_detail h1,
.sec_column_detail h2 {
  font-size: 32px;
  border-bottom:1px solid #CCCCCC;
  padding:0 0 16px;
  position: relative;
  margin-top: 80px;
  margin-bottom: 1em;
  line-height: 1.5;
  font-weight: bold;
}

.sec_column_detail h1::after,
.sec_column_detail h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 48px;
  height: 1px;
  background-color: #213866;
}

/* アンカーリンク用の位置調整 */
.sec_column_detail a[id] {
  scroll-margin-top: 60px;
  display: block;
  position: relative;
}

/* h2内のa要素（WordPress標準構造）に対応 */
.sec_column_detail h2 a[id] {
  scroll-margin-top: 80px;
  margin-top: -20px;
  padding-top: 20px;
}

/* 疑似要素による追加調整（scroll-margin-topが効かない場合のフォールバック） */
.sec_column_detail a[id]:target::before {
  content: "";
  display: block;
  height: 60px;
  margin-top: -60px;
  visibility: hidden;
  pointer-events: none;
}

/* h2内のa要素用の調整 */
.sec_column_detail h2 a[id]:target::before {
  height: 80px;
  margin-top: -80px;
}

.sec_column_detail h1[id],
.sec_column_detail h2[id],
.sec_column_detail h3[id],
.sec_column_detail h4[id],
.sec_column_detail h5[id],
.sec_column_detail h6[id] {
  scroll-margin-top: 40px;
  position: relative;
}

/* 見出し要素の追加調整 */
.sec_column_detail h1[id]:target::before,
.sec_column_detail h2[id]:target::before,
.sec_column_detail h3[id]:target::before,
.sec_column_detail h4[id]:target::before,
.sec_column_detail h5[id]:target::before,
.sec_column_detail h6[id]:target::before {
  content: "";
  display: block;
  height: 40px;
  margin-top: -40px;
  visibility: hidden;
  pointer-events: none;
}
.sec_column_detail {
  p, ul, ol {
    font-size: 16px;
    line-height: 1.9;
  }
}

/* サイドバーのスタイル */
.sidebar_section {
    margin-bottom: 40px;
}

.sidebar_title {
    color: #000;
    margin: 0;
    padding: 0 0 25px;
    font-size: 20px;
    font-weight: 400;
    text-align: left;
}

.sidebar_category_list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 5px;
}

.sidebar_recent_posts {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sidebar_recent_posts li {
    text-align: left;
    border-bottom: 1px solid #DBDBDB;
    color: #000;
    padding: 24px 35px 24px 0;
    position: relative;

    &:first-child {
      border-top: 1px solid #DBDBDB;
    }

    /* 右向き矢印 */
    &::after {
        content: "";
        position: absolute;
        right: 16px;
        top: 50%;
        transform: translateY(-50%) rotate(-45deg);
        width: 6px;
        height: 6px;
        border-right: 1px solid #6E6E6E;
        border-bottom: 1px solid #6E6E6E;
    }

    a {
      text-decoration: none;
      color: inherit;
    }
}

/* hoverが利用可能なデバイスでのみhover効果を有効化 */
@media (hover: hover) {
    .sidebar_category_list a:hover {
      color: inherit;
    }

    .sidebar_recent_posts li:hover {
        background-color: rgba(0, 124, 186, 0.05);
    }

    .sidebar_recent_posts a:hover {
        color: #007cba;
    }
}

.sidebar_category_list .count {
    color: #666;
    font-size: 12px;
    margin-left: 5px;
}

.recent_post_title {
    font-size: 14px;
    line-height: 1.4;
}

.recent_post_date {
    font-size: 12px;
    color: #666;
}

/* CTAエリア */

.sidebar_cta {
    padding: 20px;
}

.main_cta {
  width: 100%;
  background-color: #1A305A;
  padding:64px 0;
  text-align: center;
  color: #fff;
  border-radius: 6px;
  margin-top: 80px;
}
.main_cta_title {
  font-size: 32px;
  color: #fff;
  margin-bottom: 16px;
  line-height: 1.5;
}
.main_cta_text {
  margin-bottom: 40px;
}
.cta_title {
    color: #000;
    font-size: 16px;
    font-weight: 400;
    margin: 0 0 24px 0;
    line-height: 1.6;
}

.cta_banner {
    background: #D60F3D;
    height: 60px;
    max-width: 460px;
    width: 100%;
    margin:0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    text-decoration: none;
    position: relative;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 400;
    &::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);
    width: 6px;
    height: 6px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    }
    &:hover {
        opacity: 0.8;
        text-decoration: none;
        color: #fff;
    }
}

/* コラム詳細ページのメタ情報 */
.column_meta {
    display: flex;
    gap: 30px;
    padding: 24px 0 0;
    color: #6E6E6E;
    margin-bottom: 40px;
}

.meta_item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.meta_date {
    font-size: 14px;
}

.meta_categories {
    display: flex;
    gap: 8px;
}

.meta_category {
    color: #6E6E6E;
    padding: 7px 16px;
    border-radius: 4px;
    text-decoration: none;
    border: 1px solid #DBDBDB;
    line-height: 1;
    display:block;
    @media (hover: hover) {
      &:hover {
        background-color: #213866 !important;
        color: #fff !important;
        border: 1px solid #213866 !important;
      }
    }
}
/* ナビゲーション */
  .column_navigation {
    margin-top: 40px;
    .back_to_list {
      max-width: 460px;
      display: flex;
      align-items: center;
      justify-content: space-between; /* アイコンを右端に配置 */
      gap: 8px;
      padding: 12px 20px;
      background: #fff;
      color: #989898;
      text-decoration: none;
      border: 2px solid #ddd;
      border-radius: 6px;
      font-size: 14px;
      font-weight: bold;
      transition: all 0.3s ease;
      margin:0 auto;

      /* テキスト部分 */
      span:not(.arrow_left) {
        flex-grow: 1;
      }

      .arrow_left {
          display: inline-block;
          width: 16px;
          height: 16px;
          order: 2; /* 右端に配置 */
          transition: all 0.3s ease;
          svg {
            width: 100%;
            height: 100%;
            vertical-align: top;
            transition: all 0.3s ease;

            path {
              transition: fill 0.3s ease;
            }
          }
      }

      &:hover {
        .arrow_left {
          transform: translateX(-3px);
        }
      }
    }
  }


.u-sp {
  display: none;
}

/* hoverが利用可能なデバイスでのみhover効果を有効化 */
@media (hover: hover) {
    .meta_category:hover {
        opacity: 0.8;
        text-decoration: none;
    }
}

/* タブレット横デスクトップ上限 (1020px以下) */
@media (max-width: 1020px) {
    .column_detail_container {
        flex-direction: column;
        gap: 30px;
        padding: 0 15px;

    }

    .column_sidebar {
        max-width: none;
        order: 2;
    }

    .sec_column_detail {
        order: 1;
    }
}

/* モバイル (767px以下) */
@media (max-width: 767px) {
    .column_sidebar {
        margin-bottom: 0;
    }
    /** 全体 **/
    .sec_column_detail {
        font-size: calc(30/750*100vw);
        line-height: 1.7;
    }

    /* テーブルのレスポンシブ対応 */
    .sec_column_detail table {
        font-size: calc(14/750*100vw);
        margin: calc(20/750*100vw) 0;
    }

    .sec_column_detail th,
    .sec_column_detail td {
        padding: calc(8/750*100vw) calc(10/750*100vw);
    }

    /* パンくずリスト */
    .column #pankuzu {
        padding: 0 calc(20/750*100vw);
    }

    /* 基本レイアウト */
    .column .inner {
        padding: 0 calc(40/750*100vw);
    }

    .column_detail_container {
        padding: 0 calc(15/750*100vw);
        gap: calc(80/750*100vw);
        margin:calc(66/750*100vw) auto calc(160/750*100vw);
    }

    /* リスト関連 */
    .sec_column_detail ol,
    .sec_column_detail ul {
        margin: calc(30/750*100vw) 0;
    }

    .sec_column_detail li {
        margin: calc(5/750*100vw) 0;
    }

    .sec_column_detail ol ol,
    .sec_column_detail ol ul,
    .sec_column_detail ul ol,
    .sec_column_detail ul ul {
        margin: calc(5/750*100vw) 0;
        padding-left: calc(1.5em);
    }

    /* 画像 */
    .sec_column_detail .column_text img {
        margin: calc(10/750*100vw) 0;
    }

    /* ヘッダー */
    .column main header h1 {
        font-size: calc(52/750*100vw);
        line-height: 1.4;
        padding: calc(64/750*100vw) 0 0;
    }

    /* コラム詳細ページのタイトル */
    .sec_column_detail .column_ttl {
        font-size: calc(52/750*100vw);
        padding: 0 0 calc(24/750*100vw);
        font-weight: bold;
    }


    /* 目次スタイル */
    .sec_column_detail .table-of-contents {
        padding: 0;
        margin: calc(60/750*100vw) 0;
        font-size: calc(28/750*100vw);
    }

    .sec_column_detail .table-of-contents li {
        line-height: 1.4;
        text-align: left;
        margin: calc(8/750*100vw) 0 calc(140/750*100vw);
        padding: calc(20/750*100vw) calc(60/750*100vw) calc(20/750*100vw) calc(60/750*100vw);
    }

    .sec_column_detail .table-of-contents li::before {
        left: calc(15/750*100vw);
        top: calc(20/750*100vw);
        font-size: calc(28/750*100vw);
    }

    .sec_column_detail .table-of-contents li::after {
        right: calc(15/750*100vw);
        width: calc(10/750*100vw);
        height: calc(10/750*100vw);
        border-right: calc(2/750*100vw) solid #6E6E6E;
        border-bottom: calc(2/750*100vw) solid #6E6E6E;
    }

    .sec_column_detail .table-of-contents a {
        font-size: calc(28/750*100vw);
        &::after {
          font-size: calc(28/750*100vw);
        }
    }

    .sec_column_detail .table-of-contents ol,
    .sec_column_detail .table-of-contents ul {
        padding-left: calc(20/750*100vw);
        margin-top: calc(5/750*100vw);
    }

    /* サイドバー */
    .sidebar_section {
        margin-bottom: calc(64/750*100vw);
    }
    .sidebar_section:nth-last-of-type(2) {
        margin-bottom: 0;
    }

    .sidebar_title {
        font-size: calc(34/750*100vw);
        padding: 0 calc(10/750*100vw) calc(24/750*100vw);
    }

    .recent_post_title {
        font-size: calc(26/750*100vw);
        line-height: 1.7;
    }

    .recent_post_date {
        font-size: calc(12/750*100vw);
    }

    /* サイドバーの矢印をレスポンシブ対応 */
    .sidebar_recent_posts li::after {
        right: calc(16/750*100vw);
        width: calc(10/750*100vw);
        height: calc(10/750*100vw);
        border-right: calc(1/750*100vw) solid #6E6E6E;
        border-bottom: calc(1/750*100vw) solid #6E6E6E;
    }

    /* CTAエリア */
    .main_cta {
      padding: calc(60/750*100vw) calc(55/750*100vw) calc(95/750*100vw);
      margin-top: calc(100/750*100vw);
      box-sizing: border-box;
      width: 95vw;
      margin-left: calc((95vw - 100%) / -2);
      margin-right: calc((95vw - 100%) / -2);
    }
    .main_cta_title {
      font-size: calc(50/750*100vw);
      font-weight: 400;
    }
    .main_cta_text {
        font-size: calc(28/750*100vw);
        margin-bottom: calc(40/750*100vw);
        font-weight: 500;
    }
    .sidebar_section.cta {
      display: none;
    }
    .sidebar_cta {
        padding: calc(20/750*100vw);
    }

    .cta_banner {
        padding: calc(40/750*100vw) calc(20/750*100vw);
        height: auto;
        max-width: calc(550/750*100vw);
        box-sizing: border-box;
        font-size: calc(30/750*100vw);
        padding: calc(30/750*100vw) calc(20/750*100vw);
        font-weight: bold;
        &::after {
          right: calc(40/750*100vw);
          width: calc(14/750*100vw);
          height: calc(14/750*100vw);
          border-right: 2px solid #fff;
          border-bottom: 2px solid #fff;
        }
      }
      .sidebar_recent_posts li {
        padding:calc(32/750*100vw) calc(45/750*100vw) calc(32/750*100vw) 0;
      }

    /* メタ情報 */
    .column_meta {
        gap: calc(12/750*100vw);
        margin: 0 0 calc(48/750*100vw);
        padding: 0;
    }

    .meta_date {
        font-size: calc(24/750*100vw);
        padding-top: calc(6/750*100vw);
    }


    .meta_item {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(4/750*100vw);
        font-size: calc(14/750*100vw);
    }

    .meta_label {
        min-width: auto;
        font-size: calc(13/750*100vw);
    }

    .meta_categories {
        gap: calc(8/750*100vw);
    }

    .meta_category {
        font-size: calc(26/750*100vw);
        padding: calc(12/750*100vw) calc(18/750*100vw);
    }

    /* 見出しスタイル */
    .sec_column_detail h1,
    .sec_column_detail h2 {
        font-size: calc(44/750*100vw);
        padding: 0 0 calc(24/750*100vw);
        margin-top: calc(100/750*100vw);
        margin-bottom: calc(56/750*100vw);
    }

    .sec_column_detail h1::after,
    .sec_column_detail h2::after {
        width: calc(48/750*100vw);
    }

    /* アンカーリンクの位置調整（モバイル） */
    .sec_column_detail a[id] {
        scroll-margin-top: calc(40/750*100vw);
    }

    .sec_column_detail h2 a[id] {
        scroll-margin-top: calc(60/750*100vw);
        margin-top: calc(-20/750*100vw);
        padding-top: calc(20/750*100vw);
    }

    .sec_column_detail a[id]:target::before {
        height: calc(40/750*100vw);
        margin-top: calc(-40/750*100vw);
    }

    .sec_column_detail h2 a[id]:target::before {
        height: calc(60/750*100vw);
        margin-top: calc(-60/750*100vw);
    }

    .sec_column_detail h1[id],
    .sec_column_detail h2[id],
    .sec_column_detail h3[id],
    .sec_column_detail h4[id],
    .sec_column_detail h5[id],
    .sec_column_detail h6[id] {
        scroll-margin-top: calc(30/750*100vw);
    }

    .sec_column_detail h1[id]:target::before,
    .sec_column_detail h2[id]:target::before,
    .sec_column_detail h3[id]:target::before,
    .sec_column_detail h4[id]:target::before,
    .sec_column_detail h5[id]:target::before,
    .sec_column_detail h6[id]:target::before {
        height: calc(30/750*100vw);
        margin-top: calc(-30/750*100vw);
    }
    .sec_column_detail p, .sec_column_detail ul, .sec_column_detail ol {
      font-size: calc(30/750*100vw);
      line-height: 1.7;
    }
    .u-sp {
      display: block;
    }

    /* ナビゲーション（モバイル版） */
    .column_navigation .back_to_list {
        font-size: calc(30/750*100vw);
        padding: calc(24/750*100vw) calc(40/750*100vw);
        gap: calc(16/750*100vw);
        max-width: calc(550/750*100vw);
        .arrow_left {
          width: calc(20/750*100vw);
          height: calc(20/750*100vw);
          svg {
            width: 100%;
            height: 100%;
            vertical-align: top;
          }
        }
    }
}
