@charset "UTF-8";
/**
 * モーダル用スタイル（モバイルスクロール対応）
 * modal.css
 */

/* モーダル背景 */
.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 1000;
    /* ★ スクロール可能に */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /* iOS用スムーススクロール */
}

.modal.active {
    display: block;
}

/* モーダルコンテンツのラッパー */
.modal-wrapper {
    min-height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

/* モーダルコンテンツ */
.modal-content {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    max-width: 800px;
    width: 100%;
    position: relative;
    /* ★ heightを削除し、内容に応じて伸縮 */
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    /* ★ モバイル用スクロール改善 */
    -webkit-overflow-scrolling: touch;
}

/* 閉じるボタン */
.close-btn {
    position: sticky; /* ★ stickyに変更してスクロール時も見える */
    top: 0;
    right: 0;
    float: right;
    font-size: 24px;
    background: white;
    border: none;
    cursor: pointer;
    z-index: 10;
    padding: 5px 10px;
    border-radius: 5px;
}

.close-btn:hover {
    background: #f0f0f0;
}

/* モーダル内コンテナ */
#modal-container {
    clear: both;
    padding-top: 10px;
}

/* モーダル画像 */
.modal-content img {
    width: 100%;
    max-height: 500px;
    object-fit: contain;
    border-radius: 10px;
    margin-bottom: 15px;
}

/* ===== WebKit系ブラウザ用 (Chrome, Edge, Safari) ===== */
.modal-content::-webkit-scrollbar {
  width: 12px;              /* スクロールバーの幅 */
}

.modal-content::-webkit-scrollbar-track {
  background: #ffffff;      /* トラック部分の色 */
  border-radius: 6px;

}

.modal-content::-webkit-scrollbar-thumb {
  background: #888;         /* つまみ部分の色 */
  border-radius: 6px;
}

.modal-content::-webkit-scrollbar-thumb:hover {
  background: #555;         /* ホバー時の色 */
}

/* ===== Firefox用 ===== */
.modal-content html {
  scrollbar-width: thin;           /* auto, thin, none */
  scrollbar-color: #888 #f1f1f1;   /* thumb色 track色 */
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .modal-wrapper {
        padding: 10px;
        align-items: flex-start; /* ★ 上から表示 */
    }

    .modal-content {
        max-width: 100%;
        padding: 15px;
        border-radius: 8px;
        max-height: none; /* ★ 高さ制限を解除 */
        margin: 20px 0; /* ★ 上下にマージン */
    }

    .modal-content img {
        max-height: 300px;
    }

    .close-btn {
        font-size: 20px;
    }
}

/* iOS Safariの慣性スクロール対応 */
@supports (-webkit-touch-callout: none) {
    .modal {
        -webkit-overflow-scrolling: touch;
    }
}
