@charset "utf-8";

/*common*/
body.signup footer {
  background: #FFF;
}
main {
  padding-bottom: 0px;
}
.page_contents{
	padding-bottom: 50px;
}
.contents_item{
	border-top: 1px solid #959494;
	font-size: 15px;
	letter-spacing: 0.05em;
	padding: 20px 0;
}
.contents_item:first-child{
	border-top: none;
}
.contents_item h3{
	font-size: 18px;
	font-weight: 500;
	margin-bottom: 15px;
}
.contents_item a{
	color: #104f74;
}
.contents_item a:hover{
	text-decoration: none;
}
.contents_head{
	margin: 30px 0 50px;
}
.contents_head.thankstext p{
	line-height: 180%;
}
.centertext{
	font-size: 15px;
	text-align: center;
}
.attention{
	font-size: 15px;
	color: #95142a;
}
.contents_item table th{
	width: 0;
	white-space:nowrap;
	text-align: right;
	padding-right: 20px;
	padding-bottom: 2px;
}

/*agreement*/
.agreement_container{
	margin-bottom: 50px;
}
.agreement_read{
  margin-bottom:20px;
}
.agreement_read02{
  margin-bottom:20px;
	text-indent: -1.2em;
    padding-left: 1.2em;
}
.agreement_read02.mt20{
  margin-top:20px;
}
.numlist {
  counter-reset: number 0;
}
.numlist li{
	position: relative;
	padding-left: 1.5em;
	margin-top: 15px;
}
.numlist li:first-child{
	margin-top: 0;
}
.numlist li::before {
  counter-increment: number 1;
  content: counter(number)".";
	position: absolute;
	left: 0;
}
.numlist02 {
  counter-reset: number 0;
}
.numlist02 li{
	position: relative;
	padding-left: 1.5em;
	margin-top: 15px;
	margin-left: 1.2em;
}
.numlist02 li:first-child{
	margin-top: 0;
}
.numlist02 li::before {
  counter-increment: number 1;
  content: counter(number)".";
	position: absolute;
	left: 0;
}
.update{
	margin-top: 10px;
	text-align:right;
}

/*policy*/
.policy_head{
	margin: 50px 0 20px;
}
.policy_head + .contents_item {
  border-top: none;
}
.sign{
	margin: 10px 0 50px;
}
.sign p{
	font-size: 15px;
	line-height: 150%;
	text-align: right;
}
.contact_info{
	text-align: center;
	margin: 0 auto 50px;
}
.contact_info div{
	background: #f7f7f7;
	border: 1px solid #a0833f;
	display: inline-block;
	font-weight: bold;
	letter-spacing: 0.1em;
	padding: 30px;
	text-align: left;
}

/*contact*/
.form_container{
	padding-bottom: 60px;
}
.form_container table{
	font-size: 15px;
	letter-spacing: 0.1em;
	width: 90%;
	max-width: 480px;
	margin: 0 auto;
}
.form_container table tr{
	display: block;
}
.form_container table th,.form_container table td{
	display: block;
	width: 100%;
}
.form_container table th{
	padding: 15px 0;
	vertical-align: middle;
}
.form_container table th span{
	color: #FFF;
	background: #95142a;
	margin: 0 10px;
	padding: 2px 10px;
}
.form_container table td{
	padding-bottom: 15px;
}
.form_container table td input[type="text"],.form_container table td input[type="tel"],.form_container table td input[type="email"],.form_container table td input[type="password"],.form_container table td textarea{
	border: 1px solid #bdbdbd;
	width: 100%;
	padding: 10px;
}
.form_container table td.readonly input[type="email"]{
	background: #d8d8d8;
}
.form_container table td textarea{
	height: 200px;
}
.form_container table td.preview{
	text-align: left;
}
.form_container table td p.note{
	text-align: left;
}
.formbottom{
	font-size: 15px;
	margin: 30px 0 50px;
	text-align: center;
}
.formbottom p{
	margin-bottom: 30px;
}
.formbottom a{
	color: #104f74;
	margin: 0 10px;
}
.sendbtn{
	text-align: center;
}
.linkbtn{
	text-align: center;
	display: flex;
    justify-content: center;
}
.linkbtn a:nth-child(2),.linkbtn button:nth-child(2){
	margin-left:20px;
}

.sendbtn input,.sendbtn button,.linkbtn a{
	background: #104f74;
	border: none;
	border-radius: 10px;
	color: #FFF;
	font-family: "Noto Sans JP","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
	font-size: 18px;
	text-decoration: none;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 320px;
	height: 60px;
	transition: 0.3s;
}
.sendbtn input:hover,.sendbtn button:hover,.linkbtn a:hover{
	opacity: 0.8;
}
/*signup*/
.mb50{
	margin-bottom: 50px;
}
.signup_contents{
	text-align: center;
}
.signup_contents h3.signup_title{
  color: #104f74;
  font-size: 28px;
  font-weight: 500;
  margin-bottom: 20px;
  letter-spacing: 0.1em;
  text-align: center;
}
.signup_head{
	width: 100%;
	max-width: 800px;
	margin: 40px auto 60px;
}
.signup_flow{
	display: flex;
	justify-content: space-between;
	padding-bottom: 15px;
}
.signup_flow .step{
	color: #104f74;
	font-size: 13px;
	width: 25%;
	position: relative;
}
.signup_flow .step:nth-child(1){
	margin-left: calc(-12.5% + 7px);
}
.signup_flow .step:nth-child(4){
	margin-right: calc(-12.5% + 7px);
}
.signup_flowbar{
	background: #bfbfbf;
	width: 100%;
	max-width: 800px;
	height: 2px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}
.signup_flowbar .point{
	background: #bfbfbf;
	border-radius: 20px;
	width: 15px;
	height: 15px;
	margin-top: -6px;
}
.signup_flowbar .point.on{
	background: #104f74;
}
.signup_contents form{
	margin-top: 30px;
}
.signup_contents p{
	line-height: 180%;
}

/*login_forgot*/
.login_forgot_contents{
	text-align: center;
}
.login_forgot_contents h3.login_forgot_title{
  color: #104f74;
  font-size: 28px;
  font-weight: 500;
  margin-bottom: 20px;
  letter-spacing: 0.1em;
  text-align: center;
}
.login_forgot_head{
	width: 100%;
	max-width: 600px;
	margin: 40px auto 60px;
}
.login_forgot_flow{
	display: flex;
	justify-content: space-between;
	padding-bottom: 15px;
}
.login_forgot_flow .step{
	color: #104f74;
	font-size: 13px;
	width: 33%;
	position: relative;
}
.login_forgot_flow .step:nth-child(1){
	margin-left: calc(-16.5% + 7px);
}
.login_forgot_flow .step:nth-child(3){
	margin-right: calc(-16.5% + 7px);
}
.login_forgot_flowbar{
	background: #bfbfbf;
	width: 100%;
	max-width: 600px;
	height: 2px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}
.login_forgot_flowbar .point{
	background: #bfbfbf;
	border-radius: 20px;
	width: 15px;
	height: 15px;
	margin-top: -6px;
}
.login_forgot_flowbar .point.on{
	background: #104f74;
}
.login_forgot_contents form{
	margin-top: 30px;
}
.login_forgot_contents p{
	line-height: 180%;
}
.formbottom .membership_price{
	color: #95142a;
	font-size: 20px;
	margin: 50px auto;
	border: 1px solid #95142a;
	width: fit-content;
	padding: 3px 30px;
}
.signup_contents .formbottom {
  margin: 30px 0;
}
.center_ttl {
  color: #a0833f;
  font-size: 32px;
  font-weight: 500;
  text-align: center;
  margin-bottom: 50px;
}
#other{
	background: #f7f7f7;
	padding: 100px 0;
}
#other .note ul li{
	font-size: 15px;
	position: relative;
	padding-left: 1.5em;
	margin-bottom: 10px;
}
#other .note ul li::before{
	content: "●";
	position: absolute;
	left: 0;
}

/* mypage */
#mypage{
	max-width: 800px;
}
.mypage_contents{
	margin-bottom: 80px;
	letter-spacing: 0.08em;
}
.mypage_contents h3{
	color: #a0833f;
	font-size: 18px;
	border-bottom: 1px solid #333333;
	padding-bottom: 10px;
	margin-bottom: 15px;
}
.mypage_contents p{
	line-height: 220%;
}
.mypage_contents .linkbtn{
	margin-top: 50px;
}
.limit_container{
	border: 2px solid #95142a;
	max-width: 680px;
	margin: 30px auto;
	padding: 15px;
	text-align: center;
}
.limit_container p{
	line-height: 220%;
}
.limit_container p strong{
	color: #95142a;
}
.limitbtn{
	text-align: center;
}
.limitbtn a:hover {
  opacity: 0.8;
}
.limitbtn a {
  background: #95142a;
  border: none;
  border-radius: 10px;
  color: #FFF;
  font-family: "Noto Sans JP","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
  font-size: 18px;
  text-decoration: none;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 320px;
  height: 60px;
  transition: 0.3s;
}

/* mypage pay */
.mypage_pay_head{
	width: 100%;
	max-width: 400px;
	margin: 40px auto 60px;
}
.mypage_pay_flow{
	display: flex;
	justify-content: space-between;
	padding-bottom: 15px;
}
.mypage_pay_flow .step{
	color: #104f74;
	font-size: 13px;
	width: 25%;
	position: relative;
}
.mypage_pay_flow .step:nth-child(1){
	margin-left: calc(-12.5% + 7px);
}
.mypage_pay_flow .step:nth-child(2){
	margin-right: calc(-12.5% + 7px);
}
.card_logo{
	max-width:1000px;
	margin:2em auto 5em;
}
.card_logo .read{
	margin:0.5em auto;
}
.card_logo ul{
	display:flex;
	flex-wrap: wrap;
	justify-content: center;
}
.card_logo li{
	margin:0 0.5em;
}
.card_logo li img{
	width:70px;
}

@media screen and (max-width: 768px){
	/*common*/
	.contents_item h3 {
		font-size: 16px;
		margin-bottom: 10px;
	}
	.contents_item table th{
		padding: 0;
		text-align: left;
	}
	.contents_item table td{
		padding-bottom: 10px;
	}
	.contents_item table th,.contents_item table td{
		width: 100%;
		display: block;
	}
	/*policy*/
	.policy_head {
		margin: 30px 0 20px;
	}
	.contact_info div{
		padding: 15px;
	}
	/*signup*/
	.signup_contents h3.signup_title{
		font-size:20px;
	}
	.signup_flow .step:nth-child(1){
		margin-left: calc(-7% + 7px);
	}
	.signup_flow .step:nth-child(4){
		margin-right: calc(-7% + 7px);
	}
	.signup_head {
	  width: 90%;
	}
	.signup_flowbar {
		width: 90%;
		height: 2px;
	}
	/*login_forgot*/
	.login_forgot_contents h3.signup_title{
		font-size:20px;
	}
	.login_forgot_flow .step:nth-child(1){
		margin-left: calc(-11% + 7px);
	}
	.login_forgot_flow .step:nth-child(3){
		margin-right: calc(-11% + 7px);
	}
	.login_forgot_head {
	  width: 90%;
	}
	.login_forgot_flowbar {
		width: 90%;
		height: 2px;
	}
	.center_ttl {
	  font-size: 24px;
	}
	#other{
		padding: 50px 0;
	}
	.mypage_contents{
		margin-bottom: 40px;
	}
	.mypage_contents .linkbtn{
		margin-top: 30px;
	}
	.limit_container{
		margin: 20px auto;
	}
	.card_logo li{
		width:28%;
		margin:0 0.5em;
	}
	.card_logo li:nth-child(n+4){
		margin:0.5em 0.5em;
	}
	.card_logo li img{
		width:70px;
	}
}