body.open{
	height: 100vh;
	overflow: hidden;
}
/*======================================
header
======================================*/
*, *:before, *:after {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
	font-family: 'Noto Sans JP','メイリオ', Meiryo,'Meiryo UI','Yu Gothic UI',YuGothic,'Yu Gothic','ヒラギノ角ゴシック','Hiragino Sans', sans-serif;
	color: #2E1E1E;
}
ol, ul {
	list-style: none;
}
a {
	text-decoration: none;
	color: inherit;
}
p{
	letter-spacing: 0.05em;
}
.cp_cont {
	height: 65vh;
}
/* menu */
.cp_offcm02 {
	position: relative;
	z-index: 5;
	left: 0;
	visibility: visible;
	overflow: auto;
	width: 100%;
	height: auto;
	padding-top: 0;
	text-align: center;
	opacity: 1;
}
.cp_offcm02 nav {
	background: #9ED5D5;
	padding: 16px 0 16px;
}

.cp_offcm02 li {
	display: inline-block;
	border: none;
	color: #ffffff;
	width: 16%;
}
.cp_offcm02 li.pc-logo {
	max-width: 510px;
	width: 40%;
	position: relative;
	bottom: -30px;
	z-index: 10;
	margin: 0 2%;
}
.cp_offcm02 li.pc-logo img{
	width: 100%;
	max-width: 328px;
}
.cp_offcm02 li.pc-logo a{
	padding: 0;
}
.cp_offcm02 li.pc-logo h1{margin: 0;}
.cp_offcm02 li.pc-logo h1 img{
	width: 100%;
}
.cp_offcm02 li a {
	display: block;
	padding: 12px 6%;
	width: 100%;
}
.cp_offcm02 ul{
	display: flex;
	max-width: 1100px;
	margin: 0 auto;
	justify-content: space-between;
}
.cp_offcm02 li a:hover img{
  animation: swing01 2s infinite;
}

@keyframes swing01 {
  0% {
      transform: translate(0px, 2px);
  }
  5% {
      transform: translate(0px, -2px);
  }
  10% {
      transform: translate(0px, 2px);
  }
  15% {
      transform: translate(0px, -2px);
  }
  20% {
      transform: translate(0px, 2px);
  }
  25% {
      transform: translate(0px, -2px);
  }
  30% {
      transform: translate(0px, 0px);
  }
}
/* menu toggle */
#cp_toggle02 {
	display: none;
}
.cp_mobilebar {
	display: none;
}


#breadcrumbs {
	max-width: 1020px;
	width: 100%;
	padding: 0 20px;
	margin: 0 auto;
	font-size: 13px;
}
#breadcrumbs span, #breadcrumbs a{}
#breadcrumbs a {
		color: #8e8282;
}


@media (max-width: 767px) {
	/* menu */
	.cp_offcm02 {
		position: fixed;
		z-index: 2;
		top: 0;
		/* overflow-y: scroll; */
		overflow: hidden;
		height: 100%;
		padding-top: 60px;
		-webkit-transition: opacity 0.3s ease-in, visibility 0.3s ease-in 0.3s;
		        transition: opacity 0.3s ease-in, visibility 0.3s ease-in 0.3s;
		opacity: 0;
		background-color: #9fd5d4;
	}
	.cp_offcm02 nav {
		background: #9fd5d4;
		overflow: scroll;
	}
	.cp_offcm02 li {
		display: block;
		color: #FB8C00;
	}
	.cp_offcm02 li a {
	  padding: 1em 0.4em;
	}

	/* menu toggle */
	.cp_mobilebar {
		display: block;
		z-index: 10;
		position: sticky;
		top: 0;
		left: 0;
		padding: 20px 25px;
		width: 100%;
		height: 95px;
		background-color: #9ED5D5;
	}
	.cp_mobilebar p{
		font-size: 10px;
    font-weight: bold;
    color: #fff;
    position: absolute;
    right: 25px;
    bottom: 24px;
	}
	.cp_menuicon {
		display: block;
    position: relative;
    width: 32px;
    height: 100%;
    cursor: pointer;
    -webkit-transition: transform .3s ease-in;
    transition: transform .3s ease-in;
    float: right;
		top: -4px;
	}
	.cp_menuicon > span {
		display: block;
    position: absolute;
    top: 61%;
    margin-top: -0.3em;
    width: 100%;
    height: 0.2em;
    border-radius: 1px;
    background-color: #fff;
    -webkit-transition: transform .3s ease-in;
    transition: transform .3s ease-in;
	}
	.cp_menuicon > span:before {
		content: '';
		position: absolute;
		width: 100%;
		height: 100%;
		border-radius: 1px;
		background-color: #fff;
		-webkit-transition: transform .3s ease;
		        transition: transform .3s ease;
	}
	.cp_menuicon > span:before {
		-webkit-transform: translateY(-0.8em);
		        transform: translateY(-0.8em);
	}
	#cp_toggle02:checked + .cp_mobilebar .cp_menuicon {
		-webkit-transform: rotate(30deg);
		transform: rotate(30deg);
		margin: -5px 0 0;
	}
	#cp_toggle02:checked + .cp_mobilebar span:before,
	#cp_toggle02:checked + .cp_mobilebar span:after {
		-webkit-transform: rotate(120deg);
		        transform: rotate(120deg);
	}
	#cp_toggle02:checked ~ .cp_offcm02 {
		visibility: visible;
		opacity: 1;
		-webkit-transition-delay: 0s;
		        transition-delay: 0s;
	}

  .cp_offcm02{
		display: none;
	}
	body.open .cp_offcm02{
		display: block;
	}


	/* content */
	main {
		top:60px;
	}
	.sp-logo{
		position: absolute;
    z-index: 10;
    top: 22px;
    text-align: center;
    width: 50%;
    margin: 0 auto;
    left: -50%;
    right: -50%;
	}
	.sp-logo img{
		width: 100%;
    height: auto;
    max-width: 188px;
		margin-left: -5px;
	}
}


/*PC*/
@media all and (min-width:768px) {
  .sp{display: none !important;}
	.cp_offcm02 nav {
		overflow: hidden;
	}
	.cp_offcm02 nav, .cp_offcm02 ul{
		margin: 0 auto;
	}
	.header-tel-wrap{
		display: none;
	}
}
/*SP*/
@media all and (max-width:767px) {
  .pc{display: none !important;}
	.cp_offcm02 li {
		width: 50%;
    padding: 0;
    font-size: 19px;
    font-weight: 500;
	}
	.cp_offcm02 nav, .cp_offcm02 ul {
		height: auto;
		margin: 0;
		display: flex;
		flex-wrap: wrap;
	}
	.cp_offcm02 ul{
		padding: 6vh 6vw 0;
	}
	.cp_offcm02 li a img{
		max-width: 100%;
	}
	.header-tel-wrap{
		background: #FFF8DB;
		position: absolute;
		width: 100%;
		bottom: 0;
		padding: 20px 20px 30px;
	}
	.header-tel-wrap::before {
    background-image: url(/asset/img/ft-bg02-sp.png);
    background-size: 386px;
	}
	.header-tel-wrap::before {
		content: "";
		background-repeat: repeat-x;
		background-position: bottom;
		z-index: 1;
		width: 100%;
		display: block;
		position: absolute;
		top: -42px;
		height: 42px;
		left: 0;
	}
	.header-tel {
		font-weight: 500;
    color: #9ABC4D;
    font-size: 8.5vw;
	}
	.header-tel a{
		color: #9ABC4D !important;
		border-bottom: 1px solid;
		font-weight: bold;
	}
	.tel-info{
		color: #9ABC4D;
    letter-spacing: 2px;
    margin: 10px 0 0;
    font-size: 17px;
	}
	.tel-info-title {
		font-size: 17px;
    margin: 0 0 9px;
    font-weight: bold;
    color: #9ABC4D;
    letter-spacing: 1px;
	}
}
/*======================================
main-img
======================================*/
.main-img{
	position: relative;
}
.main-img img{
	width: 100%;
	height: auto;
}
.main-img .img{
	z-index: 1;
	position: relative;
}
.main-img .top-line{
	position: absolute;
	top: 0;
	z-index: 3;
}
.main-img .bottom-line{
	position: absolute;
	bottom: -1px;
	z-index: 1;
	left: 0;
}

/*PC*/
@media all and (min-width:768px) {}
/*SP*/
@media all and (max-width:767px) {}
/*======================================
footer
======================================*/
/*PC*/
@media all and (min-width:768px) {}
/*SP*/
@media all and (max-width:767px) {}
/*======================================
river
======================================*/
#river{
	background: url(/asset/img/ft-bg01.png);
	background-repeat: repeat-x;
	background-position: bottom;
	z-index: 1;
	position: relative;
}
#river::before{
	content: "";
	background-repeat: repeat-x;
	background-position: bottom;
	z-index: 1;
	position: relative;
	width: 100%;
	display: block;
	position: absolute;
	bottom: 0;
	height: 42px;
}
.img-wrap{
	max-width: 980px;
	width: 100%;
	margin: 0 auto;
	position: relative;
	height: 170px;
	top: 0;
}
#river .river-bottom{
	position: absolute;
	bottom: 0;
	z-index: 3;
	width: 100%;
}
#river .boy{
	position: absolute;
}
#river .fish-orange{
	position: absolute;
}
#river .fish-blue{
	position: absolute;
}
#river .fish-watercolor{
	position: absolute;
}
#river .butterfly{
	position: absolute;
}
#river .fish-yellow{
	position: absolute;
}

/*PC*/
@media all and (min-width:768px) {
	#river{
		background-size: 700px;
		padding: 90px 0 0;
		margin: 70px 0 0;
	}
	#river::before{
		background-image: url(/asset/img/ft-bg02-pc.png);
		background-size: 1400px;
	}
	#river .boy{
		bottom: 92px;
		left: 20px;
	}
	#river .fish-orange{
		left: 145px;
		bottom: 64px;
	}
	#river .fish-blue{
		left: 35%;
		bottom: 37px;
	}
	#river .fish-watercolor{
		right: 20%;
		top: 90px;
	}
	#river .butterfly{
		right: 10%;
		top: -35px;
	}
	#river .fish-yellow{
		right: 6%;
		top: 106px;
	}
}
/*SP*/
@media all and (max-width:767px) {
	#river{
		background-size: 350px;
		padding: 40px 0 0;
		margin: 0;
	}
	#river::before{
		background-image: url(/asset/img/ft-bg02-sp.png);
		background-size: 386px;
	}
	#river .boy{
		bottom: 50px;
    left: 60px;
    max-width: 90px;
	}
	#river .fish-orange{
		left: 17px;
    bottom: 30px;
    animation: none;
    width: 30px;
	}
	#river .fish-blue{
		left: 43%;
    bottom: 18px;
    animation: none;
    width: 32px;
	}
	#river .fish-watercolor{
		right: 34%;
		bottom: 35px;
		animation: none;
		width: 24px;
	}
	#river .butterfly{
		right: 17%;
    top: 60px;
    width: 35px;
	}
	#river .fish-yellow{
		right: 6%;
    bottom: 24px;
    animation: none;
    width: 28px;
	}
}

/****--------- ふわふわ ---------****/
.river-anima01{
  animation:river-anima01 ease-in-out 2s infinite alternate;
  -webkit-animation:river-anima01 ease-in-out 2s infinite alternate;
  -moz-animation:river-anima01 ease-in-out 2s infinite alternate;
}
@keyframes river-anima01{
  0%   { transform:translate(0%, 0%); }
  100% { transform:translate(0%, 30px); }
}
@-webkit-keyframes river-anima01{
  0%   { -webkit-transform:translate(0%, 0%); }
  100% { -webkit-transform:translate(0%, 30px); }
}

@-moz-keyframes river-anima01{
  0%   { -moz-transform:translate(0%, 0%); }
  100% { -moz-transform:translate(0%, 30px); }
}

/****--------- ゆらゆら ---------****/
.river-anima02{
  animation:river-anima02 ease-in-out 2.5s infinite alternate;
  -webkit-animation:river-anima02 ease-in-out 2.5s infinite alternate;
  -moz-animation:river-anima02 ease-in-out 2.5s infinite alternate;
}
@keyframes river-anima02{
  0%   { transform:translate(0%, 0%); }
  100% { transform:translate(0%, -20px); }
}
@-webkit-keyframes river-anima02{
  0%   { -webkit-transform:translate(0%, 0%); }
  100% { -webkit-transform:translate(0%, -20px); }
}

@-moz-keyframes river-anima02{
  0%   { -moz-transform:translate(0%, 0%); }
  100% { -moz-transform:translate(0%, -20px); }
}

/****--------- ゆらゆら ---------****/
.river-anima03{
  animation:river-anima03 ease-in-out 1.6s infinite alternate;
  -webkit-animation:river-anima03 ease-in-out 1.6s infinite alternate;
  -moz-animation:river-anima03 ease-in-out 1.6s infinite alternate;
}
@keyframes river-anima03{
  0%   { transform:translate(0%, 0%); }
  100% { transform:translate(0%, -40px); }
}
@-webkit-keyframes river-anima03{
  0%   { -webkit-transform:translate(0%, 0%); }
  100% { -webkit-transform:translate(0%, -40px); }
}

@-moz-keyframes river-anima03{
  0%   { -moz-transform:translate(0%, 0%); }
  100% { -moz-transform:translate(0%, -40px); }
}

/*PC*/
@media all and (min-width:768px) {}
/*SP*/
@media all and (max-width:767px) {}
/*======================================
footer-bottom
======================================*/
#footer-bottom{
	background: #FFF8DB;
}
#footer-bottom .flex-wrap{
	max-width: 1020px;
	width: 100%;
	margin: 0 auto -50px;
	position: relative;
	z-index: 3;
	padding: 0 20px;
}
#footer-bottom .flex-wrap .left{
	max-width: 328px;
	width: 100%;
	text-align: center;
	margin: 20px 0 0;
}
#footer-bottom .flex-wrap .left .logo img{
	width: 100%;
}
#footer-bottom .flex-wrap .left .footer-addr{
	margin: 30px 0 30px;
  font-size: 15px;
}
.copyright{
	font-weight: 500;
	color: #9ABC4D;
}

#footer-bottom .flex-wrap .right{
	max-width: 470px;
	width: 100%;
	text-align: center;
	margin: 20px 0 0;
}
#footer-bottom .flex-wrap .right .footer-tel{
	font-weight: 500;
	color: #9ABC4D;
}
#footer-bottom .flex-wrap .right .footer-tel a{
	color: #9ABC4D;
}
#footer-bottom .flex-wrap .right .tel-info{
	color: #9ABC4D;
	letter-spacing: 2px;
	margin: 10px 0 20px;
}
#footer-bottom .flex-wrap .right .about-contact{]
  line-height: 1.8;
}

.mountain{
	position: relative;
  z-index: 1;
}
.mountain img{
	width: 100%;
  vertical-align: bottom;
}

/*PC*/
@media all and (min-width:768px) {
	#footer-bottom{
		padding: 60px 0 0;
	}
	#footer-bottom .flex-wrap{
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		height: auto;
	}
	#footer-bottom .flex-wrap .line{
		width: 3px;
		background: #EBE4C7;
		display: block;
		min-height: 260px;
		height: 100%;
	}
	#footer-bottom .flex-wrap .left .logo img{
		max-width: 328px;
	}
	#footer-bottom .flex-wrap .right .footer-tel{
		font-size: 42px;
	}
	#footer-bottom .flex-wrap .right .tel-info{
		font-size: 18px;
	}
	.copyright{
		font-size: 11px;
	}
	.mountain img{
		margin: 30px 0 0;
	}
}
/*SP*/
@media all and (max-width:767px) {
	#footer-bottom{
		padding: 30px 0 0;
	}
	#footer-bottom .flex-wrap .left .logo img{
		max-width: 232px;
	}
	#footer-bottom .flex-wrap .right .footer-tel{
		font-size: 8.5vw;
	}
	#footer-bottom .flex-wrap .right .tel-info{
		font-size: 16px;
	}
	.copyright{
		font-size: 14px;
		margin: 30px 0 0;
	}
	.mountain img{
		margin: 40px 0 0;
	}
}
/*======================================
to top
======================================*/
#page-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-size: 14px;
  line-height: 1;
  z-index: 99;
}
/*PC*/
@media all and (min-width:768px) {}
/*SP*/
@media all and (max-width:767px) {}
/*======================================
header
======================================*/
/*PC*/
@media all and (min-width:768px) {}
/*SP*/
@media all and (max-width:767px) {}
/*======================================
header
======================================*/
/*PC*/
@media all and (min-width:768px) {}
/*SP*/
@media all and (max-width:767px) {}
