/*	===============================================================
	● サイト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:#e9b43e;
		--main_color2:#f3ead6; /* メインカラーの薄い色 */
		--sub_color:#80b646;
		--sub_color2:#d6f1bb;
		--font_color:#333;	/* フォントカラー */
		--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;}
	}

	ul.kome
	{
		list-style: none;
		padding-left: 1.0em;
		margin-left: 0.5em;
	}
	ul.kome li
	{
		text-indent: -1.5em;
		margin-bottom:0.2em;
		line-height: 1.5;
	}
	ul.kome li:before
	{
		content: "※";
		margin-right: 0.3em;
	}


	.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: 100px;
	}

	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;
		font-size: 1.7rem;
		line-height: 1.7;
	}
	main > article,
	main > section
	{
		display: block;
		width: 100%;
		background: #fff;
	}
	.container
	{
		max-width:1300px;
		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:30px 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:65px;
		z-index: -1;
		background-image: url(../images/top_bg.png);
		background-repeat: no-repeat;
		background-position: right bottom;
		background-size: cover;
	}
	.branding.main_kv .kv_inner
	{
		width: 100%;
		height: 100%;
		margin:30px auto 50px;
		padding:0;
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
	}
	.kv_copy
	{
		color: var(--main_color);
		font-weight: 700;
		width: fit-content;
		max-width: 550px;
	}
	.kv_copy h2
	{
		font-size: clamp(4rem, -2rem + 8vw, 8rem);
		line-height: 1.2;
		letter-spacing: 0.05em;
	}
	.kv_copy h2 span
	{
		display: block;
	}
	.kv_copy p
	{
		font-weight: 400;
		font-size:1.8rem;
		color:var(--font_color);
		margin:1em auto 2.2em;
	}
	.entry_btn
	{
		text-align: center;
	}
	.entry_btn a
	{
		font-size:2rem;
		min-width: 250px;
		text-align: center;
		display: inline-block;
		color:#fff;
		background:var(--sub_color);
		padding:0.3em 1.5em;
		border-radius: 2rem;
		letter-spacing: 0.3em;
	}
	.branding.sub_kv
	{
		position: relative;
		width: 100%;
		height:150px;
		margin-top:50px;
		z-index: -1;
		background-color: var(--main_color2);
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.branding.sub_kv h1
	{
		font-size: 3.5rem;
		font-weight: 700;
		margin-bottom:0;
		text-align: center;
		letter-spacing: 0.1em;
		/* color:#fff; */
		color:var(--main_color);
		text-shadow: 0px 0px 10px rgba(255, 255, 255, 1);
		display: flex;
		align-items: center;
		line-height: 1.3;
		gap:0.8em
	}
	.branding.sub_kv h1::before,
	.branding.sub_kv h1::after
	{
		content: '';
		width: 80px;
		height: 1px;
		background-color: var(--main_color);
		flex-grow: 1;
	}
	@media screen and (max-width: 768px)
	{
		.branding.main_kv
		{
			height:auto;
			margin-top:35px;
		}
		.branding.main_kv .kv_inner
		{
			margin:20px auto 20px;
			gap:48px;
			padding-bottom: 30px;
			flex-direction: column;
		}
		.kv_copy
		{
			width: fit-content;
			max-width: none;
		}
		.kv_copy h2
		{
			font-size: clamp(4rem, 2.571rem + 7.14vw, 6rem);
			line-height: 1.2;
			letter-spacing: 0.05em;
			margin-bottom: 15px;
		}
		.kv_copy h2 span
		{
			display: inline-block;
		}
		.kv_copy p
		{
			font-size:1.6rem;
			margin:1em auto 2.2em;
		}
		.branding.sub_kv
		{
			height:80px;
			margin-top:50px;
		}
		.branding.sub_kv h1
		{
			font-size: 2.3rem;
		}
		.branding.sub_kv h1::before,
		.branding.sub_kv h1::after
		{
			width: 40px;
		}
	}

	.login_wrap
	{
		width: calc(50% - 120px);
		min-width: 450px;
		max-width: 700px;
		margin: 0;
		padding:0 80px;
		position: relative;
		text-align: center;
	}
	.login_wrap h3
	{
		font-size: 5rem;
		color: var(--sub_color);
		font-weight: 700;
		text-align: left;
		margin-bottom: 20px;
	}
	.login form label
	{
		width: 100%;
		display: block;
		position: relative;
		margin-bottom: 24px;
		border-color: #333;
	}
	.login form label i.fas
	{
		position: absolute;
		top:50%;
		left: 15px;
		transform: translateY(-50%);
		font-size:1.7rem;
	}
	.login form label i.fa-solid
	{
		position: absolute;
		top:50%;
		left:auto;
		right: 3px;
		transform: translateY(-50%);
		font-size:1.7rem;
		line-height: 40px;
		width:50px;
		height:40px;
		border-radius: 3px;
		background:#fff ;
	}
	.login form input
	{
		font-size:1.7rem;
		width:100%;
		padding:10px 20px 10px 40px;
		border: 2px solid #333;
		border-radius: 6px;
		background: #fff;
		color: var(--font_color);
		appearance: none;
	}
	.login form button
	{
		width: 200px;
		margin: auto;
		display: inline-block;
		color:var(--sub_color);
		border:solid 2px var(--sub_color);
		background: #fff;
		font-weight: 700;
		cursor: pointer;
		transition: 0.3s;
		padding:0.3em 1.5em;
		border-radius: 2rem;
		letter-spacing: 0.3em;
	}
	.login form button:hover
	{
		opacity: 0.6;
	}

	.login_wrap .forgot
	{
		width: 100%;
		position: absolute;
		top:24px;
		left:240px;
		text-align: left;
		margin-top: 15px;
	}
	.login_wrap .forgot a
	{
		color: var(--font_color);
		font-size: 1.4rem;
		text-decoration: underline;
	}
	.login_wrap .forgot a:hover
	{
		text-decoration: none;
	}

	@media screen and (max-width: 768px)
	{
		.login_wrap
		{
			width: 100%;
			margin: auto;
			min-width: 100%;
			padding:0 30px;
			position: relative;
			text-align: center;
		}
		.login_wrap h3
		{
			font-size: 3rem;
			text-align: left;
			margin-bottom: 0px;
		}
		.login form label
		{
			margin-bottom: 16px;
		}
		.login_wrap .forgot
		{
			width: 100%;
			position: static;
			text-align: right;
			margin-top: 0px;
			margin-bottom: 10px;
		}
	}

	/* # =================================================================
   # Index
   # ================================================================= */
	.top_guide
	{
		margin-top:20px;
		padding-bottom:40px;
	}
	.top_guide h3
	{
		font-size: 4.5rem;
		color:var(--main_color);
		line-height: 1.3;
		margin:0 auto 40px;
		text-align: center;
		position: relative;
	}
	.guide_ttl
	{
		display: flex;
		width:100%;
		max-width: 1000px;
		align-items: center;
		gap:80px;
		margin:0 auto 64px;
	}
	.guide_ttl > div
	{
		width: 65%;
	}
	.guide_ttl > figure
	{
		width:calc( 100% - 65% - 80px );
		display: block;
		margin:0;
		padding:0;
	}
	.top_guide figure img
	{
		width: 100%;
		height: auto;
	}
	@media screen and (max-width: 768px)
	{
		.top_guide
		{
			margin-top:10px;
			padding-bottom:20px;
		}
		.top_guide h3
		{
			font-size: 3.5rem;
			margin:0 auto 40px;
		}
		.guide_ttl
		{
			display: flex;
			width:100%;
			flex-direction: column;
			gap:20px;
			margin:0 auto 48px;
		}
		.guide_ttl > div
		{
			width: 100%;
		}
		.guide_ttl > figure
		{
			width:80%;
			margin:auto;
		}
	}

	.guide_list
	{
		display: flex;
		justify-content: space-between;
		gap:50px;
		margin-bottom:80px;
		counter-reset: number 0;
	}
	.guide_list li
	{
		width: calc(( 100% - 50px *3 ) / 4);
		position: relative;
		color:var(--main_color);
		font-size: 2.5rem;
		font-weight: 700;
		list-style-position: inside;
	}
	.guide_list li h4
	{
		font-size:2.5rem;
		position: relative;
		letter-spacing: 0.1em;
		top:0;
		left:0px;
	}
	.guide_list li h4::before
	{
		counter-increment: number 1;
		content: counter(number)".";
	}
	.guide_list li .guide_inner
	{
		font-size:1.7rem;
		color:var(--font_color);
		font-weight: 400;
		margin-top:16px;
	}
	.guide_list li .btn_box a
	{
		font-size: 1.7rem;
		white-space: nowrap;
		min-width: 200px;
		text-align: center;
		display: inline-block;
		color: #fff;
		background: var(--sub_color);
		padding: 0.3em 1.5em;
		border-radius: 1.8rem;
		letter-spacing: 1px;
	}
	@media screen and (max-width: 768px)
	{
		.guide_list
		{
			display: block;
			margin-bottom:20px;
		}
		.guide_list li
		{
			width:100%;
			margin-bottom: 32px;
		}
		.guide_list li .guide_inner
		{
			font-size:1.4rem;
			margin-top:8px;
		}
		.guide_list li .btn_box
		{
			margin-top: 16px;
		}
		.guide_list li .btn_box a
		{
			font-size: 1.6rem;
		}
	}

	.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;
		}
	}

	/* # =================================================================
	# Sub
	# ================================================================= */
	.sub
	{
		padding-bottom: 80px;
	}
	.contents 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;
	}
	.sub.privacy h3
	{
		margin: 40px 0 16px;
	}

   /* guide */
	.sub.guide .guide_list
	{
		display: block;
	}
	.sub.guide .guide_list li
	{
		width:100%;
		margin-bottom: 48px;
	}
	.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
	{
		width: 100%;
		max-width: 1200px;
		margin: 0 auto;
		padding: 40px 0;
	}
	.contents 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 h3
	{
		margin:40px 0 16px;
	}

	.contents p
	{
		width: 100%;
		font-size: 1.6rem;
		line-height: 1.5;
		margin: 0 auto 40px;
	}
	.contents ol
	{
		margin: 20px 0 0 50px;
		font-size: 1.6rem;
		line-height: 1.8;
	}
	.contents ol li
	{
		position: relative;
		list-style: outside decimal;
		padding: 0 0 0 5px;
	}
	.contents ol li:first-child
	{
		margin-top: 0;
	}
	.contents ol li::marker
	{
		font-size: 130%;
		font-weight: 700;
		color: var(--main_color);
	}
	.contents ol li ol
	{
		padding: 0px 0 0 0px;
		margin:10px 0 0 30px;
	}
	@media screen and (max-width: 768px)
	{
		.sub.privacy h3
		{
			font-size: 1.6rem;
		}
		.sub.privacy p
		{
			font-size: 1.4rem;
		}
		.contents
		{
			padding: 0px 0 16px;
		}
		.contents h3
		{
			font-size: 1.7rem;
			padding-bottom:8px;
			margin-bottom:8px;
		}
		.contents p
		{
			margin: 0 auto 24px;
			font-size:1.4rem;
		}
		.contents ol
		{
			margin: 16px 0 0 30px;
			font-size: 1.4rem;
			line-height: 1.8;
		}
	}

	.plus_baton_text
	{
		color: var(--main_color);
	}

	.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 dl
	{
		position: relative;
		margin: 0 0 1em;
		padding: 0.3em 0.3em;
		background: var(--sub_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(--sub_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:100%;
		max-width: 600px;
		margin:auto;
		margin-top:25px;
		margin-bottom:25px;
		padding:15px 20px 10px;
	}
	#msg > p
	{
		text-align: center;
		margin-inline: auto;
		padding: 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;
	}
	#msg message_title
	{
		padding: 0 20px;
		background: transparent;
		font-weight: bold;
		display: inline-block;
		position: absolute;
		top: -2rem;
		left: 50%;
		transform: translateX(-50%);
		z-index: 1;
	}
	#msg message_title::after
	{
		content:"";
		display: block;
		width:100px;
		height:4px;
		margin-top:-12px;
		background-color: #fff;
		z-index: 100;
	}
	.error_form_message
	{
		font-size:0.7em;
		color:#ff1e1e;
		white-space: nowrap;
	}

	.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(--sub_color);
		padding: 0.1em 0.3em;
		font-size: 1rem;
		border-radius: 3px;
	}
	.form_tbl td
	{
		margin: 0;
		text-align: left;
		background: #fff;
		padding: 0.8em 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 10px;
		position: relative;
	}
	.form_tbl td .flex > div
	{
		margin:8px;
	}
	.form_tbl td .flex.zip > div.post_mark
	{
		position: absolute;
		top:50%;
		left:8px;
		transform:translate(0, -80%);
	}
	.form_tbl td .flex.zip > div.post_mark + div input
	{
		padding: 10px 10px 10px 30px;
	}
	.form_tbl td .flex p
	{
		font-size:1rem;
		color:var(--aside_color);
		position: absolute;
		top:-8px;
		left:8px;
	}

	.zip

	.flex .w100{width: calc(100% - 10px)!important;}
	.flex .w80{width: calc(80% - 10px)!important;}
	.flex .w60{width: calc(60% - 10px)!important;}
	.flex .w50{width: calc(50% - 10px)!important;}
	.flex .w30{width: calc(30% - 10px)!important;}

	.form_tbl input[type="text"],
	.form_tbl input[type="password"],
	.form_tbl input[type="number"],
	.form_tbl input[type="tel"],
	.form_tbl input[type="mail"],
	.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 textarea
	{
		field-sizing: content;
		min-height:8lh;
	}
	.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:%2380b646;}</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 .zip input[type="text"]
	{
		padding-left: 30px;
		position: relative;
		display: block;
		background: url('data:image/svg+xml,<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: 64px; height: 64px; opacity: 1;" xml:space="preserve"><style type="text/css">.st0{fill:%234B4B4B;}</style><g><rect x="2.823" class="st0" width="506.354" height="108.506" style="fill: rgb(128, 182, 70);"></rect><polygon class="st0" points="2.823,307.432 201.75,307.432 201.75,512 310.25,512 310.25,307.432 509.177,307.432 509.177,198.927 2.823,198.927 " style="fill: rgb(128, 182, 70);"></polygon></g></svg>') no-repeat left 8px center;
		background-size: 15px 15px;
	}
	.form_tbl ul:has(input[type="radio"])
	{
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 10px;
		min-height:35px;
	}
	.form_tbl ul:has(input[type="radio"]) li
	{
		margin: 0;
	}
	.form_tbl ul:has(input[type="radio"]) label
	{
		padding: 0;
		-webkit-appearance: none;
		-moz-appearance: none;
		appearance: none;
		font-size: 1.6rem;
		width: fit-content;
		cursor: pointer;
		text-align: center;
		line-height: 1;
		display: block;
	}
	.form_tbl ul:has(input[type="radio"]) label input[type="radio"]
	{
		display: inline-block;
	}
	.btn_box
	{
		margin-top: 40px;
		text-align: center;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: row-reverse;
		gap:30px
	}
	.btn_box a.btn,
	.btn_box button
	{
		font-size: 2rem;
		min-width: 250px;
		text-align: center;
		display: block;
		color: #fff;
		background: var(--sub_color);
		padding: 8px 1.5em;
		border-radius: 2.5rem;
		letter-spacing: 0.1em;
		border:none;
		appearance: none;
		cursor: pointer;
		transition: 0.3s;
	}
	.btn_box a.btn.back,
	.btn_box button.cancel
	{
		background:#ccc;
		line-height: 1.3;
	}
	.btn_box button:hover
	{
		opacity: 0.8;
	}
	.btn_box.start
	{
		margin-top: 40px;
	}

	@media screen and (max-width: 768px)
	{
		.form_tbl
		{
			font-size: 1.4rem;
		}
		.form_tbl tr
		{
			display: block;
			margin-bottom: 8px;
		}
		.form_tbl th
		{
			width: 100%;
			display: block;
			max-width: none;
			padding-top: 0.5em;
			padding-bottom: 0.5em;
			padding-left: 20px;
			padding-right: 50px;
			background: var(--main_color2);
		}
		.form_tbl th .required
		{
			top: 0em;
			right: 1em;
		}
		.form_tbl td
		{
			display: block;
			width: 100%;
			padding: 0.8em 0em;
		}
		.form_tbl ul:has(input[type="radio"])
		{
			display: flex;
			flex-direction: column;
			justify-content: flex-start;
			align-items: stretch;
			gap: 15px;
			min-height:35px;
		}
		.flex .w100{width: calc(100% - 10px)!important;}
		.flex .w80{width: calc(100% - 10px)!important;}
		.flex .w60{width: calc(100% - 10px)!important;}
		.flex .w50{width: calc(100% - 10px)!important;}
		.flex .w30{width: calc(100% - 10px)!important;}

		.btn_box
		{
			flex-direction: column;
		}
	}



	.def_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;
	}
	.def_tbl tr
	{
		width: 100%;
		border-bottom: 1px solid #ccc;
	}
	.def_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;
	}
	.def_tbl td
	{
		margin: 0;
		text-align: left;
		background: #fff;
		padding: 0.8em 2em;
		background: #fff;
		background-clip: padding-box;
		position: relative;
		vertical-align: middle;
	}
	@media screen and (max-width: 768px)
	{
		.def_tbl
		{
			font-size: 1.4rem;
		}
		.def_tbl tr
		{
			display: block;
			margin-bottom: 8px;
		}
		.def_tbl th
		{
			width: 100%;
			display: block;
			max-width: none;
			padding: 0.5em 1em;
			background: var(--main_color2);
		}
		.def_tbl td
		{
			display: block;
			width: 100%;
			padding: 0.8em 1em;
		}
	}

	.entry_form .terms
	{
		padding: 1.3em 20px;
	}
	.entry_form .terms h3
	{
		font-size:1.6rem;
		color:var(--main_color)
	}
	.entry_form .terms .terms_text
	{
		height: 250px;
		overflow-y: scroll;
		padding: 1em;
		background: #fff;
		border: solid 10px #f4f6fa;
		font-size: 1.6rem;
		margin-bottom: 30px;
	}
	.entry_form .terms .terms_text h4
	{
		font-size:1.6rem;
	}
	.entry_form .terms .terms_text h5
	{
		margin-top:2em;
		font-size:1.6rem;
		padding: 8px 0 8px 20px;
		margin-bottom:8px;
		border-left: 5px solid var(--main_color);
	}
	.entry_form .terms .terms_text ol
	{
		margin-top: 0;
	}
	.submit_txt
	{
		text-align: center;
	}
	.btn_box #Submit:disabled
	{
		cursor: not-allowed;
		filter: grayscale(100%);
		opacity: 0.6;
	}