/*====================================================
    
	 campaign_3
	 
====================================================*/


/* 全体のリセットとベース設定 */
:root {
	--main-pink: #fb4176;
	--soft-pink: #fff0f3;
	--accent-gold: #d4a017;
	--text-color: #333;
	/* 少し濃くして読みやすく */
	--bg-gray: #fdfdfd;
}

.lp-body {
	/* フォントサイズを全体的に底上げ */
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	color: var(--text-color);
	line-height: 1.8;
	background-color: var(--bg-gray);
	margin: 0;
	padding-bottom: 80px;
	font-size: 18px;
	/* 標準を18pxに設定 */
}

.lp-container {
	max-width: 800px;
	margin: 0 auto;
	background-color: #fff;
	overflow: hidden;
}

/* 1. ヒーローイメージ（メインビジュアル） */
.hero-banner {
	position: relative;
	width: 100%;
	text-align: center;
	margin-top: 50px;
}

.hero-banner img {
	width: 100%;
	display: block;
}

.hero-content {
	background: linear-gradient(135deg, #ff8da1 0%, #ff6b95 100%);
	color: #fff;
	padding: 20px 20px;
	text-align: center;
}

.hero-content img {
	width: 100%;
}

.hero-content h1 {
	margin: 0;
	font-size: 2.2rem;
	/* 大きく強調 */
	font-weight: bold;
	letter-spacing: 1px;
	line-height: 1.3;
	margin-top: 10px;
}

.hero-content p {
	margin: 15px 0 0;
	font-size: 2.5rem;
	/* 大きく調整 */
	font-weight: bold;
	opacity: 1;
}

/* 2. セクション共通設定 */
section {
	padding: 60px 24px 30px;
}

.section-title {
	text-align: center;
	margin-bottom: 40px;
}

.section-title h2 {
	display: inline-block;
	font-size: 2.8rem;
	/* タイトルを大きく */
	color: var(--main-pink);
	padding-bottom: 10px;
	border-bottom: 4px solid var(--main-pink);
	margin: 0;
}

/* 3. キャンペーン詳細（カード形式） */
.reward-box {
	background-color: var(--soft-pink);
	border-radius: 24px;
	padding: 40px 24px;
	border: 3px dashed var(--main-pink);
}

.reward-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	margin-bottom: 20px;
	padding: 20px;
	border-radius: 16px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.06);
}

.reward-label {
	font-weight: bold;
	font-size: 2rem;
	/* ラベルを大きく */
}

.reward-value {
	color: var(--main-pink);
	font-weight: 900;
	font-size: 2.5rem;
	/* ポイント額を非常に大きく */
}

/* 4. メリット・リスト */
.point-list {
	list-style: none;
	padding: 0;
}

.point-list li {
	background: #fff;
	border: 1px solid #eee;
	padding: 10px;
	border-radius: 12px;
	margin-bottom: 16px;
	display: flex;
	align-items: flex-start;
	font-size: 1.8rem;
	/* リスト内の文字を大きく */
	font-weight: bold;
}

.point-list li::before {
	content: "🌸";
	content: "★";
	color: #fb4176;
	/* チェックから桜へ変更（春らしさ） */
	margin-right: 15px;
	padding-left: 10px font-size: 1.8rem;
}

/* 5. シーン別（メッセージカード） */
.message-card {
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	padding: 30px;
	margin-bottom: 40px;
}

.message-card h3 {
	margin-top: 0;
	font-size: 2.3rem;
	/* 見出しを大きく */
	color: #333;
	margin-bottom: 15px;
	border-left: 6px solid var(--main-pink);
	padding-left: 12px;
	text-align: left;
}

.message-card p {
	font-size: 1.5rem;
	line-height: 1.7;
	text-align: left;
}

.message-card ul {
	font-size: 1.5rem;
	line-height: 1.7;
	text-align: left;
}

.message-card ul li::marker {
	content: "★ ";
	color: #255eab;
	font-size: 1.2em;
}


/* 6. FAQ */
.faq-box {
	background: #f9f9f9;
	padding: 30px;
	border-radius: 20px;
}

.faq-q {
	font-weight: bold;
	color: var(--main-pink);
	margin-bottom: 10px;
	/* font-size: 1.2rem; */
	text-align: left;
}

.faq-a {
	/* font-size: 1.1rem; */
	margin-bottom: 30px;
	padding-bottom: 20px;
	border-bottom: 1px solid #ddd;
	line-height: 1.6;
	text-align: left;
}

/* 7. コンバージョンボタン（CTA） */
.cta-area {
	text-align: center;
	padding: 50px 24px;
	background-color: var(--soft-pink);
}

.cta-text {
	font-size: 1.6rem;
	/* ボタン上のテキストを大きく */
	margin-bottom: 30px;
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
}

.btn-grad {
	background-image: linear-gradient(to right, #FF512F 0%, #DD2476 51%, #e5d3cf 100%);
	padding: 15px 30px;
	text-align: center;
	transition: 0.5s;
	background-size: 200% auto;
	color: white;
	box-shadow: 0 10px 25px rgba(221, 36, 118, 0.3);
	border-radius: 60px;
	text-decoration: none;
	font-weight: bold;
	font-size: 2.5rem;
	/* ボタンの文字を最大級に */
	display: inline-block;
	width: 65%;
}

.btn-grad:hover {
	background-position: right center;
	transform: scale(1.02);
}

/* レスポンシブ調整 */
@media (max-width: 480px) {
	.hero-content h1 {
		font-size: 1.8rem;
		/* margin-top: 10px; */
	}

	.hero-content p {
		font-size: 2.0rem;
	}

	.reward-item {
		display: flex;
		padding: 10px;
		flex-direction: column;
	}

	.reward-label {
		font-weight: bold;
		font-size: 1.5rem;
	}


	.reward-value {
		font-size: 1.8rem;
	}

	.btn-grad {
		font-size: 1.3rem;
	}
}
































/* =========== Event ========== */
#mainArea #eventArea {
	/* 	clear:both;*/
	margin-bottom: 20px;
	width: 100%;
	/* background:transparent url("../images/icon_title.png")  no-repeat; */
	background-position: right 20pt bottom 0pt;
	min-height: 90px;
	text-align: center;
}

#mainArea #eventArea .title {
	color: #c1272d;
	margin-bottom: -5px;
	font-size: 3rem;
	font-weight: 550;
	text-align: left;
	padding-right: 20px;
}

#eventArea img {
	width: 100%;
}


.main_title {
	margin-top: 50px;
	font-size: 30px;
	font-weight: 600;
	margin-bottom: 20px;
}



.main_title span {
	color: #000;
	background: #f5cd1e;
	padding: 20px 30px;
	border-radius: 3em
}


.sub_chatch {
	font-size: 20px;
}

.sub_txt {
	font-size: 20px;
	margin-bottom: 30px;
}

.sub_txt span {
	background: linear-gradient(transparent 40%, #f4a93063 0%);
}

@media screen and (max-width: 500px) {

	.main_title span {
		color: #000;
		background: #f5cd1e;
		padding: 20px 6px;
		border-radius: 3em;
	}


	.sub_txt {
		font-size: 16px;
	}
}


.box-campain {
	/* max-width: 750px; */
	margin: 0 auto;
	border: 2px solid #f4a930;
	border-radius: 3px;
	overflow: hidden;
	/* width: 96%; */
	position: relative;
	padding-top: 40px;
}

.box-campain span.title_set {
	padding: .4em .8em;
	font-size: 20px;
	background-color: #f4a930;
	position: absolute;
	color: #fff;
	top: 0;
	left: 0;
}

.box-campain .area {
	width: 96%;
	margin: 0 auto;
	display: flex;
}

.imgBox {
	width: 50%;
	padding: 30px 0;
}

.txtBox {
	width: 65%
}

.box-campain .area p {
	font-size: 16px;
	text-align: left;
}

.nami_a {
	/* text-decoration: underline wavy; */
	color: #f40000;
	background: linear-gradient(transparent 30%, #ffffb5 0%);
	font-size: 1.5em;
	font-weight: 600;
}

.nami_b {
	/* text-decoration: underline wavy; */
	color: #196301;
	background: linear-gradient(transparent 30%, #ffffb5 0%);
	font-size: 1.1em;
	font-weight: 600;
}

.box-campain p {
	margin: 0;
	padding: 1em 1.5em;
	color: #333;
}


@media screen and (max-width: 500px) {
	.main_title {
		font-size: 18px;
		margin-top: 16px;
	}

	.box-campain .area {
		flex-direction: column;
	}

	.imgBox {
		width: 90%;
		margin: 0 auto
	}

	.txtBox {
		width: 100%
	}
}







.boxHozon {
	width: calc(100%);
	margin: 0.5%;
	box-sizing: border-box;
	border: 1px solid #ddd;
	border-radius: 5px;
}

.boxHozon .box-title {
	font-size: 20px;
	/* background: #919191; */
	border-bottom: 1px solid #ddd;
	padding: 1em 1.5em 1em 2.8em;
	text-align: left;
	color: #555;
	font-weight: 600;
	letter-spacing: 0.05em;
	position: relative;
	line-height: 1.5;
}

.boxHozon .box-title:before {
	position: absolute;
	left: 0.5em;
	top: 10px;
	color: #009654;
	font-size: 30px;
	font-weight: 400;
	content: url(../images/icon_hand.svg);
	display: inline-block;
	width: 30px;
	/* height: 30px; */
}

.boxHozon p {
	padding: 15px 20px;
}

@media only screen and (min-width: 1000px) {
	.boxHozon {
		width: calc(100%);
		margin-bottom: 20px;
		margin: 0 0 20px;
	}
}

.boxHozon ul {
	padding-left: 1em;
}



.boxHozon li {
	line-height: 1.5;
	padding: 0.5em 1em 0.5em 1.8em;
	border-bottom: dashed 1px silver;
	list-style-type: none !important;
	font-size: 16px;
	font-weight: 400;
}

.boxHozon li span.balloonA {
	font-size: 1.5em;
	color: #FFF;
	font-weight: 600;
	background: #FF5722;
	padding: 5px;
	border-radius: 10px;
	margin: 0 5px;
}

.boxHozon li span.balloonA {
	position: relative;
	display: inline-block;
	margin: 0 0.5em;
	padding: 5px 10px;
	/*   min-width: 120px;
  max-width: 100%; */
	color: #fff;
	font-size: 22px;
	background: #FF5722;
}

.boxHozon li span.balloonA:before {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -6px;
	border: 6px solid transparent;
	border-top: 6px solid #FF5722;
}

.boxHozon li span.balloonA p {
	margin: 0;
	padding: 0;
}





.boxHozon li:last-child {
	border-bottom: none;
}

.boxHozon li:before {
	/* font-family: "Font Awesome 6 pro";
	content: "\f058";
	position: relative;
	left: 0;
	color: #009b63;
	padding-right: 10px; */
}

.boxHozon li:before {
	/* position: absolute;
	left: 0;
	color: #009654;
	font-size: 30px;
	font-weight: 400;
	content: url(../images/icon_check.svg);
	width: 30px;
	top: 0; */
}


@media screen and (max-width: 500px) {
	.boxHozon .box-title {
		font-size: 18px;
		padding: 1em 2em 1em 3em;
	}

	.boxHozon ul {
		padding-left: 1.8em;
	}

	.boxHozon li:before {
		left: 0.6em;
	}


	.boxHozon li {
		padding: 1em 0.5em 1em 0.5em;
		font-size: 17px;
	}

}


.button_set {
	display: flex;
	width: 100%;
	justify-content: center;
}

.button_set div {
	width: 50%;
	padding: 10px;
}


@media screen and (max-width: 500px) {
	.btnLink span {
		font-size: 1.6rem;
	}
}



#eventArea h2 {
	/* line-height: 1.5; */
	/* margin-top: 50px; */
}

#eventArea h1 {
	/* line-height: 1.5; */
	/* font-weight: 600; */
	/* font-size: 35px; */
	/* margin-top: 15px; */
}

@media screen and (max-width: 500px) {
	#eventArea h2 {
		font-size: 20px;
	}

	#eventArea h1 {
		/* font-size: 20px; */
	}
}

.ifSp {
	display: none;
}

@media only screen and (max-width: 414px) {
	.ifSp {
		display: block;
	}
}

#eventArea img {
	margin-top: 0;
	width: 100%;
}

@media only screen and (max-width: 414px) {
	#eventArea img {
		width: 100%;
	}
}

#eventArea2 img {
	margin-top: 10px;
	margin: 10px;
	width: 30%;
}


#mainArea #eventArea .title span {
	color: #212270;
}


#mainArea #eventArea .title img {
	width: 95%;
}




#guideArea .textA {
	border-top: 1px solid #fff;
	padding-top: 10px;
	margin: 10px;
}

#guideArea .textA h1 {
	font-size: 2.8em;
	font-weight: bold;
	color: #fff;
	/*c1272d*/
	padding: 0px;
	text-align: center;
	line-height: 1.5em;
}

#subTitle .textA p {
	font-size: 1.2em;
	color: #4d4d4d;
	padding: 5px 8px 0 8px;
	line-height: 1.3em;
}

#subTitle .textB {
	margin: 10px;
	background-color: #fff;
}

#subTitle .textB img {
	background-color: #fff;
	width: 290px;
}



#subTitle .textB p {
	font-size: 1.1em;
	color: #4d4d4d;
	padding-left: 10px;
	border-bottom: solid 1px #4d4d4d;
	line-height: 2em;
}



.guide {
	/* 	border: 1px solid #e5e5e5;*/
	font-size: 1.3em;
	background: #fff;
	padding: 30px 2%;
	margin: 0 auto 0%;
	max-width: 100%;
	-webkit-box-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff;
	-moz-box-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff;
	box-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff;
}


.instructor_info {
	background: #ddd;
	padding: 10px;

}


.infoFlex {
	display: flex;
	flex-direction: row;
	justify-content: space-evenly;
}

.infoBox {
	background: #fff;
	padding: 1%;
	border: 1px solid #eee;
	width: 24%
}


.infoBox img {
	width: 100%;
	height: 150px;
	object-fit: cover
}

.infoBox p {
	font-size: 16px
}

@media screen and (max-width:600px) {
	.infoFlex {
		display: flex;
		justify-content: space-evenly;
		flex-wrap: wrap;
	}

	.infoBox {
		width: 50%;
	}
}

.guide img {}


.guide section {
	/* margin: 0 -10px; */
	padding: 20px 2%;
	margin-bottom: 20px;
	background: #fdfbf9;
	border: 1px solid #f7f5f5;
	border-radius: 5px;
	/* CSS3ï¿½ï¿½ï¿½ï¿½ */
	-webkit-border-radius: 5px;
	/* Safari,Google Chromeï¿½p */
	-moz-border-radius: 5px;
	/* Firefoxï¿½p */

}

.guide h3 {
	font-size: 100%;
	line-height: 1.2;
	padding-bottom: 15px;
	/* 	background: url(../images/icon_q.png) no-repeat;
	padding-left:60px;*/
	border-bottom: 1px #d9d9d9 solid;
	margin-bottom: 20px;
}



.ans_title {
	font-size: 2rem;
	line-height: 1.5;
	padding-bottom: 15px;
	text-align: center;
	/*	background: url(../images/icon_a.png) no-repeat;
	padding-left:60px;*/
}


.ans_sub {
	font-size: 90%;
	line-height: 1.3;
	padding-bottom: 15px;
	/*	padding-left:60px;*/
}

.ans_sub img {
	width: 100%;
}




.guide li img {
	position: absolute;
	top: 0;
	left: 0;

}

.guide p {
	text-align: center;
	/* font-size: 30px; */
	/* font-weight: 600; */
}

.guide h2 {
	text-align: center;
	/* font-size: 30px; */
	/* font-weight: 600; */
}

.guide p+ol {
	margin-top: 10px;
}

.guide ul li {
	margin: 0;
	padding-left: 50px;
	font-size: 100%;
	/* line-height: 1.3; */
	/* margin-left: 60px; */
	height: 3;
	position: relative;
}

.guide ol li {
	list-style: decimal;
	margin-left: 3.2em;
}

.guide .establish {
	text-align: right;
	font-weight: bold;
	padding-top: 20px;
}

.mark {
	list-style-type: disc;
	list-style-position: inside;
	list-style-image: url(/static/guide/images/icon_plan.svg);



	/* list-style: disc url(/static/guide/images/icon_plan.svg) outside;*/
	margin: 10px 0px 0 50px;
}

li:before {
	display: marker;
	marker-offset: 20px;
}

@media screen and (max-width:400px) {


	#mainArea #eventArea {
		background-position: right 0pt top 0pt;
		background-size: 60px 60px;
	}

	#mainArea #eventArea .title {
		font-size: 2em;
	}

	#subTitle .title {
		font-size: 1.8em;
	}
}

.imgArea {
	text-align: center;
}

.tokuten {
	display: inline-block;
}

.imgArea .img2 {
	display: inline-block;
}

.imgArea img {
	margin: 10px 20px;
}

@media screen and (max-width:500px) {
	.imgArea .img2 {
		display: flex;
		justify-content: center;
		max-width: 300px;
	}

	.imgArea .img2 img {
		margin: 0 10px;
		width: 50%
	}

	.imgArea img {
		margin: 0;
	}
}


.p_text {
	clear: both;
	margin: 50px auto;
	text-align: center;
	font-size: 18px;
	padding: 1em 2em;
	border: solid 3px #6091d3;
	/*ç·š*/
	border-radius: 10px;
	/*è§’ã®ä¸¸ã¿*/
	max-width: 800px;
	width: 100%;
}

@media screen and (max-width:400px) {
	.p_text {
		padding: 1em 0.5em;
	}
}

.p_text .borderA {
	color: #6091d3;
	/*æ–‡å­—è‰²*/
	font-weight: bold;
	font-size: 30px;
}



/* priceã®ä¿®æ­£ */

.yenPrice .decoration {
	text-decoration: line-through;
}

.yenPrice_c {
	font-size: 4rem;
	text-align: center;
	color: #ffffff;
	line-height: 1.5;
	margin: 0 0 10px 0;
}

.yenPrice_c span {
	font-size: 2rem;
}

.boxPrice_c {
	position: relative;
	display: inline-block;
	margin: 6px 0.5%;
	padding: 5px 1%;
	width: 98%;
	min-width: 115px;
	/* height: 100px; */
	line-height: 1.2;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	z-index: 0;
}

.boxPrice_c .txtPrice {
	color: #fff;
}

.bg-color6 {
	background: #ff000a;
}

.price_box img {
	width: 100%;
}

@media screen and (max-width:400px) {
	.price_box img {
		top: -10%;
		left: 30%;
	}
}

.pt {
	font-size: 30px;
}

@media screen and (max-width:500px) {
	.price_box {
		margin: 2em 0.4em;
	}
}

.boxPrice {
	margin: 0 0.5%;
	width: 98%;
}

@media screen and (max-width:500px) {
	.price_box .bg-color1 {
		display: none;
		margin: 0;
	}
}

.price-container {
	display: flex;
	flex-wrap: wrap;
	border: 1px solid #eee;
	padding: 0.4em;
	margin: 0 0 2em;
}

.price_box {
	/* background: #f9f9f9; */
	padding: 1px;
	border-radius: 5px;
	flex: 1 0 180px;
	margin: 0.4em;
}

.price_box h1 {
	margin-bottom: 10px;
}

.price_box img {
	width: 100%;
}

.yenPrice {
	margin: 0;
	border-bottom: none;
}

@media screen and (max-width:500px) {
	.btnLink.style07 {
		width: 90%;
		margin: 0 5%;
	}
}

@media screen and (max-width:500px) {
	.btnLink.style04 {
		width: 90%;
		margin: 0 5%;
	}
}


.btnLink.style04 {
	width: 100%;
	margin: 0;
	text-align: center;
	font-size: 1.0em;
	border-radius: 5px;
	transition: all 0.3s;
	overflow: hidden;
	background: #f7931e;
}

.btnLink.style04:hover {
	background: #ffb052(3, 46, 90);
}