/*	===============================================================
	● サイトCSSファイル
	---------------------------------------------------------------
	Release 2025.04.04                               Powerd by TDR
	=============================================================== */

	/*============================
		Webフォント
	============================*/
	@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@700&display=swap');
	/*
		font-family: 'Noto Serif JP', serif;
		font-family: 'Zen Kaku Gothic New', sans-serif;
		*/

	/* カスタムプロパティ */
	:root {
		--font_awesome:"Font Awesome 6 Free";
		--main_color:#3da88d;
		--main_color2:#daf7ef; /* メインカラーの薄い色 */
		--sub_color:#ec4a3f;
		--font_color:#222;	/* フォントカラー */
		--aside_color:#999;
		--mb_xsmall:8px;
		--mb_small:16px;
		--mb_middle:32px;
		--mb_large:48px;
	}
	/*【共通】パーツ
	----------------------------------------------------------------*/
	a,
	a * {
		color:#222;
		/* transition: 0.3s; */
		transition: 0.1s;
		text-decoration: none;
	}
	a:hover, a:active {
		text-decoration:none;
		opacity: 0.7;
		filter: alpha(opacity=70);
	}
	img {
		max-width: 100%;
		height: auto;
	}
	::placeholder
	{
		color:#ccc;
	}
	p {
		margin: 0;
		text-align: justify;
		word-break: break-all;
	}
	.pc{display: inline-block;}
	.sp{display: none;}

	@media screen and (max-width: 768px)
	{
		.pc{display: none;}
		.sp{display: inline-block;}
	}

	.mb_x{margin-bottom:var(--mb_xsmall)!important}
	.mb_s{margin-bottom:var(--mb_small)!important}
	.mb_m{margin-bottom:var(--mb_middle)!important}
	.mb_l{margin-bottom:var(--mb_large)!important}
	.mt_l{margin-top:var(--mb_large)!important}

	.m_auto{margin:auto}
	/*============================
		レイアウト
	============================*/
	html
	{
		overflow: auto;
		font-size: 62.5%;
		margin: auto;
		padding:0;
		scroll-behavior: smooth;
		scroll-padding-top: 130px;
	}

	body
	{
		font-size: 1.7rem;
		background: #fff;
		color: var(--font_color);
		font-family: 'Noto Sans JP', "Yu Gothic Medium",
			"游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3",
			"Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "MS Ｐゴシック",
			"MS PGothic", sans-serif;
		font-weight: 400;
		margin: auto;
		padding: 0;
		position: relative;
		line-height: 1.7;
		letter-spacing: 0.05em;
	}
	main
	{
		display:block;
		width: 100%;
		/* overflow: hidden; */
		position: relative;
		z-index: 0;
		margin-bottom: 0;
	}
	main > article,
	main > section
	{
		display: block;
		width: 100%;
		background: #fff;
	}
	.container
	{
		max-width:1200px;
		width:100%;
		margin:10px auto;
		padding:50px 30px 0px;
		position: relative;
		z-index: 0;
	}
	article > .container
	{
		padding-top: 60px;
	}
	header > .container
	{
		max-width:100%;
	}
	section.contents_wrap
	{
		width: 100%;
	}
	figure img
	{
		width:100%;
		height:auto;
	}
	figure.obfit_contain img
	{
		object-fit: contain!important;
	}
	figure img[data-lity="data-lity"]
	{
		cursor: pointer;
	}
	figure img[data-lity="data-lity"]:hover
	{
		opacity: 0.8;
	}

	@media screen and (max-width: 768px)
	{
		body
		{
			font-size: 1.4rem;
		}
		.container
		{
			padding:20px 15px 0px;
		}
		article > .container
		{
			padding-top: 30px;
		}

		.radio_wrap
		{
			width: fit-content;
		}
		.radio_wrap ul
		{
			width: fit-content;
			gap:10px;
		}
		section.contents_wrap .contents
		{
			max-width: 100%;
			width: 100%;
			padding:30px 20px;
		}
		.pc_only{display:none;}
		.sp_only{display:inline-block;}
	}


	/* # =================================================================
   # Branding
   # ================================================================= */
	.branding.main_kv
	{
		position: relative;
		width: 100%;
		height:530px;
		margin-top:80px;
		z-index: -1;
	}
	.branding.main_kv .kv_img
	{
		width: 100%;
		height: 100%;
		margin:0px 0 0 0;
		padding:0;
		object-fit: cover;
		position:absolute;
	}
	.kv_img img
	{
		width: 100%;
		height: 100%;
		object-fit: cover;
		position: absolute;
		object-position: 50% 40%;
	}
	.branding.sub_kv
	{
		position: relative;
		width: 100%;
		height:200px;
		margin-top:80px;
		z-index: -1;
	}
	.branding.sub_kv .kv_img img
	{
		width: 100%;
		height: 100%;
		top:0;
		left:0;
		object-fit: cover;
		position: absolute;
		object-position: 75% 65%;
	}
	@media screen and (max-width: 768px)
	{
		.branding.main_kv
		{
			height:400px;
			margin-top:50px;
		}
		.branding.sub_kv
		{
			height:100px;
			margin-top:50px;
		}
	}

	.kv_inner
	{
		width: 100%;
		max-width: 550px;
		position: absolute;
		top: 100px;
		left: 30px;
		transform: translate(0%, 0%);
		z-index: 99;
		background: var(--main_color2);
		padding:16px 24px;
	}
	.kv_copy
	{
		width: auto;
		position: relative;
		top: 0px;
		left: 0px;
		transform: translate(0%, 0%);
		z-index: 99;
		color: var(--main_color);
		font-weight: 700;
	}
	.kv_copy h2
	{
		width: fit-content;
		font-size: 2.5rem;
		letter-spacing: 0.08em;
		font-weight: 700;
		line-height: 1.3;
		border-bottom: 2px solid var(--main_color);
		margin:0 auto 16px;
		padding-bottom:16px;
	}
	.kv_copy h2 span
	{
		display: block;
	}
	.kv_copy p {
		width: 100%;
		font-size: 1.7rem;
		letter-spacing: 0.13em;
		font-weight: 400;
		margin-bottom: 10px;
		line-height: 1.5;
		color:#555;
		text-align: center;
	}
	.kv_copy p a
	{
		text-decoration: underline;
	}
	.kv_copy p a:hover
	{
		text-decoration: none;
	}

	@media screen and (max-width: 768px)
	{
		.kv_inner
		{
			width: 100%;
			max-width: 100%;
			position: relative;
			top: 0px;
			left: 0px;
			transform: translate(0%, 0%);
			z-index: 99;
			background: rgba(200, 247, 233, 0.7);
			padding:13px;
		}
		.kv_img img
		{
			object-fit: 100%;
			object-position: 65% 0px;
		}
		.kv_copy h2
		{
			font-size: 1.6rem;
			letter-spacing: 0;
			line-height: 1.3;
			border-bottom: 1px solid #fff;
			margin:0 auto 8px;
			padding-bottom:8px;
		}
		.kv_copy p
		{
			width: 100%;
			font-size: 1.3rem;
			letter-spacing: 0;
			margin-bottom: 0;
			text-align: center;
		}
	}

	.login_wrap
	{
		position: absolute;
		top: 230px;
		left: 0px;
		width: 100%;
		margin: 0 auto;
		padding: 20px;
		border:2px solid var(--main_color);
		border-radius: 8px;
		background: RGBA(255, 255, 255, 1);
	}
	.login_wrap h3
	{
		white-space: nowrap;
		position: absolute;
		top:0em;
		left: 50%;
		transform: translate(-50%,-60%);
		font-size: 2rem;
		color: var(--main_color);
		font-weight: 700;
		text-align: center;
		margin-bottom: 20px;
		z-index: 999;
		-webkit-text-stroke: 5px #fff;
		text-stroke: 5px #fff;
		paint-order: stroke;
		/* text-shadow:
		1px 1px 0 #FFF, -1px -1px 0 #FFF,
		-1px 1px 0 #FFF, 1px -1px 0 #FFF,
		0px 1px 0 #FFF,  -1px 0 #FFF,
		-1px 0 0 #FFF, 1px 0 0 #FFF; */
	}
	.login_wrap h3::before
	{
		content: "";
		display: block;
		width: 110%;
		height: 3px;
		position: absolute;
		top:-3px;
		left:-5%;
		background: #fff;
		margin-top: 10px;
		z-index: -1;
	}
	.login form
	{
		display: flex;
		gap:20px;
		justify-content: center;
		align-items: center;
	}
	.login form label
	{
		width: calc((100% - 40px - 100px) / 2);
		position: relative;
	}
	.login form label i
	{
		position: absolute;
		top:50%;
		left: 10px;
		transform: translateY(-50%);
	}
	.login form input
	{
		font-size:1.7rem;
		width:100%;
		max-width: 300px;
		padding:10px 20px 10px 40px;
		border: 2px solid var(--main_color);
		border-radius: 6px;
		background: #fff;
		color: var(--main_color);
	}
	.login form button
	{
		width: 100px;
		color:#fff;
		background: var(--main_color);
		font-size: 1.7rem;
		font-weight: 700;
		border: none;
		border-radius: 6px;
		padding: 10px 20px;
		cursor: pointer;
		transition: 0.3s;
	}
	.login form button:hover
	{
		opacity: 0.6;
	}

	.login_wrap .forgot
	{
		width: 100%;
		text-align: right;
		margin-top: 15px;
		line-height: 1.8;
	}
	.login_wrap .forgot i
	{
		color:var(--main_color)
	}
	.login_wrap .forgot a
	{
		color: var(--main_color);
		font-size: 1.4rem;
		text-decoration: underline;
	}
	.login_wrap .forgot a:hover
	{
		text-decoration: none;
	}

	@media screen and (max-width: 768px)
	{
		.login_wrap
		{
			position: absolute;
			top: 170px;
			padding:20px 10px 10px;
		}
		.login_wrap h3
		{
			font-size: 1.7rem;
		}

		.login form
		{
			width: 100%;
			display: grid;
			grid-template-columns: 1fr 80px;
			grid-template-rows: 44px;
			grid-template-areas : "account button"
                        		  "password button";

			gap:8px;
			flex-wrap: wrap;
		}
		.login form label
		{
			display: block;
			width: 100%;
		}
		.login form label:first-child
		{
			grid-area: account;
		}
		.login form label:nth-child(2)
		{
			grid-area: password;
		}
		.login form input
		{
			max-width: 100%;
		}
		.login form button
		{
			grid-area: button;
			width: 100%;
			height:100%;
			font-size:1.5rem;
		}
		.login form input
		{
			padding: 6px 10px 6px 30px;
		}
	}

	/* # =================================================================
   # Index
   # ================================================================= */
   .top_special
   {
		width: 100%;
		/* margin-top:-480px; */
		background-size: cover;
		background-position: center center;
   }
   .important_wrap
   {
		background: #fff;
		border: 2px solid #ff1f54;
		padding: 10px 20px;
		border-radius: 0 10px 10px 0;
		width: calc(100% - 45px);
		position: relative;
		left: 45px;
		margin-bottom:60px;
   }
   .important_wrap:before
   {
		content: "\f05a";
		font-family: var(--font_awesome);
		font-weight: 800;
		font-size: 2rem;
		width: 45px;
		color: #fff;
		background: #ff1f54;
		border: 2px solid #ff1f54;
		border-radius: 10px 0 0 10px;
		position: absolute;
		top: -2px;
		left: -45px;
		height: calc(100% + 4px);
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.important_wrap ul li
	{
		margin-bottom: 8px;
		font-size:1.6rem;
		line-height: 1.3;
		display: flex;
		gap: 30px;
		color: #ff1f54;
		/* font-weight: 800; */
	}
	.important_wrap ul li:last-child
	{
		margin-bottom: 0;
	}
	.important_wrap ul li div.time
	{
		width: 106px;
		white-space: nowrap;
		letter-spacing: 0;
	}
	.important_wrap ul li div.ttl
	{
		width: calc(100% - 30px - 106px);
	}
	.important_wrap a *
	{
		color:#ff1f54;
	}
	.important_wrap a span
	{
		font-weight: 700;
	}
	.top_banner
	{
		width: 80%;
		margin:auto;
		padding-bottom: 50px;
	}
	.top_banner img
	{
		border: #666 1px solid;
	}
	@media screen and (max-width: 768px)
	{
		.important_wrap
		{
			margin-bottom:30px;
		}
		.important_wrap ul li
		{
			font-size:1.4rem;
			margin-bottom: 10px;
			display: block;
			gap: 30px;
		}
		.important_wrap ul li div.time
		{
			width: fit-content;
			border-bottom:1px dotted #ff1f54;
			margin-bottom:3px;
			padding-bottom:3px;
		}
		.important_wrap ul li div.ttl
		{
			width: 100%;
		}
		.important_wrap ul li div.ttl br
		{
			display: none;
		}
		.top_banner
		{
			width: 100%;
			padding-bottom: 16px;
		}
	}

	.top_service
	{
		background:#daf7ef;
		margin-top:20px;
		padding-bottom:40px;
	}
	main > section.top_service .container
	{
		background: #daf7ef!important;
	}
	.top_service h3
	{
		font-size: 2.5rem;
		line-height: 1.3;
		margin:0 auto 40px;
		text-align: center;
		position: relative;
	}
	.service_txt figure
	{
		width: 100%;
		max-width: 500px;
		margin: 32px auto;
	}
	.service_txt figure img
	{
		width: 100%;
		height: auto;
	}
	.service_txt
	{
		font-size:1.6rem;
		line-height: 1.5;
		margin: 0 auto;
	}

	@media screen and (max-width: 768px)
	{
		.top_service
		{
			padding-top:10px;
			background:#daf7ef;
		}
		.top_service h3
		{
			font-size: 1.7rem;
		}
	}

	.top_service .point_list
	{
		width:100%;
		display: flex;
		align-items: stretch;
		justify-content: center;
		gap:40px;
		margin:40px auto 0px;
	}
	.top_service .point_list li
	{
		width: calc((100% - 80px) / 3);
		text-align: center;
	}
	.top_service .point_list li figure
	{
		width: 100%;
		aspect-ratio: 589 / 333;
		padding:0;
		margin:0;
	}
	.top_service .point_list li figure img
	{
		width: 100%;
		height: 100%;
		object-fit: cover;
		background: #fff;
		border-radius: 10px;
	}
	.top_service .point_list li .point_inner
	{
		font-size:1.5rem;
		width: fit-content;
		margin: 0 auto;
		line-height: 1.5;
		padding: 16px 0;
		color:var(--main_color)
	}
	.top_service .point_list li .point_inner p
	{
		font-weight: bold;
	}
	@media screen and (max-width: 768px)
	{
		.top_service .point_list
		{
			display: block;
			margin:24px auto 0px;
		}
		.top_service .point_list li
		{
			width: 100%;
		}
		.top_service .point_list li figure
		{
			width: 80%;
			margin: auto;
		}
		.top_service .point_list li .point_inner
		{
			display: block;
			padding:5px 0 0;
		}
		.top_service .point_list li .point_inner p
		{
			margin-bottom: 24px;
		}
	}

	.top_news
	{
		padding-bottom:40px;
	}
	.top_news h3
	{
		font-size: 2.5rem;
		line-height: 1.3;
		margin: 0 auto 20px;
		text-align: center;
		position: relative;
	}
	.top_news h3::after
	{
		content: "";
		width: 32%;
		display: block;
		height: 2px;
		border-radius: 1px;
		position: absolute;
		top: 100%;
		left: 50%;
		transform: translate(-50%, 0%);
		background: var(--main_color);
		margin-top: 10px;
	}
	ul.news_list
	{
		width: 100%;
		max-width: 1000px;
		margin: 40px auto;
		padding: 40px 0 0;
		list-style: none;
	}
	ul.news_list li
	{
		margin-bottom: 24px;
		padding-bottom:8px;
		border-bottom: 1px dotted var(--main_color);
	}
	ul.news_list li > a
	{
		display: flex;
		font-size:1.6rem;
		align-items: center;
		flex-wrap: wrap;
		gap: 50px;
		line-height: 1;
		margin-bottom: 10px;
		color: #222;
		padding-bottom: .3em;
		background: linear-gradient(#38ade0, #38ade0) 0 100%/0 3px no-repeat;
		transition: background 0s;
		text-decoration: none;
	}
	ul.news_list li > a time,
	.detail_hd > a time
	{
		display: inline-block;
		font-size: 1.6rem;
		color: var(--main_color);
	}
	ul.news_list li > a
	{
		display: flex;
		font-size:1.6rem;
		align-items: center;
		flex-wrap: wrap;
		gap: 50px;
		line-height: 1;
		margin-bottom: 10px;
		color: #222;
		padding-bottom: .3em;
		background: linear-gradient(#38ade0, #38ade0) 0 100%/0 3px no-repeat;
		transition: background 0s;
		text-decoration: none;
	}
	@media screen and (max-width: 768px)
	{
		ul.news_list
		{
			margin: 32px auto;
			padding: 0px 0;
		}
		ul.news_list li > a
		{
			gap: 10px;
		}
	}
	.page_button
	{
		font-size:1.6rem;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap:15px;
		margin-top:15px;
		margin-bottom: 64px;
	}
	.page_button li.active
	{
		display: inline-block;
		background-color: var(--main_color);
		border: 1px solid #ddd;
		padding: 8px 12px;
		margin: 0 2px 5px;
		white-space: nowrap;
		text-align: center;
		text-decoration: none;
		line-height: 1.5;
		transition: 0.3s;
		color: #fff;
	}
	.page_button li a,
	.page_button li span
	{
		display: inline-block;
		background-color: #fff;
		border: 1px solid #ddd;
		padding: 8px 12px;
		margin: 0 2px 5px;
		white-space: nowrap;
		text-align: center;
		text-decoration: none;
		line-height: 1.5;
		transition: 0.3s;
		color: #282b2c;
	}
	.news_detail
	{
		margin-top:32px;
		font-size: 1.6rem;
		text-align: right;
	}
	#post_contents
	{
		text-align: left;
		margin-top: 16px;
		font-size: 1.7rem;
		display: block;
		width: 100%;
		font-weight: 400;
		line-height: 1.8;
		letter-spacing: .05em;
	}

	#post_contents > h3
	{
		background: #fff1f1;
		padding: 1rem;
		font-size: 20px;
		padding-left: 30px;
		position: relative;
		font-weight: 600;
		margin-bottom: 30px;
	}
	#post_contents > h3:before
	{
		content: "";
		width: 10px;
		height: 10px;
		position: absolute;
		top: 50%;
		left: 0;
		transform: translateY(-50%);
		background: var(--main_color);
	}

	#post_contents > h4
	{
		font-size: 18px;
		padding-left: 20px;
		position: relative;
		font-weight: 600;
		margin-bottom: 20px;
	}
	#post_contents > h4:before
	{
		content: "";
		position: absolute;
		top: 9px;
		left: 0;
		width: 10px;
		height: 10px;
		background: var(--main_color);
	}
	#post_contents > *
	{
		margin-bottom:0.8em;
	}
	#post_contents ul
	{
		list-style: inside disc;
	}
	.page_back
	{
		text-align: center;
		margin-top: 50px;
		margin-bottom: 64px;
	}
	.page_back a
	{
		font-size: 1.7rem;
		display: inline-block;
		background-color: #fff;
		border: 1px solid #ddd;
		padding: 8px 12px;
		margin: 0 2px 5px;
		white-space: nowrap;
		text-align: center;
		text-decoration: none;
		line-height: 1.5;
		transition: 0.3s;
		color: #282b2c;
	}

	/* # =================================================================
   # Sub
   # ================================================================= */
   .sub
   {
	/* margin-top:80px; */
   }
   .sub.terms
   {
	padding-bottom:80px;
   }
   .sub h1
   {
		width: fit-content;
		font-size: 2.5rem;
		color:var(--main_color);
		letter-spacing: 0.08em;
		font-weight: 700;
		line-height: 1.3;
		border-bottom: 2px solid #fff;
		margin:0 auto 16px;
		padding-bottom: 16px;
		position: relative;
   }
   .sub h1::after
   {
	   content: "";
	   width: 200%;
	   max-width: 315px;
	   display: block;
	   height: 2px;
	   border-radius: 1px;
	   position: absolute;
	   top: 80%;
	   left: 50%;
	   transform: translate(-50%, 0%);
	   background: var(--main_color);
	   margin-top: 10px;
   }
   @media screen and (max-width: 768px)
   {
		.sub
		{
		margin-top:0px;
		}
		.sub h1
		{
			font-size: 1.8rem;
			letter-spacing: 0;
		}
   }
	.reminder_form
	{
		margin: 0 auto;
		width: 90%;
		max-width: 720px;
	}
	.reminder_form p
	{
		margin: 0 auto;
		width: 100%;
		font-size: 1.6rem;
		line-height: 1.5;
	}
	.back_link
	{
		width: 100%;
		text-align: center;
		display: block;
		margin: 32px auto 40px;
	}
	.back_link a
	{
		display: inline-block;
		font-size:1.5rem;
		color: var(--main_color);
		text-decoration: underline;
	}

	.contents_txt
	{
		width: 100%;
		max-width: 1200px;
		padding: 40px 0;
		font-size: 1.7rem;
		line-height: 1.8;
		margin: 0 auto 40px;
	}
	.contents_txt h3
	{
		width: 100%;
		font-size: 2rem;
		color:var(--font_color);
		letter-spacing: 0.08em;
		font-weight: 700;
		line-height: 1.3;
		border-bottom: 2px solid var(--main_color2);
		margin:16px 0 16px;
		padding-bottom: 16px;
	}

	.terms .contents_txt h3
	{
		margin:40px 0 16px;
	}

	.about .contents_txt table
	{
		table-layout: fixed;
		margin:8px auto 32px;
		font-size:0.9em;
		line-height: 1.5;
	}
	.about .contents_txt table th
	{
		width: calc(12em + 32px);
		font-weight: 400;
		text-align: left;
		padding:8px 16px;
		background: var(--main_color2);
		border: 1px solid var(--main_color);
	}
	.about .contents_txt table td
	{
		width: calc(100% - 12em + 32px);
		font-weight: 400;
		text-align: left;
		padding:8px 24px;
		border: 1px solid var(--main_color);
	}
	.about .contents_txt table td ul
	{
		margin-left:1.5em;
		margin-top:0.3em;
		font-size:0.9em;
		list-style-type: disc;
	}
	.about .contents_txt table td ul li:not(:last-child)
	{
		margin-bottom:0.5em;
	}
	.about .contents_txt table td ul li::marker
	{
		color:var(--main_color)
	}

	.about .box
	{
		border: 1px dashed var(--main_color);
		padding:16px 24px;
		border-radius: 10px;
		width:90%;
		margin-inline: auto;
		background: #fbffe6;
	}
	.about .box h3
	{
		color:#486ac7;
		margin:0 0 16px 0;
		padding:unset;
		border: none;
	}
	.about .box p
	{
		margin-bottom:0;
	}

	.contents_txt ol
	{
		margin: 20px 0 0 1.5em;
	}
	.contents_txt ol li
	{
		position: relative;
		list-style: outside decimal;
		padding: 0 0 0 5px;
	}
	.contents_txt ol li:first-child
	{
		margin-top: 0;
	}
	.contents_txt ol li::marker
	{
		font-size: 110%;
		font-weight: 400;
		color: #222;
	}
	.contents_txt ol.brackets
	{
		padding: 0px 0 0 0px;
		margin:0px 0 0 1.5em;
		text-indent: -1.7em;
		list-style-type: none;
	}
	.contents_txt ol.brackets li
	{
		list-style-type: none;
		counter-increment: cnt;
	}
	.contents_txt ol.brackets li::before
	{
		content: "("counter(cnt)") ";
	}

	@media screen and (max-width: 768px)
	{
		.contents_txt
		{
			padding: 0px 0 16px;
			font-size:1.4rem;
		}
		.contents_txt h3
		{
			font-size: 1.7rem;
			padding-bottom:8px;
			margin-bottom:8px;
		}
		.contents_txt p
		{
			margin: 0 auto 24px;
			font-size:1.4rem;
		}
		.contents_txt ol
		{
			margin: 16px 0 0 30px;
			font-size: 1.4rem;
			line-height: 1.8;
		}
		.about .contents_txt table th
		{
			display: block;
			width: 100%;
			border-bottom: none;
		}
		.about .contents_txt table td
		{
			display: block;
			width: 100%;
		}
		.about .contents_txt table tr:not(:last-child) td
		{
			border-bottom:none;
		}
	}

	.plus_baton_text
	{
		margin-top:3em;
		font-size:2rem;
		text-align: center;
		padding: 16px 24px;
		background-color: var(--main_color2);
		color: var(--main_color);
		font-weight: 700;
		border-radius: 5px;
	}
	.plus_baton_text a
	{
		padding:0 0.3em;
		color: var(--main_color);
		text-decoration: underline;
	}
	.plus_baton_text a:hover
	{
		text-decoration: none;
	}

	.point_wrap
	{
		width: 100%;
		max-width: 1200px;
		margin: 0 auto;
		padding: 40px 0;
	}
	.point_wrap ul
	{
		display: flex;
		flex-direction: column;
		gap: 64px;

	}
	.point_wrap ul li
	{
		display: flex;
		justify-content: flex-start;
		gap:48px;
	}
	.point_wrap ul li:nth-child(even)
	{
		flex-direction: row-reverse;
	}
	.point_wrap ul li .point_img
	{
		width:40%;
		position: relative;
	}
	.point_wrap ul li .point_img p
	{
		position: absolute;
		top:0;
		left:0;
		background: var(--main_color);
		padding:10px 20px;
		color:#fff;
		font-size: 1.6rem;
		font-weight: 700;
		display: inline-block;
		width: fit-content;
		border-radius: 10px 0 0 0 ;
	}

	.point_wrap ul li .point_img figure
	{
		width:100%;
		margin:0;
		padding:0;
	}
	.point_wrap ul li .point_img figure img
	{
		border-radius: 10px;
		background: var(--main_color2);
	}
	.point_wrap ul li .point_text
	{
		width:calc(100% - 50px - 40%);
	}
	.point_wrap ul li .point_text h4
	{
		width: 100%;
		font-size: 2rem;
		color:var(--font_color);
		letter-spacing: 0.08em;
		font-weight: 700;
		line-height: 1.3;
		border-bottom: 2px solid var(--main_color2);
		margin:0 0 16px;
		padding-bottom: 16px;
	}

	@media screen and (max-width: 768px)
	{
		.point_wrap
		{
			padding: 16px 0;
		}
		.point_wrap ul
		{
			gap:20px
		}
		.point_wrap ul li
		{
			display: block;
		}
		.point_wrap ul li .point_img
		{
			width:80%;
			margin: auto;
		}
		.point_wrap ul li .point_img figure
		{
			margin:0 auto 16px;
		}
		.point_wrap ul li .point_text
		{
			width:100%;
		}
		.point_wrap ul li .point_text h4
		{
			font-size: 1.7rem;
			margin:0 0 8px;
			padding-bottom: 8px;
		}
	}

	.faq
	{
		margin-top: 24px;
	}
	.faq dl
	{
		position: relative;
		margin: 0 0 1em;
		padding: 0.3em 0.3em;
		background: var(--main_color2);
		border-radius: 10px;
		font-size:1.6rem;
	}
	.faq dt
	{
		position: relative;
		padding: 10px 10px 10px 58px;
		color: var(--font_color);
		border-radius: 10px;
		line-height: 1.8;
		font-weight: normal;
		cursor: pointer;
	}
	.faq dt > span
	{
		display: inline-block;
		line-height: 30px;
		position: absolute;
		padding: 0em;
		color: #fff;
		background: var(--main_color);
		font-weight: bold;
		font-size: 1.2em;
		width: 33px;
		text-align: center;
		height: 33px;
		top: 8px;
		left: 10px;
		border-radius: 50%;
	}
	.faq dd
	{
		background: #fff;
		padding: 20px 20px 20px 58px;
		margin: 0;
		line-height: 1.8;
		position: relative;
		display: flex;
	}
	.faq dd > span
	{
		display: inline-block;
		line-height: 26px;
		position: absolute;
		padding: 0em;
		color: #fff;
		background: #ffc163;
		font-weight: bold;
		font-size: 1.2em;
		width: 33px;
		text-align: center;
		height: 33px;
		left: 10px;
		border: solid 3px white;
		border-radius: 50%;
	}
	.faq dd p
	{
		margin: 0;
	}
	@media screen and (max-width: 768px)
	{
		.faq dl
		{
			font-size:1.4rem;
		}
		.faq dt
		{
			padding: 10px 10px 10px 48px;
		}
		.faq dt > span
		{
			line-height: 28px;
			font-size: 1em;
			width: 30px;
			height: 30px;
		}
		.faq dd
		{
			padding: 20px 20px 20px 48px;
		}
	}


	/* # =================================================================
   # Form
   # ================================================================= */

   #msg { width:40%; margin:auto; margin-top:25px; margin-bottom:25px; padding:10px 0px 0px 0px; }
   #success { width:30%; margin:auto; margin-top:25px; margin-bottom:25px; padding:20px 25px 0px 25px; border:1px solid #ccc; background:#f5f5f5; }
   #success ul { margin-bottom:30px; text-align:left; }
   #success ul li { margin:15px 0px; font-size:1.2rem; }
   #success ul li span { color:gray; }
   .form_tbl
   {
	   width: 100%;
	   margin: 30px auto;
	   border: none;
	   border-collapse: collapse;
	   font-size: 1.6rem;
	   line-height: 1.8;
	   border-top: 1px solid #ccc;
	   border-spacing: 0;
	   table-layout: fixed;
   }
   .form_tbl tr
   {
	   width: 100%;
	   border-bottom: 1px solid #ccc;
   }
   .form_tbl th
   {
	   width: 25%;
	   max-width: 250px;
	   color: var(--font_color);
	   margin: 0;
	   background: #f5f5f5;
	   border-top: 1px solid #cccccc;
	   border-bottom: solid 1px var(--main_color);
	   position: relative;
	   background-clip: padding-box;
	   vertical-align: top;
	   font-weight: bold;
	   text-align: left;
	   padding-top: 1.3em;
	   padding-bottom: 1.3em;
	   padding-left: 20px;
	   padding-right: 50px;
   }
   .form_tbl th .required
   {
	   position: absolute;
	   top: 1.3em;
	   transform: translate(0, 70%);
	   right: 2em;
	   color: #fff;
	   background: var(--main_color);
	   padding: 0.1em 0.3em;
	   font-size: 1rem;
	   border-radius: 3px;
   }

   .form_tbl td
   {
	   margin: 0;
	   text-align: left;
	   background: #fff;
	   padding: 1.3em 2em 1.3em 2em;
	   background: #fff;
	   background-clip: padding-box;
	   position: relative;
	   vertical-align: middle;
   }
   .form_tbl td .flex
   {
	   width: 100%;
	   display: flex;
	   justify-content: flex-start;
	   align-items: flex-start;
	   gap: 10px 20px;
	   position: relative;
   }

   .w100{width: 100%;}
   .w80{width: 80%;}
   .w50{width: 50%;}

   .form_tbl input[type="text"],
   .form_tbl input[type="password"],
   .form_tbl input[type="number"],
   .form_tbl input[type="tel"],
   .form_tbl input[type="email"],
   .form_tbl select,
   .form_tbl textarea
   {
	   padding: 10px;
	   border: #999 solid 1px;
	   border-radius: 4px;
	   background: #fff;
	   -webkit-appearance: none;
	   -moz-appearance: none;
	   appearance: none;
	   font-size: 1.6rem;
	   width: 100%;
   }
   .form_tbl select {
	   padding-right: 25px;
	   position: relative;
	   display: block;
	   background: url('data:image/svg+xml,<!--%3Fxml version="1.0" encoding="utf-8"%3F--><!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --><svg version="1.1" id="_x32_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="width: 32px; height: 32px; opacity: 1;" xml:space="preserve"><style type="text/css">.st0{fill:%233da88d;}</style><g><polygon class="st0" points="440.189,92.085 256.019,276.255 71.83,92.085 0,163.915 256.019,419.915 512,163.915"></polygon></g></svg>') no-repeat right 5px center;
	   background-size: 15px 15px;
   }
   .form_tbl ul:has(input[type="radio"])
   {
	   display: flex;
	   justify-content: flex-start;
	   align-items: center;
	   gap: 10px;
   }
   .form_tbl ul:has(input[type="radio"]) label
   {
	   padding: 10px 20px;
	   border: #999 solid 1px;
	   border-radius: 4px;
	   background: #fff;
	   -webkit-appearance: none;
	   -moz-appearance: none;
	   appearance: none;
	   font-size: 1.6rem;
	   width: object-fit;
	   cursor: pointer;
	   text-align: center;
	   line-height: 1;
   }
   .form_tbl ul:has(input[type="radio"]) label input[type="radio"]
   {
	   display: none;
   }
   .form_tbl ul:has(input[type="radio"]) label:hover
   {
	   border: 1px solid var(--main_color);
   }
   .form_tbl ul:has(input[type="radio"]) label:has(input[type="radio"]:checked)
   {
	   background: var(--main_color);
	   border: 1px solid var(--main_color);
	   color:#fff;
   }
   @media screen and (max-width: 768px)
   {
	   .form_tbl
	   {
		   margin: 30px auto 30px;
	   }
	   .form_tbl tr
	   {
		   display: block;
		   margin-bottom: 1em;
		   border-bottom: solid 1px var(--main_color);
	   }
	   .form_tbl th
	   {
		   line-height: 1.5;
		   border-bottom: none;
		   display: block;
		   padding-top: 0.5em;
		   padding-bottom: 0.5em;
		   width: 100%;
		   max-width: 100%;
	   }
	   .form_tbl th .required
	   {
		   top: 0.5em;
		   transform: translate(0, 40%);
	   }
	   .form_tbl td
	   {
		   padding: 15px 1em 15px;
		   display: block;
		   width: 100%;
	   }
   }
   .btn_box
   {
	   margin-top: 40px;
	   text-align: center;
	   display: flex;
	   justify-content: center;
	   flex-direction: column;
	   align-items: center;
	   gap:20px
   }
   .btn_box.start
   {
	   margin-top: 40px;
   }
   .btn_box :is(button, a)
   {
		appearance: none;
		display: block;
		padding: 10px 20px;
		background: var(--main_color);
		color: #fff;
		font-size: 1.7rem;
		font-weight: 700;
		border-radius: 6px;
		margin: 0 auto;
		line-height: 1.8;
		border: none;
		width: 350px;
		max-width: 85%;
		display: flex;
		justify-content: center;
		align-items: center;
		gap:5px;
		cursor: pointer;
		transition: 0.3s;
	}
	.btn_box :is(button, a).dl_btn
	{
	   background: #fff;
	   color: var(--main_color);
	   border:2px solid var(--main_color);
   }
   .btn_box :is(button, a):hover
   {
	   opacity: 0.8;
   }
   .btn_box :is(button, a).dl_btn:hover
   {
	   background: var(--main_color);
	   color: #fff;
   }
   .btn_box :is(button, a).dl_btn:hover::after
   {
		background: var(--main_color2);
	}
	.btn_box :is(button, a)::after
	{
		content: "";
		display: inline-block;
		width: 1.5em;
		height: 1.5em;
	}
	.btn_box button.start::after
	{
		background: var(--main_color2);
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
		mask-image: url(../images/icon/icon_next.svg);
	}
	.btn_box button.back_btn
	{
		background: #ccc;
	}
	.btn_box button.back_btn::after
	{
		content:none
	}
	.btn_box a.dl_btn::after
	{
		background: var(--main_color);
		mask-repeat: no-repeat;
		mask-position: center;
		mask-size: contain;
		mask-image: url(../images/icon/icon_dl.svg);
	}
	@media screen and (max-width: 768px)
	{
		.form_tbl {
			margin: 30px auto 16px;
		}
		.btn_box {
			margin-top: 8px;
		}
	}