/* ******************************************************************
 *	File name		: base.css
 *	Summary			: css base
 * ******************************************************************
 */
 
:root {
	--base-color: #5F8FCB;/* 青 */
}
/*
rgb(59,65,130)
*/
/* -----------------------------------------------------------------
   base
----------------------------------------------------------------- */

html{
	background:#E5F3F7;
	overflow-x:hidden;
}
body{
	position:relative;
	width:100%;
	height:100%;
	line-height:145%;
	color:#222;
	}
	#wrapper{
		position:relative;
		width:100%;
		height:100%;
		text-align:center;
}

/* --- responsive --- */
@media screen and (max-width:767px){
}

@media print {
	body{
		margin:0;
		width:1100px;
	}
}

/* -----------------------------------------------------------------
   header
----------------------------------------------------------------- */

header{
	position:fixed;
	top:0px;
	left:0px;
	width:100%;
	height:70px;
	margin:0px;
	z-index:100;
	}
	header::before{
		content:" ";
		position:absolute;
		top:-80px;
		left:0px;
		width:100%;
		height:70px;
		z-index:-1;
		background:linear-gradient(0deg, rgba(255,255,255,0.7), rgba(255,255,255,1));
		transition-duration:0.5s;
	}
	#head_contents{
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		text-align:center;
		z-index:1;
	}
	#head_title{
		position:relative;
		top:24px;
		left:41px;
		max-width:calc(100% - 41px);
		text-align:left;
		transition-duration:0.5s;
		}
		#head_title a{
			display:inline-block;
			position:relative;
			width:455px;
			max-width:calc(100% - 41px);
			height:30px;
		}
		#head_title h1{
			position:absolute;
			top:0px;
			left:0px;
			width:auto;
			height:auto;
			font-weight:bold;
			font-size:1.6rem;
			text-align:left;
			color:var(--base-color);
			z-index:2;
			transition-duration:0.5s;
			}
			#head_title h1 span{
				display:inline-block;
				position:relative;
				top:-1px;
				margin:0 0 0 8px;
				font-weight:800;
				font-size:1.4rem;
				text-align:left;
				color:inherit;
		}
		#head_title p{
			position:absolute;
			top:1px;
			left:185px;
			height:21px;
			font-weight:bold;
			font-size:0.95rem;
			text-align:left;
			color:var(--base-color);
			transition-duration:0.5s;
}

/* nav */
header nav{
	position:absolute;
	top:-70px;
	right:30px;
	height:45px;
	transition-duration:1.0s;
	}
	header nav > ul{
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-ms-flex-pack:justify;
		justify-content:flex-end;
		flex-wrap:wrap;
		width:100%;
		height:100%;
		list-style:none;
		transition-duration:0.5s;
	}
	header nav > ul > li{
		display:block;
		position:relative;
		transition-duration:0.5s;
	}
	header nav > ul > li > a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		padding:0 17px;
		font-weight:500;
		font-size:1.1rem;
		text-decoration:none;
		text-align:center;
		z-index:10;
		-moz-border-radius:6px;
		-webkit-border-radius:6px;
		border-radius:6px;
		transition-duration:0.5s;
		color:#6B6B6B;
	}
	header nav > ul > li.active a,
	header nav > ul > li > a:hover{
		text-decoration:none;
		background:rgba(0,0,0,0.1); 
}

/* nav_contact */
header nav > ul > li#nav_contact{
	width:180px;
	margin:0 0 0 10px;
	}
	header nav > ul > li#nav_contact a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		padding:0 13px;
		font-weight:500;
		font-size:0.9rem;
		z-index:10;
		border:1px solid #000;
		-moz-border-radius:23px;
		-webkit-border-radius:23px;
		border-radius:23px;
		color:#000;
	}
	header nav > ul > li#nav_contact a::after{
		content:" ";
		display:inline-block;
		width:23px;
		height:18px;
		margin:0 0 0 15px;
		background:url(../../image/base/contact.png) no-repeat 0 0;
}

/* --- responsive --- */
@media only screen and (max-width:1420px){
	header nav > ul > li > a{
		padding:0 15px;
		font-size:0.9rem;
	}
	header nav > ul > li#nav_contact{
		width:150px;
	}
}
@media only screen and (max-width:1250px){
	#head_title{
		position:relative;
		top:10px;
		left:30px;
		}
		#head_title a{
			display:inline-block;
			position:relative;
			width:250px;
			height:50px;
		}
		#head_title p{
			top:30px;
			left:0px;
			font-size:0.87rem;
	}
}

/* -----------------------------------------------------------------
   h_slide
----------------------------------------------------------------- */

header.h_slide::before{
	top:0px;
	}
	header.h_slide nav{
		top:13px;
}

/* -----------------------------------------------------------------
   SP MENU
----------------------------------------------------------------- */
/* --- responsive --- */
@media only screen and (max-width:1000px){
	header{
		position:absolute;
		top:auto;
		bottom:auto;
		width:100%;
		height:auto;
		z-index:9999;
	}
	header::before{
		display:none !important;
	}
	#head_contents{
		position:relative;
		width:100%;
		height:auto;
		margin:0 auto;
		text-align:center;
		z-index:1;
	}
	#head_title{
		position:relative;
		top:20vw;
		left:41px;
		text-align:left;
		transition-duration:0.5s;
	}

/* nav */
header nav{
	position:fixed;
	top:auto !important;
	bottom:0px !important;
	right:0px;
	width:100%;
	height:80px;
	transition-duration:1.0s;
	background:#FFF;
	z-index:0;
	cursor:pointer;
	}
	header nav::before,
	header nav::after{
		content:" ";
		position:fixed;
		transition-duration:1.0s;
		z-index:100;
		}
		header nav::before{
			bottom:50px;
			left:0px;
			width:100%;
			height:30px;
			background:#FFF;
		}
		header nav::after{
			bottom:60px;
			left:calc(50% - 4px);
			width:7px;
			height:7px;
			border-bottom:2px solid rgba(0,0,0,0.5);
			border-right:2px solid rgba(0,0,0,0.5);
			transform:rotate(-135deg);
		}
		header.open_menu nav::after{
			transform:rotate(45deg);
	}

	header nav > ul{
		position:absolute;
		bottom:0px;
		left:0px;
		width:100%;
		height:80px;
		background:#FFF;
		z-index:0;
		-moz-box-shadow: 0px 0px 5px rgba(0,0,0,0.4);
		-webkit-box-shadow: 0px 0px 5px rgba(0,0,0,0.4);
		box-shadow: 0px 0px 5px rgba(0,0,0,0.4);
		}
		header.open_menu nav > ul{
			bottom:80px;
	}
	header nav > ul > li{
		position:absolute;
		height:30px;
		}
		header.open_menu nav > ul > li{
			border:1px solid #5F8FCB;
		}
		header nav > ul > li:nth-child(1),
		header nav > ul > li:nth-child(2),
		header nav > ul > li:nth-child(3){
			width:calc(31.7% - 2px);
		}
		header nav > ul > li:nth-child(4),
		header nav > ul > li:nth-child(5){
			width:calc(48% - 2px);
		}

		header nav > ul > li:nth-child(1){top:7px;left:1%;}
		header nav > ul > li:nth-child(2){top:7px;left:33.5%;}
		header nav > ul > li:nth-child(3){top:7px;left:65.8%;}
		header nav > ul > li:nth-child(4){top:43px;left:1%;}
		header nav > ul > li:nth-child(5){top:43px;left:49.5%;}

	header nav > ul > li > a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		margin:0 auto;
		padding:0 5px;
		font-weight:500;
		font-size:0.8rem;
		text-decoration:none;
		text-align:center;
		z-index:10;
		-moz-border-radius:6px;
		-webkit-border-radius:6px;
		border-radius:6px;
		transition-duration:0.5s;
		color:#5F8FCB;
	}
	header nav > ul > li.active a,
	header nav > ul > li > a:hover{
		text-decoration:none;
		background:rgba(0,0,0,0.1); 
	}

	/* nav_contact */
	header nav > ul > li#nav_contact{
		position:fixed !important;
		bottom:0px;
		left:0px;
		width:calc(50% - 1px);
		height:50px !important;
		margin:0px;
		z-index:100 !important;
		border:none !important;
		}
		header nav > ul > li#nav_contact a{
			border:none;
			background:#818181;
			-moz-border-radius:0px;
			-webkit-border-radius:0px;
			border-radius:0px;
			color:#FFF;
		}
		header nav > ul > li#nav_contact a::before{
			content:" ";
			display:inline-block;
			width:23px;
			height:18px;
			margin:0 15px 0 0;
			background:url(../../image/base/contact_sp.png) no-repeat 0 0;
		}
		header nav > ul > li#nav_contact a::after{
			display:none;
	}

}
@media only screen and (max-width:640px){
	header #nav_recruit,
	header #nav_contact{
		height:50px;
	}
	header #nav_recruit div{
		height:50px;
		padding:0px 0 25px !important;
	}
	header #nav_recruit ul{
		bottom:48px;
	}
}

/* -----------------------------------------------------------------
   nav_line
----------------------------------------------------------------- */

#nav_line{
	position:fixed;
	bottom:30px;
	right:30px;
	width:200px;
	height:200px;
	transition-duration:0.5s;
	}
	/*
	.h_slide #nav_line{
		width:100px;
		height:100px;
	}
	.h_slide #nav_line:hover{
		width:200px;
		height:200px;
	}
	*/
/* --- responsive --- */
@media only screen and (max-width:1000px){
	#nav_line{
		bottom:0px;
		right:0px;
		width:calc(50%) !important;
		height:50px !important;
		border-left:2px solid #FFF;
		background:#00B900;
		z-index:100;
	}
	#nav_line a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		bottom:0px;
		right:0px;
		width:100%;
		height:100%;
		text-align:center;
		transition-duration:0.5s;
		}
		#nav_line a::before{
			content:" ";
			display:inline-block;
			width:30px;
			height:30px;
			margin:0 15px 0 0;
			background:url(../../image/base/line_sp.png) no-repeat 0 0;
		}
		#nav_line a::after{
			content:"友だち募集中";
			display:inline-block;
			color:#FFF;
	}
	#nav_line a img{
		display:none;
	}
}

/* -----------------------------------------------------------------
   main
----------------------------------------------------------------- */

main{
	display:block;
	position:relative;
	margin-top:0px;
	padding:0px;
	width:100%;
	z-index:1;
}
#main_contents{
	position:relative;
	width:100%;
	max-width:100%;
	margin:0 auto;
}

section{
	position:relative;
	width:100%;
	max-width:100%;
	margin:0 auto;
}

/* -----------------------------------------------------------------
   footer
----------------------------------------------------------------- */

footer{
	position:relative;
	width:100%;
	margin:200px 0 0;
	background:#FFF;
	text-align:left;
	z-index:10;
	}
	footer::before{
		content:" ";
		position:absolute;
		top:-141px;
		left:0px;
		width:100%;
		height:141px;
		background:url(../../image/base/ft_bg.png) no-repeat center bottom;
		background-size:cover;
		z-index:0;
}

/* ft_banner */
#ft_contents{
	display:-webkit-flex;
	display:flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	justify-content:space-between;
	flex-wrap:wrap;
	position:relative;
	width:1000px;
	max-width:100%;
	margin:0 auto;
	padding:40px 0;
	z-index:2;
}
#ft_contents h2{
	width:240px;
	text-align:left;
}
#ft_contents div{
	width:calc(100% - 240px);
	text-align:left;
}

/* --- */

#ft_contents h2{
	font-weight:bold !important;
	font-size:2.0rem;
}
#ft_contents div p{
	font-size:1.1rem;
	line-height:1.75;
}
#ft_contents div #ft_fshop{
	margin:30px 0 100px;
}
#ft_contents div #ft_fshop p:has(strong){
	position:relative;
	margin:0 0 0px;
	padding-left:35px;
	font-size:1.5rem;
	}
	#ft_contents div #ft_fshop p:has(strong)::before{
		content:" ";
		position:absolute;
		top:7px;
		left:0px;
		width:25px;
		height:25px;
		background:#F08300;
		-moz-border-radius:50%;
		-webkit-border-radius:50%;
		border-radius:50%;
	}
	#ft_contents div #ft_fshop p strong{
		font-weight:bold;
}
#ft_contents div #ft_tel{
	position:relative;
	margin:0 0 10px;
	font-weight:bold;
	font-size:1.9rem;
	line-height:1;
	}
	#ft_contents div #ft_tel b{
		font-weight:bold;
		font-size:2.5rem;
}
#ft_contents div #ft_tel span{
	font-weight:normal;
	font-size:1.0rem;
}
#ft_contents div #ft_mail{
	margin:0 0 10px;
	}
	#ft_contents div #ft_mail img{
		position:relative;
		top:-5px;
		margin:0 15px 0 0;
	}
	#ft_contents div #ft_mail a{
		font-size:1.5rem;
		color:#000;
		text-decoration:underline;
}
#ft_contents div .back_top{
	width:520px;
	max-width:100%;
	height:110px;
	margin:0 0 60px;
	}
	#ft_contents div .back_top a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:100%;
		font-size:1.5rem;
		background:#F08300;
		color:#FFF;
		border:2px solid #F08300;
		-moz-border-radius:25px;
		-webkit-border-radius:25px;
		border-radius:25px;
		transition-duration:0.5s;
	}
	#ft_contents div .back_top a:hover{
		text-decoration:none;
		background:#FFF;
		color:#F08300;
		}
		#ft_contents div .back_top a::before{
			content:" ";
			position:absolute;
			left:60px;
			width:46px;
			height:35px;
			background:url(../../image/base/pc.png) no-repeat 0 0;
		}
		#ft_contents div .back_top a:hover::before{
			background:url(../../image/base/pc_on.png) no-repeat 0 0;
}

footer p#copy{
	position:relative;
	width:100%;
	margin:0px;
	padding:0px;
	font-weight:400;
	font-size:1.0rem;
	text-align:center;
	color:#000;
}

/* --- responsive --- */
@media only screen and (max-width:1100px){
	/* ft_banner */
	#ft_contents{
		padding:40px 20px;
	}
	#ft_contents h2{
		width:100%;
		margin:0 auto 20px;
	}
	#ft_contents div{
		width:100%;
		text-align:left;
	}

	/* --- */

	#ft_contents h2{
		font-weight:500;
		font-size:2.0rem;
	}
	#ft_contents div p{
		font-size:1.1rem;
		line-height:1.75;
	}
	#ft_contents div #ft_fshop{
		margin:30px 0 50px;
	}
	#ft_contents div #ft_fshop p:has(strong){
		position:relative;
		margin:0 0 0px;
		padding-left:35px;
		font-size:1.5rem;
		}
		#ft_contents div #ft_fshop p:has(strong)::before{
			content:" ";
			position:absolute;
			top:7px;
			left:0px;
			width:25px;
			height:25px;
			background:#F08300;
			-moz-border-radius:50%;
			-webkit-border-radius:50%;
			border-radius:50%;
		}
		#ft_contents div #ft_fshop p strong{
			font-weight:bold;
	}
	#ft_contents div #ft_tel{
		position:relative;
		margin:0 0 10px;
		font-weight:bold;
		font-size:1.9rem;
		line-height:1;
		}
		#ft_contents div #ft_tel b{
			font-weight:bold;
			font-size:2.5rem;
	}
	#ft_contents div #ft_tel span{
		font-weight:normal;
		font-size:1.0rem;
	}
	#ft_contents div #ft_mail{
		margin:0 0 10px;
		}
		#ft_contents div #ft_mail img{
			position:relative;
			top:-5px;
			margin:0 15px 0 0;
		}
		#ft_contents div #ft_mail a{
			font-size:1.5rem;
			color:#000;
			text-decoration:underline;
	}

	#ft_contents div .back_top{
		margin:0 auto 60px;
	}

	footer p#copy{
		position:relative;
		width:100%;
		margin:0px;
		padding:0px;
		font-weight:400;
		font-size:1.0rem;
		text-align:center;
		color:#000;
	}
}
@media only screen and (max-width:640px){
	#ft_contents div #ft_fshop{
		margin:30px 0 20px;
	}
	#ft_contents div .back_top{
		width:100%;
		height:70px;
		}
		#ft_contents div .back_top a{
			font-size:1.2rem;
			-moz-border-radius:35px;
			-webkit-border-radius:35px;
			border-radius:35px;
		}
		#ft_contents div .back_top a::before{
			left:20px;
	}
}

/* sp open menu */
.open_menu #ft_menu > ul{
	right:0px !important;
}


/* -----------------------------------------------------------------
   btn
----------------------------------------------------------------- */

.btn{
	display:inline-block;
	position:relative;
	width:auto;
	min-width:400px;
	max-width:100%;
	height:70px;
	margin:10px 0 0;
	}
	.btn a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		width:100%;
		height:100%;
		font-weight:500;
		font-size:1.1rem;
		text-decoration:none;
		border:2px solid #818181;
		-moz-border-radius:35px;
		-webkit-border-radius:35px;
		border-radius:35px;
		background:#818181;
		color:#FFF;
		transition-duration:0.5s;
	}
	.btn a:hover{
		text-decoration:none;
		background:#FFF;
		color:#818181;
}

/* --- responsive --- */
@media screen and (max-width:1040px){
	.btn{
		min-width:300px;
	}
}
@media screen and (max-width:767px){
	.btn{
		min-width:100px;
		max-width:100%;
		width:100%;
		height:50px;
	}
	.btn a{
		width:100%;
		font-size:1.0rem;
	}
}

/* -----------------------------------------------------------------
   box_btn
----------------------------------------------------------------- */

.box_btn{
	display:inline-block;
	position:relative;
	width:auto;
	min-width:400px;
	max-width:100%;
	height:100px;
	margin:10px 0 80px;
	}
	.box_btn a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		width:100%;
		height:100%;
		font-weight:500;
		font-size:1.1rem;
		text-decoration:none;
		color:#FFF;
		border:2px solid #E87C97;
		-moz-border-radius:50px;
		-webkit-border-radius:50px;
		border-radius:50px;
		background:#E87C97;
		transition-duration:0.5s;
	}
	.box_btn a::before{
		content:" ";
		position:absolute;
		left:60px;
		width:42px;
		height:32px;
		}
		.box_btn.check a::before{
			background:url(../../image/base/btn_check.png) no-repeat 0 0;
		}
		.box_btn.cart a::before{
			background:url(../../image/base/btn_cart.png) no-repeat 0 0;
	}
	.box_btn a:hover{
		text-decoration:none;
		background:#FFF;
		color:#E87C97;
		}
		.box_btn.check a:hover::before{
			background:url(../../image/base/btn_check_on.png) no-repeat 0 0;
		}
		.box_btn.cart a:hover::before{
			background:url(../../image/base/btn_cart_on.png) no-repeat 0 0;
}

/* --- responsive --- */
@media screen and (max-width:767px){
	.box_btn{
		min-width:100px;
		max-width:100%;
		width:100%;
		height:70px;
		margin:10px 0 80px;
	}
	.box_btn:last-child{
		margin:10px 0 10px;
	}
	.box_btn a{
		width:100%;
		font-size:1.0rem;
	}
	.box_btn a::before{
		content:" ";
		position:absolute;
		left:20px;
		width:42px;
		height:32px;
	}
}

/* -----------------------------------------------------------------
   pagetop
----------------------------------------------------------------- */

#pagetop{
	position:fixed;
	bottom:270px;
	right:30px;
	width:50px;
	height:50px;
	z-index:999;
	}
	#pagetop a{
		display:block;
		width:100%;
		height:100%;
		color:#FFF;
		border:2px solid #000;
		-moz-border-radius:50%;
		-webkit-border-radius:50%;
		border-radius:50%;
		background:#000;
		color:#000;
		transition-duration:0.5s;
		}
		#pagetop a:hover{
			background:#FFF;
			text-decoration:none;
	}
	#pagetop a::before,
	#pagetop a::after{
		content:" ";
		position:absolute;
		top:22px;
		width:16px;
		height:2px;
		background:#FFF;
		transition-duration:0.5s;
		}
		#pagetop a::before{
			right:calc(50% - 3px);
			transform:rotate(-45deg);
		}
		#pagetop a::after{
			left:calc(50% - 3px);
			transform:rotate(45deg);
			}
			#pagetop a:hover::before,
			#pagetop a:hover::after{
				background:#000;
	}
	#pagetop a span{
		position:absolute;
		bottom:-25px;
		left:0px;
		width:100%;
		text-align:center;
		color:#000;
}

@media screen and (max-width:1040px){
	#pagetop{
		bottom:120px;
	}
}
@media print{
	#pagetop{
		display:none;
	}
}















