/* ============================
   全体共通のスタイル
============================ */

/* セクションタイトル (h2) */
.section-title {
    font-size: 1.6rem; /* フォントサイズ統一 */
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
}

/* SP (768px以下): h2は中央揃え */
@media (max-width: 768px) {
    .section-title {
        text-align: center;
    }
}

/* PC (769px以上): h2は左揃え */
@media (min-width: 769px) {
    .section-title {
        text-align: left;
    }
}
/* Timeline Section */


.timeline-section {
    padding: 10px 20px; /* -SP左右余白 20px */
    width: 100%;
    white-space: nowrap;
    overflow-x: hidden;              /* 横スクロールを有効にする */
    scroll-behavior: smooth;
}
.timeline-section::-webkit-scrollbar {
    display: none; /* Chrome, Safari, Edge でスクロールバーを非表示 */
}

.timeline-section h2 {
    text-align: center;
    margin-bottom: 20px;
    font-weight: bold;
}

.timeline-items {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    white-space: nowrap;
    margin-bottom: 20px;
}

.timeline-item {
    position: relative;
    width: 100%;
    height: 175px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
   
}   

.timeline-item img {
    width: 100%;
    height: 175px;
    border-radius: 10px;
    object-fit: cover;
}

.timeline-item .item-text {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 10px;
    text-align: left;
}

.timeline-item h3 {
    font-size: 14px;
    font-weight: bold;
    margin: 0;
    font-weight: bold;
}

.timeline-item p {
    font-size: 12px;
    margin: 5px 0 0;
    color: #ddd;
}
.responsive-image {
    max-width: 100%; /* 親要素の幅に収まる */
    height: auto;   /* 高さを自動調整してアスペクト比を維持 */
    object-fit: cover; /* 必要に応じて内包型のフィット方法 */
}

/* ============================
   SP用スタイル
============================ */

/* SP版全体のレイアウト */
.how-to-block {
    padding: 20px 15px;
    text-align: center; /* 中央揃え */
    max-width: 500px;
    width: 100%;
}

.how-to-content {
    display: flex;
    flex-direction: column; /* 縦並び */
    align-items: center;
    gap: 20px; /* 各コンテンツ間の余白 */
}

/* SP版のコンテンツブロック */
.content-block {
    background: #FFFDE6; /* 薄い黄色背景 */
    border-radius: 10px; /* 角丸 */
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1); /* 軽い影 */
    padding: 20px;
    text-align: center; /* 中央揃え */
    position: relative; /* タイトルとの重なり用 */
    margin-top: 30px; /* タイトルとの重なり分を考慮 */
}

/* SP版タイトル */
.content-title {
    background: #38676C; /* ダークグリーン背景 */
    color: white; /* 文字色 */
    font-size: 1rem;
    font-weight: bold;
    padding: 10px 20px;
    border-radius: 50px;
    text-align: center;
    width: 90%; /* タイトル幅を文字に合わせる */
    margin: 0 auto -60px; /* 自動で中央揃えし、content-blockと重なるよう調整 */
    z-index: 1; /* 他の要素の上に配置 */
    position: relative; /* content-blockとの重なり用 */
}


/* 動画エリア */
.content-video {
    margin: 30px auto;
    width: 100%; /* 親要素の幅をデバイスに合わせる */
    border-radius: 10px;
    overflow: hidden;
    position: relative; /* 子要素の絶対配置をサポート */
    background: #000; /* 背景色を黒に設定 */
    height: 350px; /* PC用の高さ */
}


.content-video iframe 
.content-video-2 iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%; /* 親要素の幅にフィット */
    height: 100%; /* 親要素の高さにフィット */
    border: 0; /* iframeのボーダーを削除 */
}

/* SP用のレスポンシブ設定 */
@media (max-width: 768px) {
    .content-video {
        height: 200px; /* SP用の高さ */
    }

    .content-video-2 {
        width: calc(100% - 40px); /* 左右20pxずつの余白を確保 */
        margin: 0 20px 30px;
        height: 200px; /* SP用の高さ */
        }

        /* SP表示時はPC用セクションを非表示 */
        .pc-timeline-section { 
            display: none !important; 
        }


}

/* SP用のレスポンシブ設定 */
/* @media (max-width: 1200px) {
    .content-video {
        padding-top: 80%; 
    }
} */


/* LIVE CAMのPR動画用 */

.content-video-2 {
    width: 50%; 
    margin: 30px auto;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    background: #000;
    height: 350px; /* PC用の高さ */
}

/* 説明文 */
.content-block p {
    font-size: 1rem;
    color: #555;
    line-height: 1.6;
}

/* エリアリスト (SP版) */
.area-list {
    background: #FFFDE6;
    padding: 10px;
    border-radius: 5px;
    font-size: 0.9rem;
    color: #333;
    line-height: 1.5;
}

/* ============================
   PC用スタイル
============================ */

.pc-layout-container {
    display: flex;
    gap: 20px;
    justify-content: space-between; /* 両ブロックを左右に配置 */
    align-items: flex-start;
    padding: 20px 100px;
    width: 100%; /* 横幅を最大限に使用 */
    background-color: rgba(255, 255, 255, 0.5); /* 背景色を調整 */
}



/* how-toブロック (横幅比率: 3) */
.pc-how-to-block {
    flex: 3; /* 横幅3 */
    max-width: 75%; /* 横幅の制限 */
}

/* timelineブロック (横幅比率: 1) */
.pc-timeline-section {
    flex: 1; /* 横幅1 */
    max-width: 25%; /* 横幅の制限 */
    height: auto; /* 必要に応じて高さを調整 */
    overflow-y: auto; /* 縦スクロールを有効に */
    padding: 10px;
}

/* PC版のセクションタイトル */
.pc-how-to-block h2,
.pc-timeline-section h2 {
    font-size: 1.6rem; /* 統一フォントサイズ */
    font-weight: bold;
    color: #333;
    margin-bottom: 20px;
    text-align: left; /* 左揃え */
}


/* PC版のコンテンツ配置 */
.pc-how-to-content {
    display: flex;
    flex-direction: column;
    gap: 30px; /* 各コンテンツブロック間の余白 */
    margin: 0; /* 左右余白なし */
}

/* PC版の各コンテンツブロック */
.pc-content-block {
    display: flex;
    gap: 30px; /* 動画エリアとテキストエリアの間の余白 */
    width: 100%; /* 親要素の横幅を100%に設定 */
}

.pc-content-block .content-video {
    flex: 1; /* 動画エリアの横幅を割合で設定 */
    max-width: 50%; /* 最大幅を親要素の50%に設定 */
}

.pc-content-block div:not(.content-video) {
    flex: 1; /* テキストエリアの横幅を割合で設定 */
    max-width: 100%; /* 最大幅を親要素の50%に設定 */
    word-wrap: break-word; /* 長い単語を折り返し */
    overflow-wrap: break-word; /* 長い単語を折り返し */
}

/* コンテンツブロック内の横幅比率を1:1に調整 */
.pc-content-block .content-video,
.pc-content-block .pc-content-title {
    flex: 1; /* 横幅比率1:1 */
    max-width: 50%; /* 親要素の50%を維持 */
}

/* 動画エリア */
.pc-content-block .content-video {
    border-radius: 10px;
    overflow: hidden;
}

.pc-content-block .content-video img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}

/* テキスト部分 */
.pc-content-title {
    text-align: left; /* 左揃え */
    font-size: 1.2rem; /* 適切なフォントサイズ */
    font-weight: bold;
    color: #333;
    line-height: 1.4; /* 行間調整 */
    margin: 30px 0;
}

.pc-content-block p {
    font-size: 1rem; /* 説明文フォントサイズ */
    color: #555; /* 説明文フォントカラー */
    line-height: 1.6; /* 行間調整 */
    text-align: left; /* 左揃え */
    margin-top: 10px;
}

/* エリアリスト (背景なし) */
.pc-area-list {
    font-size: 0.9rem;
    color: #333;
    line-height: 1.5;
    margin-top: 15px;
    background: none; /* 背景削除 */
    padding: 0; /* パディング削除 */
}

/* タイムラインセクション */
.pc-timeline-section {
    flex: 1; 
    max-width: 25%; /* 横幅を75%に制限 */
    position: relative; /* h2の固定の基準を作る */
    overflow: hidden; /* 全体のスクロールバーは非表示 */
}

.pc-timeline-section h2 {
    text-align: left;
    margin-bottom: 20px;
    font-weight: bold;
    position: sticky; /* スクロールしても固定される */
    top: 0; /* 上に固定 */
    z-index: 10; /* 他の要素より上に表示 */
}

.pc-timeline-items {
    display: flex;
    flex-direction: column; /* 縦並び */
    gap: 10px; /* アイテム間の隙間 */
    max-height: 1000px; /* 固定高さ */
    padding-right: 10px; /* 内側にスクロール余白を確保 */
    height: calc(100% - 50px); /* h2部分を除いた高さに調整 */
    overflow-y: scroll; /* 縦スクロールを有効に */
    -ms-overflow-style: none; /* IE/Edgeのスクロールバーを非表示 */
    scrollbar-width: none; /* Firefoxのスクロールバーを非表示 */
}

.pc-timeline-items::-webkit-scrollbar {
    display: none; /* Chrome, Safari, Edgeのスクロールバーを非表示 */
}
