/* リセットと基本設定 */
body {
    font-family: 'M PLUS Rounded 1c', sans-serif; /* 目立つフォントを使用 */
    background-color: #ffe066; /* 背景色：目立つ黄色（目玉焼きの黄身のような色） */
    color: #333; /* 基本の文字色 */
    margin: 0;
    padding: 0;
    text-align: center;
    line-height: 1.6;
    display: flex; /* 中央寄せ用 */
    justify-content: center; /* 中央寄せ用 */
    min-height: 100vh; /* 画面いっぱいの高さ */
}

.container {
    width: 90%; /* スマホ画面に合わせて幅を調整 */
    max-width: 600px; /* PCで見ても大きくなりすぎないように制限 */
    background-color: #ffffff; /* コンテンツエリアの背景は白 */
    border: 10px solid #ff4500; /* 派手なオレンジの縁取り */
    border-radius: 20px;
    padding: 20px 15px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); /* 影で立体的に */
    margin: 20px 0; /* 上下の余白 */
}

/* ヘッダー */
header {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 3px dashed #ff4500; /* 点線でポップに */
}

.class-name {
    font-size: 3em; /* クラス名は大きく */
    font-weight: 900;
    color: #ff4500; /* 派手な色 */
    text-shadow: 3px 3px 0 #333; /* 影を付けて目立たせる */
    margin: 0;
    line-height: 1.2;
}

.catchphrase {
    font-size: 1.2em;
    font-weight: 700;
    color: #555;
    margin-top: 5px;
}

/* イベント情報 */
.event-info h2 {
    font-size: 2em;
    color: #007bff; /* 青で強調 */
    border-bottom: 2px solid #007bff;
    display: inline-block;
    padding-bottom: 5px;
    margin-top: 15px;
}

.description {
    font-size: 1.1em;
    margin: 15px 0;
    font-weight: 700;
}

/* CTAボタン (最も重要) */
.cta-section {
    margin: 30px 0;
}

.cta-button {
    display: block; /* ブロック要素にして幅いっぱいにする */
    background-color: #ff007f; /* 超派手なピンク */
    color: #ffffff;
    font-size: 1.5em;
    font-weight: 900;
    padding: 15px 20px;
    text-decoration: none; /* 下線を消す */
    border-radius: 50px; /* 丸っこいボタン */
    border: 5px solid #333; /* 黒い縁取り */
    box-shadow: 0 7px 0 #333; /* 押し込みボタン風の影 */
    transition: all 0.1s;
    /* アニメーション：クリックで沈む */
    position: relative;
    top: 0;
}

.cta-button:active {
    top: 5px;
    box-shadow: 0 2px 0 #333;
}

/* 場所・時間・意気込み */
.location-time, .appeal {
    background-color: #fffacd; /* 薄い黄色で背景に変化をつける */
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 10px;
    border: 1px solid #ff4500;
}

.location-time h3, .appeal h3 {
    color: #333;
    font-size: 1.4em;
    margin-top: 0;
}

.appeal ul {
    list-style-type: none;
    padding: 0;
}

.appeal li {
    background-color: #ffaaaa; /* リスト項目を赤系の色で目立たせる */
    color: #333;
    padding: 5px;
    margin: 5px 0;
    border-radius: 5px;
    font-weight: 700;
}

/* フッター */
footer {
    margin-top: 20px;
    font-size: 0.8em;
    color: #888;
}

/* スマホでの表示を考慮した微調整 */
@media (max-width: 400px) {
    .class-name {
        font-size: 2.5em;
    }
    .cta-button {
        font-size: 1.3em;
    }
}

/* details.html 用の追加スタイル */
.manual, .info {
    text-align: left; /* テキストを左寄せにして読みやすく */
    margin: 20px 0;
    padding: 15px;
    background-color: #f7f7f7; /* 薄いグレーの背景 */
    border-radius: 10px;
    border: 1px dashed #cccccc;
}

.manual h2, .info h2 {
    text-align: center;
    color: #ff4500;
    margin-bottom: 15px;
}

.step {
    margin-bottom: 20px;
    border-left: 5px solid #007bff; /* ステップを青い線で区切る */
    padding-left: 10px;
}

.step h3 {
    color: #333;
    font-size: 1.3em;
    margin-top: 0;
}

.step ul {
    padding-left: 20px;
    list-style-type: square;
}
/* ... (既存のCSSはそのまま) ... */

/* ゲームイメージセクションのスタイル */
.game-images {
    margin: 30px 0;
    padding: 10px 0;
    border-top: 2px dashed #ff4500; /* 区切り線 */
    border-bottom: 2px dashed #ff4500; /* 区切り線 */
}

.game-images h3 {
    color: #ff007f; /* 目立つ色 */
    font-size: 1.5em;
    margin-bottom: 15px;
}

.image-gallery {
    display: flex; /* 画像を横並びにする */
    flex-wrap: wrap; /* 画面が狭い場合は折り返す */
    justify-content: center; /* 中央に配置 */
    gap: 15px; /* 画像間のスペース */
    margin-top: 15px;
}

.image-gallery img {
    width: 100%; /* スマホでは幅いっぱい */
    max-width: 280px; /* PCでは最大幅を制限 */
    height: auto; /* 高さは自動調整 */
    border: 5px solid #333; /* 額縁のような枠 */
    border-radius: 10px; /* 角を丸くする */
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3); /* 影で立体感を出す */
    transition: transform 0.2s ease-in-out; /* ホバーで少し拡大するアニメーション */
}

/* 画像にマウスを乗せた時の効果 */
.image-gallery img:hover {
    transform: scale(1.03);
}

/* スマホでの表示を考慮した微調整 */
@media (max-width: 600px) {
    .image-gallery img {
        max-width: 90%; /* スマホで少し小さめに表示 */
    }
}
.forms-link-section {
    margin: 30px 0 10px 0; /* 上の余白を多めに */
}

.forms-button {
    display: block;
    background-color: #4CAF50; /* 目立つ緑色 (Formsのボタンに多い色) */
    color: #ffffff;
    font-size: 1.2em;
    font-weight: 900;
    padding: 12px 20px;
    text-decoration: none;
    border-radius: 10px; /* 角を少し丸く */
    border: 3px solid #388E3C; /* 濃い緑の縁取り */
    box-shadow: 0 5px 0 #388E3C; /* 押し込みボタン風の影 */
    transition: all 0.1s;
    position: relative;
    top: 0;
}

.forms-button:active {
    top: 3px;
    box-shadow: 0 2px 0 #388E3C;
}

/* style.css に追加するスタイル */
/* ---------------------------------------------------- */
/* ★★★ 追加要素のスタイル ★★★ */
/* ---------------------------------------------------- */

/* 待ち時間表示 */
.wait-time {
    margin: 25px 0;
    padding: 15px;
    background-color: #ffcccc; /* ピンク系で緊急性をアピール */
    border: 3px solid #ff4500;
    border-radius: 15px;
}

.wait-time h3 {
    color: #cc0000;
    font-size: 1.6em;
    margin-top: 0;
}

.time-status {
    font-size: 1.4em;
    font-weight: 900;
    color: #333;
    margin: 5px 0;
}

.update-time {
    display: block;
    font-size: 0.8em;
    font-weight: 500;
    color: #666;
    margin-top: 5px;
}

.access-guide {
    font-size: 1.1em;
    font-weight: 700;
    margin-top: 10px;
    color: #007bff;
}

/* SNSハッシュタグセクション */
.hashtag-section {
    margin: 30px 0;
    padding: 15px;
    border-top: 2px dashed #007bff;
    border-bottom: 2px dashed #007bff;
}

.hashtag-section h3 {
    color: #007bff;
}

.hashtag-text {
    font-size: 1.3em;
    font-weight: 900;
    color: #1DA1F2; /* Twitter/Xの青 */
    padding: 10px;
    border: 2px solid #1DA1F2;
    border-radius: 8px;
    background-color: #e8f5fd;
    text-align: center;
    margin-bottom: 15px;
}

.social-share {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 15px;
    flex-wrap: wrap; 
}

.share-button {
    text-decoration: none;
    color: white;
    font-weight: 700;
    padding: 10px 15px;
    border-radius: 8px;
    transition: opacity 0.2s;
    font-size: 1em;
    display: flex;
    align-items: center;
    gap: 5px;
}

.share-button:hover {
    opacity: 0.8;
}

.twitter-button {
    background-color: #1DA1F2; /* X/Twitterカラー */
    border: 2px solid #148fdd;
}

/* Q&Aセクション */
.faq {
    text-align: left;
    padding: 15px;
    background-color: #f0fff0; /* 薄い緑で視認性を上げる */
    border-radius: 10px;
    margin-top: 25px;
    border: 1px dashed #388E3C;
}
.faq h3 {
    text-align: center;
    color: #388E3C;
    margin-top: 0;
}
.faq dl {
    margin: 0;
}
.faq dt {
    font-weight: bold;
    color: #388E3C; /* 質問の色 */
    margin-top: 10px;
}
.faq dd {
    margin-left: 10px;
    padding-bottom: 5px;
    border-bottom: 1px dotted #ccc; /* 質問ごとに区切り線 */
}

/* ---------------------------------------------------- */
/* ★★★ 動画埋め込みセクションのスタイル ★★★ */
/* ---------------------------------------------------- */

.video-preview {
    margin: 30px 0;
    padding: 10px 0;
}

.video-preview h3 {
    color: #ff4500;
    font-size: 1.6em;
    margin-bottom: 15px;
}

/* レスポンシブ対応のコンテナ (アスペクト比維持) */
.video-container {
    position: relative;
    width: 100%;
    /* 16:9のアスペクト比を維持するためのハック */
    padding-top: 56.25%; /* (9 / 16) * 100% = 56.25% */
}

.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.4);
}

/* style.css に追加するスタイル */

/* 2つ目の動画の上に少し余白を開ける */
.second-video-margin {
    margin-top: 20px; 
}