/*-----------------------------------------------*/
/*-------------------- color --------------------*/
/*-----------------------------------------------*/
@white:#ffffff;
@l_gray:#f1f1f1;
@gray:#D9D9D9;
@d_gray:#B5B5B5;
@dd_gray:#8C8C8C;
@l_black:#525252;
@black:#262626;
@yellow:#EFDE49;
@d_yellow:#A39833;
@dd_yellow:#524C19;
@orange:#EFAE30;
@d_orange:#A37821;
@dd_orange:#523C10;
@red:#d85656;
@d_red:#a53a3a;
@blue:#00539b;
@d_blue:#163b84;
@green:#59b559;
@l_green:#d2edd2;
@d_green:#287528;
@violet:#8243c4;
@d_violet:#58278c;
@sky:#75d9f7;
@l_sky:#c9effb;
@pink:#fdc0c0;
@l_brown:#c9bc9c;
@brown:#4d3425;


/*----------------------------------------------*/
/*-------------------- font --------------------*/
/*----------------------------------------------*/
@font-face{
	font-family:'ZenOldMincho-Regular';
	src:url('/fonts/ZenOldMincho-Regular.ttf');
}


/*------------------------------------------------*/
/*-------------------- common --------------------*/
/*------------------------------------------------*/
html, body{
	width:100%;
	height:100%;
	margin:0;
	padding:0;
	font-family:"游ゴシック Medium","游ゴシック体","Yu Gothic Medium",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro",verdana,"メイリオ",Meiryo,Osaka,sans-serif;
	font-size:14px;
	color:@black;
	letter-spacing:0.5px;
	box-sizing:border-box;
}
h1, h2, h3, h4, h5, h6, p{
	margin:0;
}
a{
	color:@black;
	text-decoration:none;

	&:hover{
		text-decoration:none;
	}
}
img{
	max-width:100%;
	vertical-align:bottom;
}
ul, ol{
	margin:0;
	padding:0;
	
	li{
		list-style:none
	}
}
dl{
	margin:0;

	dd{
		margin:0;
	}
}

/*---------- デフォルトスタイルのリセット ----------*/
input[type="text"], input[type="email"], input[type="password"], textarea{
	box-sizing:border-box;
	outline:none;
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
}
select{
	border:none;
	border-radius:0;
	cursor:pointer;
	outline:none;
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;
	padding:10px 20px 10px 10px;
	background-image:url('./images/common/select_cursor.png');
	background-position:center right 10px;
	background-repeat:no-repeat;
	background-size:10px;
}
button{
	position:relative;
	border:none;
	border-radius:0;
	cursor:pointer;
	overflow:hidden;
	outline:none;
	-webkit-appearance:none;
	-moz-appearance:none;
	appearance:none;

	@media(min-width:769px){
		&:before{
			content:'';
			position:absolute;
			top:0;
			left:0;
			width:100%;
			height:100%;
			background-color:@black;
			opacity:0;
			transition:0.3s;
		}
		&:hover:before{
			opacity:0.3;
		}
		&:disabled:before{
			content:none;
		}
	}
}

/*---------- disabled ----------*/
input:disabled, textarea:disabled, select:disabled{
	background-color:@gray;
}

/*---------- placeholder ----------*/
::placeholder{
	color:@d_gray;
}

/*---------- scrollbar ----------*/
::-webkit-scrollbar{
	width:10px;
	height:10px;
}
::-webkit-scrollbar-track{
	background:@gray;
}
::-webkit-scrollbar-thumb{
	background:@dd_gray;
	box-shadow:inset 0 0 0 1px @gray;
}

/*---------- error ----------*/
.error{
	background-color:@pink !important;
}

/*---------- loading ----------*/
.loading{
	display:none;

	&.active{
		display:block;
		position:fixed;
		width:100%;
		height:100%;
		top:0;
		left:0;
		background:rgba(0, 0, 0, 0.5);
		z-index:8000;
		
		span{
			position:absolute;
			top:50%;
			transform:translateY(-50%);
			width:100%;
			text-align:center;
	
			i{
				font-size:50px;
				color:@white;
			}
		}
	}
}
/*---------- loading時の注意事項 ----------*/
.loading_alert{
	display:none;
	position:fixed;
	top:40px;
	width:100%;
	padding:0 10px;
	box-sizing:border-box;
	z-index:9000;
	
	p{
		display:flex;
		justify-content:center;
		align-items:center;
		max-width:700px;
		margin:0 auto;
		padding:20px;
		font-size:16px;
		font-weight:bold;
		line-height:1.6;
		background-color:@white;
		border-radius:5px;
		box-shadow:3px 3px 6px rgba(0, 0, 0, 0.7);
	}
}
/*---------- テキストのハイライト ----------*/
.highlight{
	background:linear-gradient(to left, rgb(251, 195, 195) 100%, transparent 0%);
	background-position:0 100%;
	background-repeat:no-repeat;
	background-size:0% 8px;
	transition:1s;

	&.active{
		background-size:100% 8px;
	}
}

/*---------- responsive ----------*/
@media(max-width:768px){
	.pc{
		display:none !important;
	}
}
@media(min-width:769px){
	.mobile{
		display:none !important;
	}	
}


/*------------------------------------------------*/
/*-------------------- header --------------------*/
/*------------------------------------------------*/
header{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:60px;
	background-color:@white;
	border-bottom:1px solid @gray;
	z-index:1;
}
.header_wrap{
	display:flex;
	justify-content:space-between;
	align-items:center;
	max-width:1000px;
	height:100%;
	margin:0 auto;
	padding:0 20px;
}
.header_logo{
	a{
		font-size:18px;
	}
}
.header_nav{
	display:flex;
	gap:20px;

	a{
		font-size:14px;
	}
}
.header_mobile{
	display:none;
}

/*------------------------------------------------*/
/*-------------------- footer --------------------*/
/*------------------------------------------------*/
footer{
	margin-top:100px;
	padding:50px 0;
	background-color:@l_black;
}
.footer_wrap{
	display:flex;
	justify-content:space-between;
	align-items:center;
	max-width:1000px;
	margin:0 auto;
	padding:0 20px;
}
.footer_logo{
	a{
		font-size:18px;
		color:@white;
	}
}
.footer_nav{
	display:flex;
	justify-content:center;
	gap:20px;

	a{
		color:@white;
	}
}


/*--------------------------------------------------*/
/*-------------------- paginate --------------------*/
/*--------------------------------------------------*/
.pagination{
	display:flex;
	justify-content:center;
	grid-gap:5px;
	margin:20px 0 0;
	text-align:center;
	
	li{
		span{
			display:block;
			padding:10px 15px;
			font-size:16px;
			line-height:1;
			color:@black;
			background-color:@white;
			border:1px solid @d_gray;
			border-radius:0;
		}
		a{
			display:block;
			padding:10px 15px;
			font-size:16px;
			line-height:1;
			color:@black;
			background-color:@white;
			border:1px solid @d_gray;
			border-radius:0;
			transition:0.3s;

			&:hover{
				background-color:@gray;
			}
		}
		&.disabled{
			/* background-color:@gray; */
		}
		&.active{
			span{
				color:@white !important;
				background-color:@blue !important;
				border:1px solid @blue !important;
				border-radius:0;
			}
		}
		&:first-child{
			a, span{
				border-radius:0;
			}
		}
		&:last-child{
			margin-right:0;
	
			a, span{
				border-radius:0;
			}
		}
	}
}


/*------------------------------------------------------*/
/*---------------------- alertify ----------------------*/
/*------------------------------------------------------*/
.alertify-logs{
	top:10px !important;
	right:10px !important;
	width:auto !important;
	min-width:200px !important;
	
	article{
		margin:0 0 10px !important;
		padding:15px !important;
		font-size:16px !important;
		line-height:28px !important;
		border-radius:5px !important;
		text-shadow:none !important;
	}
	.alertify-log-success{
		background-color:@d_green !important;
	}
	.alertify-log-error{
		background-color:@d_red !important;
	}
}

/*---------- modal-window ----------*/
.alertify{
	top:10% !important;
	border:5px solid @d_gray !important;
	border-radius:0 !important;
}
.alertify-inner{
	p{
		margin:0 0 15px !important;
	}
}
/*---------- modal-back ----------*/
.alertify-cover{
	background-color:@black !important;
	opacity:0.5 !important;
}

/*---------- confirm-btn ----------*/
.alertify-button{
	background-image:none !important;
	border:none !important;
	border-radius:0 !important;
	text-shadow:none !important;
	box-shadow:none !important;
}
.alertify-button-cancel, .alertify-button-cancel:hover, .alertify-button-cancel:focus{
	background-color:@red !important;
}
.alertify-button-ok, .alertify-button-ok:hover, .alertify-button-ok:focus{
	background-color:@green !important;
}


/*---------------------------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------*/
/*---------------------------------------- ここからカスタマイズ ----------------------------------------*/
/*---------------------------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------*/

/*---------------------------------------------*/
/*-------------------- top --------------------*/
/*---------------------------------------------*/
.main_container{
	margin-top:60px;
}
.top_wrap{
	max-width:1000px;
	margin:0 auto;
	padding:0 20px;
}
.top_mv{
	h1{
		height:0;
		opacity:0;
	}
	img{
		width:100%;
	}
}

.top_recommend{
	margin-top:100px;
	padding:100px 0;
	background-color:@gray;

	h2{
		margin-bottom:20px;
		font-size:28px;
		text-align:center;
	}
	ul{
		display:grid;
		gap:10px;
		margin-bottom:50px;
		padding:20px;
		background-color:@white;
		border-radius:10px;

		li{
			font-size:16px;

			&:before{
				content:'⚫︎';
				color:@blue;
			}
		}
	}
	img{
		width:100%;
	}
}

.top_price{
	margin-top:100px;

	h2{
		margin-bottom:20px;
		font-size:28px;
		text-align:center;
	}
	.container{
		display:grid;
		grid-template-columns:repeat(2, 1fr);
		gap:20px;
		margin-bottom:50px;

		.box{
			padding:20px;
			background-color:@l_gray;
			border-radius:10px;

			h3{
				margin-bottom:20px;
				padding-bottom:5px;
				font-size:20px;
				border-bottom:1px dashed @d_gray;
			}
			ul{
				display:grid;
				gap:10px;
				margin-bottom:20px;
				
				li{
					position:relative;
					padding-left:20px;
					font-size:16px;
		
					&:before{
						content:'⚫︎';
						position:absolute;
						left:0;
						color:@blue;
					}
				}
			}
			a{
				display:block;
				padding:10px;
				font-size:16px;
				text-align:center;
				color:@white;
				background-color:@l_black;
				border-radius:10px;
			}
		}
	}
	img{
		width:100%;
	}
}


/*---------------------------------------------*/
/*-------------------- sub --------------------*/
/*---------------------------------------------*/
.sub_container{
	margin-top:100px;
}
.sub_wrap{
	max-width:1000px;
	margin:0 auto;
	padding:0 20px;

	h1{
		margin-bottom:20px;
		font-size:30px;
		text-align:center;
	}
	> p{
		margin-bottom:50px;
		font-size:16px;
	}
	dl{
		margin-bottom:20px;
		padding:20px;
		background-color:@l_gray;
		border-radius:10px;

		dt{
			margin-bottom:10px;
			padding-bottom:5px;
			font-size:16px;
			border-bottom:1px dashed @d_gray;
		}
		dd{
			font-size:14px;
			line-height:26px;
		}
	}
}

/*----------------------------------------------*/
/*-------------------- form --------------------*/
/*----------------------------------------------*/
.form_container{
	margin-top:100px;
}
.form_wrap{
	max-width:1000px;
	margin:0 auto;
	padding:0 20px;

	h1{
		margin-bottom:20px;
		font-size:30px;
		text-align:center;
	}
	.container{
		display:grid;
		gap:20px;
		margin-bottom:50px;
		padding:20px;
		background-color:@l_gray;
		border-radius:10px;

		dl{
			display:grid;
			grid-template-columns:180px 1fr;
			align-items:center;
			gap:10px;

			dt{
				font-size:16px;
				font-weight:bold;
			}
			dd{
				input{
					width:100%;
					padding:15px;
					font-size:16px;
					border:1px solid @gray;
					box-sizing: border-box;
				}
				span{
					font-size:16px;
				}
			}
		}
	}
	.form_confirm_container{
		dd {
			overflow-wrap: break-word;
			word-break: break-word;
			min-width: 0;
		}
	}
	.bottom{
		display:flex;
		gap:20px;

		button{
			flex:1;
			width:100%;
			padding:20px;
			font-size:20px;
			border-radius:10px;

			&.blue{
				color:@white;
				background-color:@blue;
			}
		}
		.form_confirm_button{
			width: 50%;
		}
	}
	.alert{
		padding: 20px;
	}
	.alert_danger{
		color: @red;
	}
	.alert_danger ul li{
		color: @red;
	}
	.alert_success{
		color: @blue;
	}
}

#payjp_checkout_box{
	input[type="button"]{
		width:100%;
		padding:10px !important;
		background:#0088f4 !important;
		border:none !important;
		font-size:20px !important;
		border-radius:10px !important;
	}

	input[type=button].has-token{
		background-color:#469C46 !important;
	}
}