@charset "UTF-8";
/* CSS Document */

html,
body {
	padding: 0;
	margin: 0;
	width: 100%;
	font-family:  'Montserrat', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
	letter-spacing: 3px;
	line-height: 2.4;
}
@media only screen and (min-width: 1200px)  {

}
h1,h2,h3 {
	padding: 0;
	margin: 0;
	font-weight: 400;
	font-size: 100%;
}
a {
	text-decoration: none;
	color: #000;
}
img {
	width: 100%;
	border: none;
}
video, iframe {
	width: 100%;
}
ul,li {
	list-style: none;
	padding: 0;
	margin: 0;
}
.bg {
	width: 100vw;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	background:url("images/bg_1.jpg") no-repeat center center;
	background-size: cover;
	z-index: -1;
}
.bold {
	font-weight: 600;
}
section {
	opacity: 0;
	transform: translate(0,20px);
	transition: all 1s 0s;
}
section.ac {
	opacity: 1;
	transform: translate(0);
}
header {
	width: 100%;
	position: relative;
	padding: 25px 0;
	background: #FFF;
	margin-bottom: 65px;
}
header h1 {
	width: 50%;
	max-width: 260px;
	margin: 0 auto;
	line-height: 0;
}
header .contact {
	position: absolute;
	top: 50%;
	right: 50px;
	transform: translate(0,-50%);
}
header .contact .form {
	border: 2px solid #000;
	text-align: center;
	padding: 5px;
	font-size: 16px;
	
}
header nav .menubutton {
	position: fixed;
	top: 35px;
	left: 50px;
	width:50px;
	height: 50px;
	cursor: pointer;
	z-index: 9001;
}
header nav .menubutton i {
	display: block;
	position: absolute;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 50px;
	height: 2px;
	background: #000;
	transition: all .5s
}
header nav .menubutton i:first-child {
	top: 0px;
}
header nav .menubutton i:nth-child(2) {
	top: 50%;
}
header nav .menubutton i:last-child {
	top: 48px;
}
header nav .menubutton.open i:first-child {
	top: 50%;
	transform: translate(-50%,-50%) rotate(45deg);
}
header nav .menubutton.open i:nth-child(2) {
	opacity: 0;
}
header nav .menubutton.open i:last-child {
	top: 50%;
	transform: translate(-50%,-50%) rotate(-45deg); 
}
/* メニュー */
header nav .menu {
	position: fixed;
	top: 0;
	left: -100vw;
	width: 100vw;
	height: 100vh;
	background: rgba(255,255,255,1);
	transition: all .5s ease;
	z-index: 9000;

}
header nav .menu .nav_box {
    position: absolute;
    top: 50%;
    left: 50%;
	transform: translate(-50%,-50%);
	max-width: 1000px;
	width: 90%;		
}
header nav .menu .logo {
	width: 30%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(0,-50%);
}
header nav .menu ul.no1 {
	position: absolute;
	top: 50%;
	left: 45%;
	transform: translate(0,-50%);
	width: 25%;
}
header nav .menu ul.no2 {
	position: absolute;
	top: 50%;
	left: 75%;
	transform: translate(0,-50%);
	width: 25%;
}
header nav .menu li {
	padding: 5px 0;
	opacity: 0;
	transition: all 1s .5s;
	font-size: 12px;
	letter-spacing: 2px;
	clear: both;
	position: relative;
	height: 50px
		
}

header nav .menu ul.no1 li .img {
	width: 50px;
}
header nav .menu ul.no1 li .name {
	position: absolute;
	top: 50%;
	left: 60px;
	transform: translate(0,-50%);
}
header nav .menu ul.no2 li .name {
	position: absolute;
	top: 50%;
	left: 0px;
	transform: translate(0,-50%);
}
header nav .menu.open {
	left: 0;
}
header nav .menu.open li {
	opacity: 1;
}

@media only screen and (max-width: 750px)  {
	header .contact {
		display: none;
	}
	header nav .menubutton {
		top: 40px;
		left: auto;
		right: 15px;
		width:30px;
		height: 30px;
	}
	header nav .menubutton i {
		width: 30px;
	}
	header nav .menubutton i:first-child {
		top: 0px;
	}
	header nav .menubutton i:nth-child(2) {
		top: 50%;
	}
	header nav .menubutton i:last-child {
		top: 28px;
	}
	header nav .menu .logo {
		width: 65%;
		position: static;
		transform: translate(0);
		margin: 0 auto 50px;
	}
	header nav .menu ul.no1 {
		position: static;
		transform: translate(0);
		width: 55%;
		float: left;
	}
	header nav .menu ul.no2 {
		position: static;
		transform: translate(0);
		width: 40%;
		float: right;
	}
	header nav .menu li {
		font-size: 11px;

	}
	
}

main {
	width: 100%;
}
main #visual {
	width: 100%;
	position: relative;
}
main #visual .img {
	overflow: hidden;
	border-radius: 75px;
	box-sizing: border-box;
	border: 5px solid #FFF;
	line-height: 0;
}
main #visual .copy_wrap {
	position: absolute;
	bottom: 20vh;
	left: 15vw;
	font-size:1.8vw;
	z-index: 100;
	letter-spacing: .6vw;
}
main #visual .copy_wrap .copy {
	background: #FFF;
	box-sizing: border-box;
	padding: 10px;
	display: inline-block;
	margin-bottom: 15px;
	line-height: 1;
	border-radius: 10px;
	letter-spacing: 5px;
}
.copy_wrap  {
	opacity: 0;
	transform: translate(-10px, 0);
	transition: all 1s .6s;
}
.fade {
	opacity: 0;
	transition: all 1s .1s;
}
.copy_wrap.ac,.fade.ac {
	opacity: 1;
	transform: translate(0);
}
@media only screen and (max-width: 750px)  {
	main #visual .img {
		border-radius: 40px;
	}
	main #visual .swiper-slide {
		padding: 0 6px;
		box-sizing: border-box;
	}	
	main #visual .copy_wrap {
		bottom: -12vh;
		left: 5vw;
		font-size:20px;
	}
	main #visual .copy_wrap .copy {
		margin-bottom: 10px;
	}
}

main #contents {
	max-width: 1000px;
	margin: 100px auto;
	padding: 0 6px;
}

main #contents .news {
	background: #FFF;
	border-radius: 75px;
	box-sizing: border-box;
	padding: 50px 75px;
	text-align: left;
}
main #contents .news h1 {
	margin-bottom: 15px;
	font-size: 26px;
}
main #contents .news li {
	margin-bottom: 25px;
}
main #contents .news li a {
	padding-bottom: 10px;
	border-bottom: 1px solid #000;
	font-size: 18px;
}
@media only screen and (max-width: 750px)  {
	main #contents {
		margin: 150px auto;
	}	
	main #contents .news {
		border-radius: 40px;
		padding: 50px 25px;
	}
	main #contents .news h1 {
		font-size: 20px;
	}
	main #contents .news li a {
		font-size: 14px;
	}	
}
main #contents .class {
	margin: 100px auto;
	background: #FFF;
	border-radius: 75px;
	box-sizing: border-box;
	padding: 50px 35px;
	text-align: center;
}
main #contents .class h1 {
	margin-bottom: 15px;
	font-size: 26px;
	text-align: center;
}
main #contents .class ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
main #contents .class li {
	box-sizing: border-box;
	padding: 25px 50px;
	overflow: hidden;
}
main #contents .class li .img {
	animation:2s ease-in 1s infinite icon;
}
@keyframes icon {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.03);
  }

  100% {
	transform: scale(1);
  }
}

main #contents .class li .data {
	margin: 10px auto;
	font-size: 12px;
	width: 90%;
}
main #contents .class li .data h2 {
	font-size: 20px;
	border-bottom: 2px solid #000;
	padding-bottom: 10px;
	margin-bottom: 10px;
}
main #contents .class li .data h3 {
	margin-bottom: 15px;
}
main #contents .class li .data .btn a {
	text-align: center;
	padding: 5px 20px;
	font-size: 14px;
	border-radius: 10px;
	color: #FFF;
}
@media only screen and (max-width: 750px)  {
	main #contents .class {
		margin: 150px auto;
		border-radius: 40px;
		padding: 50px 20px;
	}
	main #contents .class h1 {
		font-size: 20px;
	}
	main #contents .class ul {
		grid-template-columns: 1fr;
	}
	main #contents .class li {
		padding: 25px 0px;
	}
	main #contents .class li .data {
		width: 100%;
	}
}





footer {
	text-align: center;
}
footer ul {
	text-align: center;
	margin-bottom: 25px;
}
footer li {
	display: inline;
	margin: 0 25px;
}
footer .copyright {
	margin:10px 0;
}
@media only screen and (max-width: 750px)  {
	footer {
		font-size: 12px;
	}
	footer li {
		margin: 0 5px;
	}
}



main #box {
	max-width: 1000px;
	width: calc(100% - 12px);
	margin: 0px auto 100px;
	background: #FFF;
	border-radius: 75px;
	box-sizing: border-box;
	padding: 50px;
	text-align: center;
}
main #box .title {
	width: 50%;
	margin: 0 auto;
	position: relative;
	text-align: center;
}
main #box .title .img {
	width: 50%;
}
main #box .title h1 {
	width: 55%;
	position: absolute;
	top: 50%;
	right: 0;
	text-align: center;
	transform: translate(0,-50%);
	font-size: 24px;
}
main #box .photo .img {
	box-sizing: border-box;
	overflow: hidden;
	border-radius: 40px;
	line-height: 0;
	margin: 0 15px;
}
main #box .photo .work_slide .swiper-slide {
	width: 33.333%;
}
main #box .photo .work_slide .swiper-slide.w25 {
	width: 24%;
}
main #box .photo .work_slide .swiper-slide.w60 {
	width: 48%;
}
main #box .photo .work_slide .swiper-slide.w50 {
	width: 40%;
}


main #box .copy {
	margin: 50px auto;
	font-size: 16px;
	text-align: center;
}
main #box .list {
	margin: 50px auto;
	font-size: 16px;
	text-align: left;
	box-sizing: border-box;
	padding: 15px;
}
main #box .list h1 {
	font-size: 20px;
	border-bottom: 2px solid #000;
	margin-bottom: 20px;
	padding-bottom: 10px;
}
main #box .list ul {
	padding: 0 10px;
}
main #box .list li {
	font-size: 16px;
	margin: 20px 0;
}
main #box .list li h2 {
	font-size: 18px;
}
main #box .list li ul {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	padding: 0;
}
main #box .list li ul li {
	margin:0;
}
main #box .list .info {
	font-size: 12px;
	padding: 0 10px;
}
main #box .policy {
	font-size: 16px;
	padding: 0 10px;
}
@media only screen and (max-width: 750px)  {
	main #box {
		padding: 30px 20px;
		text-align: center;
		border-radius: 40px;
	}
	main #box .title {
		width: 100%;
	}
	main #box .title .img {
		width: 38%;
	}
	main #box .title h1 {
		width: 68%;
		font-size: 20px;
	}
	main #box .photo .img {
		margin: 0;
	}
	main #box .photo .work_slide .swiper-slide {
		width: 50%;
	}
	main #box .photo .work_slide .swiper-slide.w25 {
		width: 36%;
	}
	main #box .photo .work_slide .swiper-slide.w60 {
		width: 74%;
	}
	main #box .photo .work_slide .swiper-slide.w50 {
		width: 55%;
	}
	main #box .copy {
		margin: 25px auto;
		font-size: 14px;
		text-align: left;
	}
	main #box .list {
		padding: 0;
	}
	main #box .list li ul {
		display: grid;
		grid-template-columns: 1fr;
		padding: 0;
	}
	main #box .list li {
		font-size: 14px;
		margin: 20px 0;
	}
	main #box .policy {
		font-size: 14px;
		padding: 0;
	}
	
}