@charset "UTF-8";
/* ===========================
1.目次＆ブレークポイント
============================== */
/*
1.目次＆ブレークポイント
2.全体
3.
*/
@media screen and (min-width: 35.5em) { /* 568px sm */
}
@media screen and (min-width: 48em) { /* 768px md */
}
@media screen and (min-width: 64em) { /* 1024px lg */
}
@media screen and (min-width: 80em) { /* 1280px xl */
}

/* ===========================
2.全体
============================== */
* , *::before , *::after {
	box-sizing: border-box;
}
html {
	overflow-y: scroll;
	scroll-behavior: smooth;
	height: 100%;
}
body {
	position: relative;
	height: 100%;
	color: #000;
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
}
a {
	text-decoration: none;
}
ul, ul li{
	margin: 0;
	padding: 0;
	list-style: none;
}
img {
	display: inline-block;
	max-width: 100%;
	height: auto;
}
img.icon{
	width: 2em;
	height: auto;
}
.sp{
	display: block;
}
.pc{
	display: none;
}
	@media screen and (min-width: 48em) { /* 768px md */
		.sp{
			display: none;
		}
		.pc{
			display: block;
		}
	}

header {
	position: fixed;
	top: 0;
	z-index: 3;
	padding: 10px;
	width: 100% ;
	background: rgba(255,255,255,0.95);
}
.header_tool{
	text-align: center;
}
.header_tool.sp img.logo {
	display: block;
	margin: 0 auto;
	width: 60%;
	height: auto;
}
.header_tool.sp .attention .icon{
	position: absolute;
	top: 50%;
	right: 0.5em;
	width: 1.5em;
	transform: translateY( -50%);
}
	@media screen and (min-width: 48em) { /* 768px md */
		header {
			position: static;
		}
		.header_tool.pc nav{
			width: 100%;
			max-width: 1200px;
			margin: 0 auto;
			padding: 0 10px;
		}
		.header_tool.pc nav ul{
			display: flex;
			align-content: center;
		}
		.header_tool.pc .submenu ul{
			justify-content: flex-end;
			font-size: 12px;
		}
		.header_tool.pc .submenu ul li{
			padding: 10px 15px;
		}
		.header_tool.pc .submenu ul li:last-child{
			background-color: #F4F4F4;
			border-radius: 20px;
		}
		.header_tool.pc .mainmenu ul{
			justify-content: center;
			font-weight: bold;
		}
		.header_tool.pc .mainmenu ul li a{
			display: block;
			padding: 15px;		
			color: #000;	
		}
		.header_tool.pc .mainmenu ul li.home a,
		.header_tool.pc .mainmenu ul li a:hover{
			color: #35BF71;
			border-bottom: 3px solid #35BF71;
		}

	}
/*spmenu*/
#menu-btn-check {
	display: none;
}
.menu-btn {
	width: 40px;
	height: 40px;
	position: fixed;
	top: 10px;
	left: 10px;
	display: flex;
	justify-content: center;
	align-items: center;
	list-style: none;
	background-color: rgba(0, 146, 69, 1);
	border-radius: 5px;
	z-index: 900;
}
.menu-btn span,
.menu-btn span:before,
.menu-btn span:after {
	content: '';
	display: block;
	height: 2px;
	width: 20px;
	border-radius: 3px;
	background-color: #fff;
	position: absolute;
	transition: all 0.3s;
}
.menu-btn span:before {
	bottom: 7px;
}
.menu-btn span:after {
	top: 7px;
}
#menu-btn-check:checked ~ .menu-btn span {
	background-color: rgba(255, 255, 255, 0);
}
#menu-btn-check:checked ~ .menu-btn span::before {
	bottom: 0;
	transform: rotate(45deg);
}
#menu-btn-check:checked ~ .menu-btn span::after {
	top: 0;
	transform: rotate(-45deg);
}
#nav-area {
	width: 80%;
	height: 100%;
	margin: 60px 0 0;
	padding: 0;
	position: fixed;
	top: -100%;
	transition: all 0.3s;
	opacity: 0;
	background-color: rgba(255,255,255,0.9);
	z-index: 800;
}
#menu-btn-check:checked ~ #nav-area {
	top: 0;
	left: 0;
	opacity: 1;
}
#nav-area ul{
	padding-left: 15px;
}
#nav-area ul li{
	padding: 5px 10px;
	display: flex;
	text-align: left;
	border-bottom: 1px solid #ccc;
}
#nav-area ul li a{
	position: relative;
	display: block;
	padding: 5px;
	width: 100%;
}
#nav-area ul li a:after{
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	background: url(../img/icon_right.svg) no-repeat;
	background-size: contain;
	width: 15px;
	height: 15px;
}
#nav-area ul li img{
	margin-right: 10px;
	width: 1em;
}

main {
	position: relative;
	z-index: 2;
	top: 60px;
	width: 100%;
	margin: 0 auto;
}
	@media screen and (min-width: 48em) { /* 768px md */
		main{
			top: 0;
			width: 100%;
			max-width: 1080px;
		}
	}
section .flex{
	display: flex;
	flex-wrap: wrap;
}
section .flex.col2 li{
	width: calc( 97% / 2);
	margin: 0 auto;
}
section .flex.col3 li{
	width: calc( 97% / 3);
	margin: 0 auto;
}
section .flex li{
	justify-content: space-around;
	align-items: center;
	align-content: flex-start
}
section h2{
	margin-bottom: 0;
}
section ul{
	margin: 0 auto 2em;
}
section ul li a{
	display: block;
}

	@media screen and (min-width: 48em) { /* 768px md */
		section{
			margin: 0 auto;
		}
		section h2{
			display: none;
		}
		section .pc h3{
			font-size: 29px;
		}
		section .pc h4{
			font-size: 22px;
			text-align: center;
		}
		section .pc .flex{
			justify-content: center;
		}
		section .pc ul li{
			overflow: hidden;
			width: 25%;
			margin-right: 20px;
			box-shadow: 0 1px 10px rgba(0, 0, 0, 0.15);
			border-radius: 5px;
		}
		section .pc ul li:last-child{
			margin-right: 0;
		}
		section .pc ul.noshadow li{
			box-shadow: none;
		}
		section .pc ul li a{
			font-weight: bold;
			border-radius: 5px 5px 0 0;
			color: #000;
		}
		section .pc ul li a span{
			display: block;
			padding: 20px;
			font-weight: bold;
		}
		section .pc ul li.nomessage{
			display: block;
			width: 100%;
			padding: 15px 0;
			text-align: center;
			border-radius: 5px;
		}
		section .pc ul li img{
			height: auto;
			transition: transform .6s ease;
		}
		section .pc ul li img:hover{
			transform: scale(1.1);
		}
	}
.mainvisual ul{
	width: 100%;
}
.slide_area{
	width: 100%;
	overflow: hidden;
}
.slick-dots{
	bottom: -30px;
}
.slick-dots li{
	width: 10px;
	height: 10px;
}
.slick-dots li button:before{
	margin-top: -40px;
	font-size: 20px;
	opacity: 0.25;
}
.slick-dots li.slick-active button:before{
	opacity: 1;
    color: #fff;
}
.slick-img img {
	height: 100vh;
	margin: auto;
	max-height: 100%;
	max-width: 100%;
	object-fit: cover;
	width: 100%;
}

footer {
	position: sticky;
	top: 100vh;
	z-index: 1;
	margin-top: 100px;
}
footer ul{
	width: 100%;
	display: flex;
}
footer ul li{
	justify-content: space-between;
	align-items: center;
	text-align: center;
	padding: 10px 0;
}
footer ul li img{
	display: block;
	margin: 0 auto 0.5em;
}
footer ul li a{
	color: #000;
}
footer .sp{
	background-color: rgba(0, 146, 69, 1);
}
footer .sp ul li{
	width: 20%;
	font-size: 10px;
}
footer .sp ul li:first-child{
	border: none;
}
footer .sp ul li a{
	color: #fff;
}
	@media screen and (min-width: 48em) { /* 768px md */
		footer .pc{
			padding: 10px;
			background-color: #E7E7E7;
			text-align: center;
			font-size: 12px;
		}
		footer .pc ul{
			margin: 0 auto;
			justify-content: center;
		}
		footer .pc ul li{
			padding: 0 10px;
		}
	}

