@charset "utf-8";
html {
	font-size: 14px;
}
body {
	background-color: #fff;
	font-size: 1.3rem;
	font-family: "Roboto", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "sans-serif";
	-webkit-text-size-adjust: 100%;
}
.cf::after{
	content: "";
	display: block;
	clear: both;
}
.pc_none{
	display: none;
}
@media screen and (max-width:640px){
	.pc_none{display: block;}
	.sp_none{display: none;}
}
img{
	width: 100%;
}
.btn,a{
	transition-duration: .2s;
	text-decoration: none;
}

/* text size */
.txt14{font-size: 1.2vw;}
.txt16{font-size: 1.4vw;}
.txt18{font-size: 1.6vw;}
.txt20{font-size: 1.8vw;}
.txt24{font-size: 2.2vw;}
@media screen and (min-width:1000px) { 
	.txt14{font-size: 14px;}
	.txt16{font-size: 16px;}
	.txt18{font-size: 18px;}
	.txt20{font-size: 20px;}
	.txt24{font-size: 24px;}
}
@media screen and (max-width:640px) { 
	.txt14{font-size: 2.4vw;}
	.txt16{font-size: 2.8vw;}
	.txt18{font-size: 3.2vw;}
	.txt20{font-size: 3.6vw;}
	.txt24{font-size: 4.4vw;}
}
.ind{padding-left: 1.4rem;text-indent:-1.4rem;margin: 0 !important;}

/* navigation */
header{
	display: none;
	background: #fff;
	box-shadow: 0 2px 3px rgba(0,0,0,0.2);;
}
header ul{
	display: table;
	margin: .8rem auto;
}
header ul li{
	display: table-cell;
	padding: 0 3.5vw;
	font-family: courier-std, monospace;
	font-weight: 300;
	font-style: normal;
}
header a{
	color: #000;
	animation-direction: .2s;
}
header a:hover{
	color: #e00;
}
header p{
	position: absolute;
	right: 10px;
	top: 10px;
}
header p i{
	margin-right: .5rem;
}
.fixed {
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
}
#nav_toggle{
	display: none;
	cursor: pointer;
}
 
/*メニュー部分*/
@media screen and (max-width:640px){
	nav{
		display: none;
	}
	header ul{
		width: 100%;
		margin: 0;
	}
	header ul li{
		display: block;
		width: 100%;
		text-align: center;
	}
	header ul li a{
		display: block;
		width: 100%;
		padding: .5rem 0;
	}
	header ul li a:hover{
		background: #efefef;
	}
	#nav_toggle{
		display: block;
		width: 30px;
		height: 30px;
		position: relative;
		top: 4px;
		left: 4px;
		z-index: 100;
	}
	#nav_toggle div {
		position: relative;
	}
	#nav_toggle span{
		display: block;
		height: 3px;
		background: #000;
		position:absolute;
		width: 100%;
		left: 0;
		-webkit-transition: 0.5s ease-in-out;
		-moz-transition: 0.5s ease-in-out;
		transition: 0.5s ease-in-out;	
	}
	#nav_toggle span:nth-child(1){
		top:0px;
	}
	#nav_toggle span:nth-child(2){
		top:8px;
	}
	#nav_toggle span:nth-child(3){
		top:16px;
	}
	
	/*開閉ボタンopen時*/
	.open #nav_toggle span:nth-child(1) {
			top: 12px;
		   -webkit-transform: rotate(135deg);
			-moz-transform: rotate(135deg);
			transform: rotate(135deg);
		}
		.open #nav_toggle span:nth-child(2) {
			width: 0;
			left: 50%;
		}
		.open #nav_toggle span:nth-child(3) {
			top: 12px;
			-webkit-transform: rotate(-135deg);
			-moz-transform: rotate(-135deg);
			transform: rotate(-135deg);
		}
}
/* main image */
.mainimage{
	background: #e6e6e6 url(../img/img_main.png) right no-repeat;
	background-size: 50% 100%;
	width: 100%;
}
.mainimage div{
	height: 100vh;
	height: calc(var(--vh, 1vh) * 100);
	width: 50%;
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
.mainimage div h1{
	margin: 0 auto 5%;
}
.mainimage div p{
	line-height: 3;
}
@media screen and (max-width:640px) { 
	.mainimage{
		background-image: none;
	}
	.mainimage div{
		width: 100%;
	}
}

/* layout */
section{
	margin: 0 auto;
}
section h2{
	width: 80%;
	max-width: auto;
	text-align: center;
	padding: 10% 0 5%;
	margin: 0 auto;
}
section:nth-child(3) h2{max-width: 538px;}
section:nth-child(4) h2{max-width: 463px;}
section:nth-child(5) h2{max-width: 425px;}
section:nth-child(6) h2{max-width: 493px;}
section:nth-child(7) h2{max-width: 474px;}
section:nth-child(8) h2{max-width: 431px;}
section:nth-child(9) h2{max-width: 438px;}
section:nth-child(10) h2{max-width: 409px;}

.news dl{
	width: 90%;
	max-width: 800px;
	margin: 0 auto;
}
.news dt{
	clear: left;
	float: left;
	width: 25%;
	padding: .2rem .5rem;
	line-height: 2.25;
}
.news dd{ 
	padding: .2rem 0 .2rem 25%;
	border-bottom: 1px dotted #ccc;
	line-height: 2.25;
}
@media screen and (max-width:640px) { 
	.news dt,
	.news dd{
		line-height: 1.5;
		padding: 0;
	}
	.news dt{
		float: none;
		width: 100%;
	}
	.news dt::before{
		content: "■"
	}
	.news dd{
		padding-bottom: .5rem;
		margin-bottom: .5rem;
	}
}

/* category */
.category ul{
	width: 100%;
	height: 100vh;
	height: calc(var(--vh, 1vh) * 100);
	display: grid;
	grid-gap: 1vw;
	grid-template-rows: 32vh 32vh 32vh;
	grid-template-columns: 1fr 1fr 1fr;
	margin-bottom: 3rem;
}
.category li a{
	height: 100%;
	width: 100%;
	vertical-align: middle;
	display: flex;
	text-align: center;
	align-items: center;
	justify-content: center;
	font-size: 4.8vw;
	font-family: Futura PT;
	font-weight: 300;
	font-style: normal;
	color: #000;
	animation-duration: .2s;
}
.category li a:hover{
	background: rgba(255,255,255,0.5);
}
.category li:nth-child(3){
	grid-column: 1/ span 2;
}
.category li:nth-child(4){
	grid-column: 3;
	grid-row: 1 / span 2;
}
.category li:nth-child(6){
	grid-column: 2/ span 2;
}
.category li:nth-child(1){background: url(../img/img_cat01.png) center center no-repeat;}
.category li:nth-child(1){background-size: cover;}
.category li:nth-child(2){background: url(../img/img_cat02.png) center center no-repeat;}
.category li:nth-child(2){background-size: cover;}
.category li:nth-child(3){background: url(../img/img_cat03.png) center center no-repeat;}
.category li:nth-child(3){background-size: cover;}
.category li:nth-child(4){background: url(../img/img_cat06.png) center center no-repeat;}
.category li:nth-child(4){background-size: cover;}
.category li:nth-child(5){background: url(../img/img_cat04.png) center center no-repeat;}
.category li:nth-child(5){background-size: cover;}
.category li:nth-child(6){background: url(../img/img_cat05.png) center center no-repeat;}
.category li:nth-child(6){background-size: cover;}
.category .link_none{
	cursor: default;
}
.category li a.link_none:hover{
	background-color: rgba(255,255,255,0);
}

/* item */
.item dl{
	display: table;
	width: 98%;
	max-width: 900px;
	margin: 0 auto 5%;
}
.item dt,
.item dd{
	display: table-cell;
	vertical-align: top;
	text-align: left;
}
.item dt{
	display: table-cell;
	vertical-align: top;
	text-align: left;
	width: 48%;
	padding-right: 3.5%;
}
.item dd p{
	line-height: 1.625;
	margin-bottom: 1rem;
}
.item ul{
	margin: 0 auto;
	width: 98%;
	max-width: 900px;
	display: grid;
	grid-gap: 1vw;
	grid-template-columns: 1fr 1fr 1fr;
}	
.item li{
	text-align: center;
}
.item li img{
	margin-bottom: .5rem;
}
.item table{
	width: 90%;
	max-width: 700px;
	margin: 4% auto 0;
}
.item table th,
.item table td{
	border: 1px solid #888;
	padding: .5rem 1rem;
	text-align: left;
	vertical-align: middle;
}
.item table td:last-child{
	text-align: right;
}
.item table th{
	background: #eee;
	font-weight: normal;
	text-align: center;
}
@media screen and (max-width:640px) { 
	.item dl{
		width: 95%;
		margin: 0 auto;
	}
	.item dt,
	.item dd{
		display: block;
		width: 100%;
		padding: 0;
	}
	.item dt img{
		margin-bottom: .5rem;
	}
	.item table{
		width: 98%;
	}
}

/* about us */
.about div{
	background: url(../img/bg_about.png) center center no-repeat;
	background-size: auto 90%;
	width: 90%;
	max-width: 800px;
	margin: 0 auto 18%;
}
.about p{
	text-align: left;
	line-height: 2.5;
	margin-bottom: 1.5rem;
}
@media screen and (max-width:640px) { 
	.about div{
		background-size: contain;
	}
}

/* contact */
.contact{
	background: #f5f5f5;
	text-align: center;
	padding-bottom: 10%;
}
.contact h2{
	padding-top: 5%;
}
.contact dl{
	max-width: 800px;
	width: 98%;
	margin: 0 auto 4.6%;
}
.contact dt,
.contact dd{
	text-align: left;
	padding: .5rem 0;
}
.contact dt{
	width: 24%;
	font-weight: normal;
	padding-top: 1rem;
	float: left;
	clear: left;
}
.contact dt span{
	color: #f00;
}
.contact dd{
	padding-left: 24%;
}
.contact dd input{
	border-radius: 5px;
	border: 1px solid #b5b5b5;
	padding: .5rem;
	width: 100%;
}
.contact dd textarea{
	border-radius: 5px;
	width: 100%;
	height: 10rem;
	border: 1px solid #b5b5b5;
	padding: .5rem;
}

.contact .btn{
	margin: 0 auto;
	background: #094;
	text-align: center;
	border: none;
	border-radius: 10px;
	color: #fff;
	width: 30%;
	padding: 1rem 0;
	font-weight: bold;
	cursor: pointer;
}
.contact a.btn{
	display: block;
}
.contact .btn::before{
	content: ">";
}
.contact .btn::hover{
	background: #3a7;
}
.error{
	width: 80%;
	max-width: 900px;
	line-height: 2;
	margin: 0 auto;
}
.error h3{
	padding-bottom: 1rem;
	margin: 0 auto;
	text-align: center;
	border-bottom: 1px solid #ccc;
}
.error p{
	text-align: left;
	margin: 1rem;
}
@media screen and (max-width:640px) { 
	.contact dl{
		width: 90%;
	}
	.contact dt,
	.contact dd{
		text-align: left;
		padding: .5rem 0;
	}
	.contact dt{
		width: 100%;
		float: none;
		clear: left;
	}
	.contact dt::before{
		content: "■";
	}
	.contact dd{
		padding: 0;
		margin-bottom: 1rem;
	}
	.contact .btn{
		width: 90%;
		margin-bottom: 1rem;
	}
}

/* footer */
footer{
	background: #c9c9c9;
	padding: 2rem 0;
}
footer > p{
	width: 90%;
	margin: 0 auto;
	text-align: right;
}
footer > p i{
	margin-right: .5rem;
}
footer a{
	color: #333;
	animation-duration: .2s;
}
footer a:hover{
	color: #c00;
}

footer dl{
	display: table;
	width: 98%;
	max-width: 900px;
	margin: 0 auto;
}
footer dt,
footer dd{
	display: table-cell;
	text-align: left;
	vertical-align: middle;
}
footer dt{
	width: 30%;
	padding-right: 10%;
}
footer dd{
	line-height: 1.5;
}
footer dd strong{
	font-weight: normal;
}
footer address{
	text-align: center;
	font-style: normal;
	padding: 2rem 0 0;
}
@media screen and (max-width:640px) { 
	footer dt,
	footer dd{
		display: block;
		text-align: center;
	}
	footer dt{
		width: 30%;
		padding: 0;
		margin: 0 auto 1rem;
	}
	footer dt img{
		width: 100%;
	}
	footer dd{
	}
}