.single-post-section{
    padding: 65px 100px;
}

.blog-hero-section {
    position: relative;
    height: 70vh !important; 
    width: 100%;
    max-width: 100% !important;
    margin: 0;
    overflow: hidden;
}

.blog-hero-background {
    position: absolute;   /* 親の全体を覆う */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 1;           /* コンテンツより下に */
}

.blog-hero-content {
    position: relative;    
    display: flex;
    justify-content: center;  /* 横方向の中央揃え */
    align-items: center;      /* 縦方向の中央揃え */
    flex-direction: column;
    width: 100%;
    max-width: 1500px;        /* 最大幅を指定 */
    height: 100%;            
    padding: 0 60px;         
    margin: 0 auto;
    z-index: 10;

    /* 折り返し用 */
    text-align: center;       /* タイトル内文字を中央揃え */
    word-wrap: break-word;    /* 長い単語も折り返す */
    overflow-wrap: break-word;
    box-sizing: border-box;   /* padding を含めた幅計算 */
}

.blog-hero-catchphrase {
    color: #fff;
    font-size: 70px;
    font-weight: bold;
    line-height: 1.4;
    margin: 0;
    text-shadow: 0 0 20px rgba(0, 0, 0, 0.2);

    max-width: 100%;       /* 親幅に収める */
    word-wrap: break-word; 
    overflow-wrap: break-word;
}


/* 親ラッパー */
.blog-content-wrapper {
    display: flex;
    flex-wrap: nowrap; /* 横並びを優先 */
    gap: 30px;
    /* max-width: 1200px; */
    margin: 0 auto;
    box-sizing: border-box;
}


/* 記事本体 */
.blog-main-article {
    flex: 0 0 70%;            /* 横幅 7割 */
    display: flex;
    flex-direction: column;    /* 内部は縦並び */
    gap: 20px;                 /* タイトル・メタ・本文の間隔 */
    box-sizing: border-box;
    padding-right: 5%;
}

/* 記事タイトル */
.blog-title {
    font-size: 32px;
    font-weight: bold;
    line-height: 1.4;
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;  /* 単語の途中でも改行 */
    max-width: 100%;
    text-align: left;
}

/* メタ情報（公開日・カテゴリー） */
.blog-meta {
    font-size: 14px;
    color: #666;
}

/* 本文 */
.blog-content {
    font-size: 16px;
    line-height: 1.8;
}

.content-body img {
    display: block;
    margin: 20px auto;
    max-width: 100%;
    height: auto;
    float: none !important;
}

.content-body img.landscape {
    width: 100%;
    height: auto;
}

.content-body img.portrait {
    width: auto;
    max-width: 80%;
    height: auto;
    margin: 20px auto;
    display: block;
}

.content-body img.portrait {
    display: block;
    margin: 20px auto;
    max-width: 80%;  /* 横幅を少し小さく */
    height: auto;
}
/* サイドバー */
.blog-sidebar {
    flex: 0 0 30%;           /* 3割 */
    box-sizing: border-box;
    padding-left: 5%;
}

.content-body {
    display: block;
    width: 100%;
}

/*
==========================================================================
   sidebar blog section / 
========================================================================== */


.past-blog-posts-wrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    box-sizing: border-box;
}

.past-blog-posts-wrapper .past-post-card{
    flex: 1;
    min-width: 0;
}

.past-post-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;          /* 親の幅を超えないようにする */
}

.past-post-card-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-decoration: none;
    color: inherit;
}

.past-post-card img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;     /* 画像が枠からはみ出ない */
}

.past-post-date {
    font-size: 14px;
    color: #666;
}

/* タイトル */
.past-post-card h3 {
    font-size: 16px;
    line-height: 1.4;
    overflow-wrap: break-word;
    word-break: break-word;  /* 長いタイトルも折り返す */
}

/*
==========================================================================
   blog section / mobile
==========================================================================
 */

/* スマホ対応：768px以下で縦並び */
@media (max-width: 768px) {
    .single-post-section{
        padding: 15px 15px !important;

    }
    .blog-content-wrapper {
        flex-wrap: wrap; /* 縦並びに切り替え */
    }
    .blog-main-article,
    .blog-sidebar {
        flex: 0 0 100%;
    }
    .blog-content-wrapper {
        gap: 20px;
        padding: 20px 10px;
    }

    .blog-hero-section{
        height: 350px !important; 
    }
    /* 1. 全体の高さを350pxに固定 */
    .blog-hero-section,
    .blog-slide-item {
        height: 350px !important;
    }

    /* 2. 画像が拡大されすぎないよう調整 */
    .blog-slide-item {
        background-size: cover; /* 隙間を作らない最小限の拡大 */
        background-position: center center;
    }

    .blog-hero-catchphrase {
        font-size: 2rem !important; /* 3remから変更 */
        padding: 0 20px;   /* 左右に少し余白 */
        line-height: 1.3;
    }

    /* 4. コンテンツのパディング調整 */
    .blog-slide-content {
        padding: 20px;     /* 60pxから縮小して文字スペースを確保 */
    }

    .blog-content-wrapper {
        flex-direction: column;
    }

}