/* =========================================
   Single Post (Working Hasegawa)
   ========================================= */

   :root{
    --navy: #141A6D;
    --navy-soft: rgba(15,27,58,.55);
    --line: #eee;
    --hover-bg: #f7f8fb;
  }

  /* 固定ヘッダー分の逃げ */
  body.single-post #contents{
    padding-top: 140px;
  }
  @media (max-width: 768px){
    body.single-post #contents{ padding-top: 120px; }
  }

  /* 上段：タイトルブロック（全幅） */
  body.single-post .post-hero--full{
    width: 100%;
    margin-bottom: 28px;
  }
  body.single-post .post-title{
    font-size: 3.6rem;
    line-height: 1.15;
    margin: 0 0 10px;
    font-weight: 700;
  }
  body.single-post .post-meta{
    color: #777;
    margin-bottom: 24px;
  }

  /* 2カラムレイアウト */
  body.single-post .post-grid{
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 40px;
    align-items: start;
  }
  @media (max-width: 992px){
    body.single-post .post-grid{ grid-template-columns: 1fr; }
  }

  /* アイキャッチ */
  body.single-post .post-thumb img{
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
  }

  /* 本文 */
  body.single-post .entry-content{
    line-height: 1.95;
    font-size: 1.6rem;
  }
  body.single-post .entry-content p,
  body.single-post .entry-content li{
    font-size: 1.6rem;
    line-height: 1.95;
  }
  body.single-post .entry-content p{ margin: 0 0 1.1em; }

  body.single-post .entry-content h1,
  body.single-post .entry-content h2{
    font-size: 2.2rem;
    margin: 2.6rem 0 1.1rem;
    font-weight: 700;
  }
  body.single-post .entry-content h3{
    font-size: 1.8rem;
    margin: 1.8rem 0 .9rem;
    font-weight: 700;
  }

  /* 目次（TOC） */
  body.single-post .toc-box{
    border-left: 1px solid var(--line);
    padding: 18px;
    position: sticky;
    top: 90px;
    background: #fff;
  }
  body.single-post .toc-title{ font-weight: 700; margin-bottom: 10px; }
  body.single-post #toc ul{ margin: 0; padding-left: 18px; }
  body.single-post #toc li{ margin: 8px 0; }
  body.single-post #toc a{ color:#333; text-decoration:none; }
  body.single-post #toc a:hover{ text-decoration: underline; }

  @media (max-width: 992px){
    body.single-post .toc-box{
      position: static;
      border-left: none;
      border-top: 1px solid var(--line);
      padding-top: 24px;
    }
  }

  /* 投稿ナビ */
  body.single-post .post-nav-wrap{
    margin-top: 48px;
    padding-top: 28px;
    border-top: 1px solid var(--line);
  }

  body.single-post nav.navigation.post-navigation .nav-links{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  @media (max-width: 768px){
    body.single-post nav.navigation.post-navigation .nav-links{
      grid-template-columns: 1fr;
    }
  }

  /* カード */
  body.single-post nav.navigation.post-navigation .nav-previous a,
  body.single-post nav.navigation.post-navigation .nav-next a{
    display: block;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 18px 18px 16px;
    background: #fff;
    text-decoration: none;

    /* 色は a に持たせる（テーマ上書き対策） */
    color: var(--navy) !important;

    /* “じわっと反転” */
    transition: background-color .35s ease-out, border-color .35s ease-out, color .35s ease-out;
  }

  /* hover：薄く反転 */
  body.single-post nav.navigation.post-navigation .nav-previous a:hover,
  body.single-post nav.navigation.post-navigation .nav-next a:hover{
    background-color: var(--hover-bg);
    border-color: rgba(15,27,58,.25);
  }

  /* テキスト */
  body.single-post nav.navigation.post-navigation .post-nav__label{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 1.2rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 10px;
    color: var(--navy-soft) !important;
    transition: color .35s ease-out;
  }

  body.single-post nav.navigation.post-navigation .post-nav__title{
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;

    font-size: 1.6rem;
    line-height: 1.45;
    font-weight: 700;
    color: var(--navy) !important;
    transition: color .35s ease-out;
  }

  /* 矢印 */
  body.single-post nav.navigation.post-navigation .nav-previous .post-nav__label::before{
    content: "←";
    color: var(--navy);
  }
  body.single-post nav.navigation.post-navigation .nav-next .post-nav__label::after{
    content: "→";
    color: var(--navy);
  }

  /* Nextを右寄せ */
  body.single-post nav.navigation.post-navigation .nav-next{
    text-align: right;
  }
  body.single-post nav.navigation.post-navigation .nav-next .post-nav__label{
    justify-content: flex-end;
  }

  body.single-post .post-meta .post-cat{
    color: #141A6D;
    text-decoration: none;
    border-bottom: 1px solid rgba(20,26,109,.25);
  }
  body.single-post .post-meta .post-cat:hover{
    border-bottom-color: rgba(20,26,109,.6);
  }

  body.single-post .entry-content a{
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
  }

  body.single-post .entry-content a:hover{
    text-decoration-thickness: 2px;
  }

  /* ===== WordPress align classes (force) ===== */
  body.single-post .entry-content img.alignleft{
    float: left !important;
    margin: 0 1.5em 1em 0 !important;
    display: inline !important; /* テーマでblockにされてても崩れにくい */
  }

  body.single-post .entry-content img.alignright{
    float: right !important;
    margin: 0 0 1em 1.5em !important;
    display: inline !important;
  }

  body.single-post .entry-content img.aligncenter{
    display: block !important;
    margin: 1.5em auto !important;
    float: none !important;
  }

  /* floatの回り込みが段落以降に影響しすぎる場合の保険 */
  body.single-post .entry-content::after{
    content:"";
    display:block;
    clear:both;
  }

  /* 本文の番号付きリストが左にはみ出る対策 */
  body.single-post .entry-content ol{
    margin: 0 0 1.2em;     /* 左marginは付けない */
    padding-left: 1.6em;   /* ここで番号分の余白を確保 */
  }

  body.single-post .entry-content ol li{
    margin: .35em 0;
  }
