.main_content {
	max-width: max(69.44444vw, 1000px);
	width: 94%;
	margin: max(17.36111vw, 250px) auto max(6.94444vw, 100px);
	border-radius: max(2.77778vw, 40px);
	background-color: rgba(255, 255, 255, 0.9);
	padding: max(6.94444vw, 60px) max(4.16667vw, 40px) max(9.375vw, 100px);
	position: relative;
	z-index: 3;
}

.main_content h1 {
	max-width: max(41.66667vw, 600px);
	width: 100%;
	height: max(5.55556vw, 60px);
	border-radius: max(2.77778vw, 40px);
	margin: 0 auto;
	background: #00b3ec;
	background: linear-gradient(
		90deg,
		rgba(0, 179, 236, 1) 0%,
		rgba(255, 0, 165, 1) 100%
	);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: max(2.29167vw, 30px);
	line-height: max(2.77778vw, 40px);
}

.main_content .mc_block {
	margin-top: max(0px);
}

.main_content .mc_block p {
	font-size: 18px;
	line-height: 28px;
	color: #0e0000;
}

.main_content .mc_block img {
	display: block;
	max-width: 100%;
	width: 100%;
}

.main_content .mc_block p + p,
.main_content .mc_block p + img,
.main_content .mc_block img + p,
.main_content .mc_block img + img {
	margin-top: max(2.2vw, 20px);
}

.main_content .mc_block p a {
	color: #0066cc;
	text-decoration: underline;
	font-weight: 500;
}

/* =================================================
   1. メニューボタン：2列・スリム・矢印付き
================================================= */
.main_content .nav_buttons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    list-style: none;
    padding: 0;
    margin: 20px 0 20px;
}

/* ボタン内の装飾リセット */
.main_content .nav_buttons li {
    padding-left: 0 !important;
    margin-bottom: 0 !important;
    text-decoration: none !important;
}

.main_content .nav_buttons li::before {
    display: none !important; /* ハートを消す */
}

/* ボタン本体のデザイン */
.main_content .nav_buttons li a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 70px;
    padding: 10px 40px 10px 20px;
    background: #fff;
    border: 2px solid #d01d7a;
    border-radius: 12px;
    color: #d01d7a;
    font-weight: bold;
    font-size: 22px; 
    text-decoration: none;
    line-height: 1.3;
    box-shadow: 0 4px 0 #d01d7a;
    position: relative;
    top: 0;
    transition: all 0.2s ease;
}

/* 右側の矢印アイコン（>） */
.main_content .nav_buttons li a::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-top: 2px solid #d01d7a;
    border-right: 2px solid #d01d7a;
}

/* ボタン：ホバー時 */
.main_content .nav_buttons li a:hover {
    top: 3px;
    box-shadow: 0 1px 0 #d01d7a;
    background: #fff5f9;
}

/* =================================================
   2. 既存のリスト：ハートマーク付き（standard_list）
================================================= */
.main_content .standard_list {
    list-style: none;
    padding-left: 0;
    margin: max(2.77778vw, 20px) 0;
}

.main_content .standard_list li {
    position: relative;
    color: #d01d7a;
    font-size: 16pt; /* PCサイズ */
    text-decoration: underline;
    margin-bottom: max(1.38889vw, 20px);
    line-height: 1.4;
    padding-left: max(3.47222vw, 30px);
}

.main_content .standard_list li::before {
    content: '♥';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ff69b4;
    font-size: 22px;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

/* ホバーでハートが跳ねる */
.main_content .standard_list li:hover::before {
    animation: bounce 0.4s ease;
}

/* =================================================
  見出し (.sub_title)
================================================= */
.main_content .sub_title {
    position: relative;
    text-align: center;
    padding: 40px 0; /* 上下のドット線との余白 */
    margin: 60px 0;
    color: #d01d7a;
    font-weight: bold;
    font-size: max(1.8vw, 24px);
    line-height: 1.5;
    /* 背景の薄いピンクを追加 */
    background-color: #fff0f5; 
    /* 背景の角を丸くする設定を追加 */
    border-radius: 15px;
}

/* 上下のドットライン（端から端まで） */
.main_content .sub_title::before,
.main_content .sub_title::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 8px;
    /* 丸いドットのパターン */
    background-image: radial-gradient(#ff69b4 30%, transparent 35%);
    background-size: 15px 15px;
    background-repeat: repeat-x;
}

.main_content .sub_title::before {
    top: 0; /* 上のライン */
}

.main_content .sub_title::after {
    bottom: 0; /* 下のライン */
}

/* テキスト両側のワンポイント（キラキラ） */
.main_content .sub_title span {
    position: relative;
    display: inline-block;
    padding: 0 40px; /* キラキラを表示するスペース */
}

.main_content .sub_title span::before,
.main_content .sub_title span::after {
    content: '★'; /* キラキラの絵文字（または★など） */
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2em;
    color: #ffb1c1; /* 少し淡いピンク */
}

.main_content .sub_title span::before {
    left: 0;
}

.main_content .sub_title span::after {
    right: 0;
}

.main_content .sub_title02 {
    margin-top: 20px;        /* 上マージン */
    font-size: 30px !important; 
    color: #0099cc !important;
    font-weight: bold;       /* 見出しなので太字にしています */
}

/* ボタンを中央に寄せるための親要素の設定 */
.main_content .center_wrap {
  text-align: center;
  margin: 30px 0;
}

/* ボタン本体の修正 */
.main_content .btn-gradient-radius {
  display: inline-flex;      /* 高さを出すために flex に変更 */
  align-items: center;       /* 文字を上下中央に */
  justify-content: center;   /* 文字を左右中央に */
  min-width: 320px;          /* 横幅の最小値 */
  min-height: 80px;          /* 高さをしっかり取る */
  padding: 10px 40px;
  border-radius: 50px;       /* 高さに合わせて丸みを調整 */
  text-decoration: none;
  color: #FFF;
  font-weight: bold;
  font-size: 20px;           /* 文字も少し大きく */
  /* 背景をピンクのグラデーションに変更 */
  background-image: linear-gradient(45deg, #ff69b4 0%, #ff1493 100%);
  box-shadow: 0 4px 15px rgba(255, 20, 147, 0.3); /* 軽い影で立体感を出す */
  transition: .4s;
}

/* ホバー時の背景色 */
.main_content .btn-gradient-radius:hover {
  background-image: linear-gradient(45deg, #ff1493 0%, #d01d7a 100%);
  transform: translateY(-2px); /* 少し浮き上がる演出 */
  box-shadow: 0 6px 20px rgba(255, 20, 147, 0.4);
}
/* X投稿ブロックのスタイル */
.main_content .x_share_block {
    margin: 40px 0;
}

.main_content .x_share_block a {
    display: inline-flex;    /* 横並びにする */
    align-items: center;     /* 上下中央に揃える */
    justify-content: center; /* 左右中央に寄せる */
    text-decoration: none;   /* 下線を消す */
    transition: opacity 0.3s;
}

.main_content .x_share_block a:hover {
    opacity: 0.7; /* ホバー時に少し透明にする */
}

.main_content .x_share_block img {
    width: 100px;           /* アイコンの横幅を100pxに */
    height: auto;
    margin-right: 15px;      /* アイコンとテキストの間の余白 */
    display: inline-block !important; /* 他のimg設定の干渉を防ぐ */
}

.main_content .x_share_block span {
    font-size: 20px;
    font-weight: bold;
    color: #000;            /* X（旧Twitter）っぽい黒色 */
}
/* 小文字サイズ指定 */
.main_content .info {
    font-size: 16px; /* 14pt相当 */
    display: inline-block;
    margin-top: 5px;
}

/* =================================================
   ゲストレイヤー（キャスト）4列レイアウト
================================================= */
/* 4人並びの親要素 */
.main_content .cast_layout {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin: 40px 0;
}

/* 各カード（1人分）の幅 */
.main_content .cast_card {
    width: 23.5%; /* 4列に最適化 */
    text-align: center;
}

/* 写真エリア（バッジの基準位置） */
.main_content .cast_img {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    line-height: 0; /* 画像下の余計な隙間をカット */
}

.main_content .cast_img img {
    width: 100%;
    height: auto;
    display: block;
}

/* 写真左上の「コスプレ初参加」バッジ */
.main_content .badge_first {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    background: #ff00a5; /* キャスト名と同じピンク */
    color: #fff;
    font-size: 11px;
    font-weight: bold;
    line-height: 1.2;
    padding: 6px 10px;
    border-bottom-right-radius: 12px; /* 右下だけ丸めてシール風に */
    box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
    text-align: center;
}

/* キャスト名（ピンク） */
.main_content .cast_name {
    color: #ff00a5;
    font-weight: bold;
    font-size: 18px;
    margin: 15px 0 10px;
    line-height: 1.2;
}

/* SNS画像ボタンのエリア（中央寄せ） */
.main_content .sns_image_links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center; /* 80%にした画像を中央に配置 */
}

/* SNSリンクボタン（サイズを80%に） */
.main_content .sns_image_links a {
    display: block;
    width: 80%; /* カード幅に対して少し小さくする */
    transition: transform 0.2s ease, opacity 0.2s ease;
}

/* マウスを乗せた時の動き */
.main_content .sns_image_links a:hover {
    opacity: 0.8;
    transform: scale(1.05); /* 少しだけぷくっと大きく */
}

.main_content .sns_image_links img {
    width: 100%;
    height: auto;
    display: block;
}

/* =================================================
   4. レスポンシブ & アニメーション
================================================= */
@keyframes bounce {
    0%, 100% { transform: translateY(-50%) scale(1); }
    25% { transform: translateY(-60%) scale(1.2); }
    75% { transform: translateY(-55%) scale(1.1); }

}
@media screen and (max-width: 600px) {
	.main_content {
		padding: 50px 35px 100px;
		border-radius: 30px;
		margin-top: 180px;
	}

	.main_content h1 {
		font-size: 22px;
		line-height: 30px;
		max-width: 500px;
		height: 66px;
		border-radius: 33px;
		padding: 0 15px;
	}

	.main_content .mc_block {
		margin-top: 0px;
	}

	.main_content .mc_block p {
		font-size: 16px;
		line-height: 26px;
	}

	.main_content .mc_block p + p,
	.main_content .mc_block p + img,
	.main_content .mc_block img + p,
	.main_content .mc_block img + img {
		margin-top: 30px;
	}

/* ボタンの調整 */
    .main_content .nav_buttons {
        grid-template-columns: 1fr; /* スマホは1列 */
    }
    .main_content .nav_buttons li a {
        min-height: 60px;
        font-size: 16px;
    }

    /* スマホ時に文字をさらに小さく */
    .main_content .standard_list li {
        font-size: 12pt;    /* PC 16pt → スマホ 12pt */
        padding-left: 25px; 
        margin-bottom: 12px;
    }
    .main_content .standard_list li::before {
        font-size: 16px; 
    }
    
    .main_content .sub_title {
        font-size: 18px;
        padding: 30px 0;
        margin: 40px 0;
    }
    .main_content .sub_title span {
        padding: 0 30px;
    }
    .main_content .sub_title::before,
    .main_content .sub_title::after {
        height: 6px;
        background-size: 12px 12px;
    }
    .main_content .sub_title02 {
        font-size: 18px;     /* スマホ時は少し小さく */
        margin-top: 20px;
    }
    .main_content .btn-gradient-radius {
    min-width: 90%;          /* スマホでは画面幅に合わせる */
    min-height: 60px;        /* 高さを少し抑える */
    font-size: 16px;
  }
  .main_content .x_share_block img {
        width: 60px;        /* スマホでは少し小さく */
    }
    .main_content .x_share_block span {
        font-size: 16px;
    }
    
    .main_content .cast_layout {
        flex-wrap: wrap; /* 画面が狭くなったら折り返す */
        justify-content: center; /* 中央寄せ */
        gap: 30px 4%; /* 上下間隔を広く取る */
    }
    .main_content .cast_card {
        width: 46%; /* スマホでは2列にする */
    }
.main_content .ticket_info {
        font-size: 12px; /* スマホでは少しだけ抑えるときれいです */
    }
}
