@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
html{
	font-size: 62.5%;
}
#main{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
	width: 100%;
	font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.5;
}

#main .content_wrap{
	width: 100%;
	max-width: 1024px;
	padding: 40px;
	margin: 0 auto;
	font-size: 1.4rem;
    position: relative;
}
#main .main_ttl{
	text-align: center;
}
#main .main_ttl img{
    max-width: 300px;
    width: 100%;
}
#main h1{
	font-size: 3.4rem;
}

#main .membership-table {
    width: 100%;
    overflow-x: auto; /* テーブル全体が横スクロールできるように設定 */
    border-collapse: collapse; /* tableタグではないが、表っぽく */
    color: #000;
}

/* 各行の設定（Flexコンテナとして） */
#main .table-row {
    display: flex;
    min-height: 50px; /* 最小高さを設定 */
    border-top: 1px solid #fff;
    min-width: max-content;
}

/* ヘッダー行の罫線を一番上だけ除去 */
#main .table-row:first-of-type {
    border-top: none;
}

/* 各セルの設定 */
#main .table-cell {
    flex-grow: 1; /* セルを均等幅に広げる */
    flex-basis: 0; /* flex-growが機能するように初期幅を0に設定 */
    padding: 10px 0;
    border-left: 1px solid #fff;
    display: flex; /* 内容を垂直・水平中央に寄せるための設定 */
    align-items: center; /* 垂直中央揃え */
    justify-content: center; /* 水平中央揃え */
    text-align: center; /* テキスト中央揃え（保険） */
    line-height: 1.5; /* 行の高さ */
    background-color: #E2E7EA;
	min-width: 160px;
    white-space: nowrap;
}

/* 一番左の列の罫線を除去 */
#main .table-cell:first-of-type {
    border-left: none;
}


/* --- 列の固定設定 --- */

/* 固定列の幅と背景色を設定 */
#main .fixed-column {
    position: sticky; /* 列を固定 */
    left: 0; /* 左端に固定 */
    z-index: 10; /* 他のセルより前面に表示 */
    min-width: 120px; /* 固定列の幅を指定 */
    flex-grow: 0; /* 幅を固定するため、flex-growを無効化 */
    flex-shrink: 0; /* 幅を固定するため、flex-shrinkを無効化 */
    background-color: #666; /* 固定列の背景色（ヘッダーと特別オファー以外） */
    color: #ffffff;
    font-weight: bold;
}

/* --- 色とスタイリング --- */

/* ヘッダー行全体のスタイル */
#main .table-header .table-cell {
    background-color: #bdbdbd;
    color: #333;
    font-weight: bold;
}

/* ヘッダーの固定列 */
#main .table-header .fixed-column {
    background-color: #666666;
    color: #ffffff;
}

/* 特定のステージの色 */
#main .white {
    background-color: #F3F3F3 !important;
	color: #000;
}
#main .silver {
    background-color: #B2B2B2 !important;
}

#main .gold {
    background-color: #AD9144 !important;
    color: #ffffff !important;
}

#main .platinum {
    background-color: #9DAFC3 !important;
}

#main .diamond {
    background-color: #5B6983 !important;
    color: #ffffff !important;
}
#main h2{
    text-align: center;
    font-size: 2.4rem;
    margin-bottom: 2em;
}
#main h2 span{
    font-size: 1.4rem;
    font-weight: normal;
}
#aboutStage img{
    margin-bottom: 2em;
}
#aboutStage ul{
    padding-left: 1.5em;
    list-style: disc;
}
#main h3{
    font-size: 1.4rem;
}
#main .btnWrap{
    display: grid;
    grid-template-columns: repeat( 2 , 200px );
    justify-content: center;
    align-items: center;
    column-gap: 40px;
}
#main a.btn{
    background-color: #000;
    color: #fff;
    padding: 20px 10px;
    text-align: center;
    transition: all .3s ease-out;
    text-decoration: none;
}
#main a.btn:hover{
    background-color: #d1d1d4;
}
#main a.btn.newMember{
    background-color: #C5193D;
}
#main a.btn.newMember:hover{
    opacity: 0.8;
}
@media screen and (max-width: 767px){
    #main .content_wrap{
        padding-left: 0;
        padding-right: 0;
    }
    #aboutStage .imgWrap{
        overflow-x: scroll;
    } 
    #aboutStage img{
        min-width: 767px;
    }
    #main .btnWrap{
        grid-template-columns: repeat( 1 , 200px );
        row-gap: 40px;
    }
}