@import url(https://cdn.jsdelivr.net/npm/yakuhanjp@3.0.0/dist/css/yakuhanjp.min.css);
@import url(https://cdn.jsdelivr.net/npm/yakuhanjp@3.0.0/dist/css/yakuhanmp.min.css);
@import url(https://fonts.googleapis.com/earlyaccess/notosansjapanese.css);

html{
	overflow-x: hidden;
}
body{
	margin: 0;
	padding: 0;
	font-size: 15px;
  	font-family: YakuHanMP,'游明朝',YuMincho,'ヒラギノ明朝 ProN W3','Hiragino Mincho ProN', YuGothic, 'Noto Sans Japanese', 游ゴシック, 'Yu Gothic Medium', 'Hiragino Sans', 'メイリオ', Meiryo, sans-serif;
	font-weight:400;
	line-height: 1.75;
	color: #333;
	position: relative;
}
a img {
	border: none;
}
img{
	max-width: 100%;
	height: auto;
}
a,
a:hover,
a:active{
	text-decoration:none;
}
a img{
	transition: all .5s;
}
a img:hover{
	opacity: 0.8;
}
img[src$=".svg"] {
    width: 100%;
}
.pc{
	display:block !important;
}
.sp{
	display:none !important;
}
@media screen and (max-width: 640px) {
	.pc{
		display:none !important;
	}
	.sp{
		display:block !important;
	}
}
/*-----------------------------------------
** navigation
-----------------------------------------*/
.menu{
	display: none;
}
.navi {
	background-color:rgba(0,53,67,1.0);
	position:fixed;
	top:0;
	left:0;
	right: 0;
	width: 100%;
	padding: 0;
	z-index:9999;
	text-align: center;
	margin: 0 auto;
	min-width: 1000px;
}
.navi .logo {
	display: none;
}
.navi ul {
	width: 100%;
	padding: 0 5px;
	box-sizing: border-box;
	margin: 0 auto;
	position: relative;
	letter-spacing: -.4em;
}
.navi ul > img {
	margin-bottom: 30px;
}
.navi ul li {
	color: #fff;
	margin:20px auto 10px;
	border-left:solid 1px #fff;
	display: inline-block;
	font-family: 'Josefin Sans', YakuHanJP, 'Noto Sans Japanese', 游ゴシック, 'Yu Gothic Medium', 'Hiragino Sans', 'メイリオ', Meiryo, sans-serif;
	font-variant-ligatures:none;
	position: relative;
	transition: all 1s;
	letter-spacing: normal;
}
.navi > ul > li:nth-last-child(2) {
	border-right:solid 1px #fff;
}
.navi ul li a,
.navi ul li p{
	color:#fff;
	display:block;
	overflow:hidden;
	padding: 0 20px;
	position:relative;
	text-decoration:none;
	z-index:1;
	font-size: 14px;
	letter-spacing: .1em;
	cursor: pointer;
}
.navi ul li p.disable{
	color:rgba(255,255,255,0.3);
	cursor:auto;
}
.navi ul li p.disable{
	color:rgba(255,255,255,0.3);
	cursor:auto;
}

.navi ul li > ul {
	background-color:rgba(0,53,67,1.0);
	letter-spacing: -.4em;
	padding: 0;
	margin: 0;
	position: absolute;
	left: 0;
	padding-top: 10px;
}
.navi ul li > ul li {
	font-size:12px;
	letter-spacing: .2em;
	border-top: solid 1px #fff;
	border-left: none;
	width: 90%;
	margin: 0 auto;
	position: relative;
	display: block;
}
.navi ul li > ul li a{
	height: 3em;
	line-height: 3em;
}

.navi ul li.sns {
	color:#fff;
	margin: auto;
	border:none;
	position: absolute;
	height: 30px;
	width: 30px;
	right: 20px;
	top: 0;
	bottom: 0;
}
.navi ul li.sns img {
}
.navi ul li.sns a {
	padding: 0;
}
.navi ul li.sns:hover {
	color:#fff;
	background: none;
}
.navi ul li.sns:hover a {
	color:#fff;
	background: none;
}
.navi ul li span.new {
	position: absolute;
	top: -10px;
	left: -10px;
	background: #ffdd45;
	color: #000;
	font-size: 11px;
	border-radius: 50%;
	padding: 5px;
	z-index: 99;
	font-weight: 200;
}
.navi .logo {
	width: 50%;
	display: block;
	margin: 5% auto;
}

@media screen and (min-width: 769px) {
	.navi .logo {
		display: none;
	}
	.navi ul li span{
		position: absolute;
		left: 0;
		right: 0;
		transition: all .5s;
		top: 0;
		bottom: 0;
		margin: auto;
	}
	.navi > ul > li > a span.jp,
	.navi > ul > li > p span.jp,
	.navi > ul > li > ul li a span.jp{
		font-family: YakuHanJP, 'Noto Sans Japanese', 游ゴシック, 'Yu Gothic Medium', 'Hiragino Sans', 'メイリオ', Meiryo, sans-serif;
		opacity: 0;
		font-size: 12px;
	}
	.navi > ul > li > a span.en,
	.navi > ul > li > p span.en,
	.navi > ul > li > ul li a span.en{
		font-family: 'Josefin Sans', cursive;
		font-weight: 200;
		position: relative;
	}
	.navi > ul > li > a span.en,
	.navi > ul > li > p span.en{
		position: relative;
	}
	.navi > ul > li > a:hover > span.jp,
	.navi > ul > li > p:hover > span.jp,
	.navi > ul > li > ul li:hover a span.jp{
		opacity: 1;
	}
	.navi > ul > li > a:hover > span.en,
	.navi > ul > li > p:hover > span.en,
	.navi > ul > li > ul li:hover a span.en{
		opacity: 0;
	}
	.navi ul li p.disable:hover > span.jp{
		opacity: 0;
	}
	.navi ul li p.disable:hover > span.en{
		opacity: 1;
	}
}
@media screen and (max-width: 768px) {
	.menu {
		width:27px;
		height:35px;
		top:20px;
		left:20px;
		position:fixed;
		cursor:pointer;
		z-index:10000;
		display: block;
	}
	.menu1 {
		width:27px;
		height:4px;
		background-color:#fff;
		position:absolute
	}
	.menu2 {
		width:27px;
		height:4px;
		background-color:#fff;
		position:absolute;
		top:8px
	}
	.menu3 {
		width:27px;
		height:4px;
		background-color:#fff;
		position:absolute;
		top:16px
	}
	.menu1,.menu2,.menu3 {
		transition:all .5s ease-out;
		-o-transition:all .5s ease-out;
		opera-moz-transition:all .5s ease-out;
		firefox-webkit-transition:all .5s ease-out;
		chromesafari-ms-transition:all .5s ease-out;
		border-radius: 2px;
		box-shadow: 0 0 3px 2px rgba(0,0,0,0.3);
	}
	.menuclick1 {
		top:8px;
		-moz-transform:rotate(405deg);
		-webkit-transform:rotate(405deg);
		-o-transform:rotate(405deg);
		-ms-transform:rotate(405deg);
		transform:rotate(405deg)
	}
	.menuclick2 {
		opacity:0
	}
	.menuclick3 {
		top:8px;
		-moz-transform:rotate(-405deg);
		-webkit-transform:rotate(-405deg);
		-o-transform:rotate(-405deg);
		-ms-transform:rotate(-405deg);
		transform:rotate(-405deg)
	}
	.menu > p {
		top:30px;
		position:absolute;
		z-index:999;
		color:#fff;
		font-size:10px;
		font-weight:500
	}
	.navi {
		width: 100%;
		background-color:rgba(0,53,67,0.8);
		top:0;
		left: 0 !important;
		right: 0 !important;
		display: none;
		height: auto;
		min-width: 100%;
	}
	.navi .pc{
		display: none !important;
	}
	.navi .sp{
		display: block!important;
	}
	.navi ul {
		width: 80%;
		margin-top: 5%;
		padding-bottom: 30px;
	}
	.navi ul li {
		width: 100%;
		border-left: none;
		border-top: solid 1px #fff;
		margin: 0;
		padding: 0;
		display: block;
		font-size: 14px;
		font-family: 游ゴシック, 'Yu Gothic Medium', 'Hiragino Sans', 'メイリオ', Meiryo, sans-serif;
	}
	.navi ul li:nth-last-child(2) {
		border-bottom: solid 1px #fff;
		border-right: none;
	}
	.navi ul li a,
	.navi ul li p{
		font-size: 12px;
		padding: 10px 0;
	}
	.navi ul li.ac > a{
		pointer-events: none;
	}
	.navi ul li span{
		opacity: 1 !important;
	}
	.navi ul li span.jp,
	.navi ul li:hover span.jp {
		display: inline-block;
		position: relative;
		font-size: 14px;
	}
	.navi ul li span.en {
		display: none;
	}
	.navi ul li.sns{
		position: relative;
		right: 0;
		margin: 5% auto 0;
	}
	.navi ul li.ac > a:after,
	.navi ul li.ac > p:after{
		content: "";
		position: absolute;
		right: 15px;
		top: 0;
		bottom: 0;
		margin: auto;
		width: 15px;
		height: 8px;
		background: url(../img/navi-arrow.png) no-repeat;
		background-size: cover;
		transition: all .5s;
	}
	.navi ul li.ac.active > a:after,
	.navi ul li.ac.active > p:after{
	  transform: rotate(-180deg);
	}
	.navi ul li > ul {
		position: relative;
		width: 100%;
		background: none;
		padding: 0;
	}
	.navi ul li > ul li {
		background: rgba(255,255,255,0.2);
		font-size:12px;
		letter-spacing: .2em;
		width: 100%;
	}
	.navi ul li > ul li a{
		height: auto;
		line-height: normal;
	}
}
/***********************************************************
 * contents
************************************************************/
#contents {
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.container{
  	position:relative;
  	width:100%;
  	margin:0 auto;
	background: url(../images/cont-bg.gif) no-repeat top center;
	background-size: 100% auto;
	background-attachment: fixed;
}

section{
	position:relative;
	padding: 100px 0;
}
.__inner{
	max-width: 1024px;
	margin: 0 auto;
	position: relative;
	padding: 0;
	box-sizing: border-box;
	text-align: justify;
}

.container h2{
	font-family: "Patrick Hand", cursive, '游明朝', YuMincho, 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', 'HG明朝E', 'メイリオ', Meiryo, sans-serif;
	color: #019e96;
	font-size: 50px;
	letter-spacing: .3em;
	line-height: 1;
	text-align: center;
}
h3{
	font-size: 24px;
	font-weight: 600;
}
*:before,
*:after{
	z-index: 0;
}
@media screen and (max-width: 640px) {
	.container{
		background: none;
	}
	.container:before{
		content: "";
		position: fixed;
		background: url(../images/cont-bg.gif) no-repeat top center;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		z-index: -99;
		background-size: 100% auto;
	}
	.container h2{
		font-size: 28px;
	}
}
/***********************************************************
 * footer
************************************************************/
footer{
	padding: 0;
	font-family: YakuHanJP, 'Noto Sans Japanese', 游ゴシック, 'Yu Gothic Medium', 'Hiragino Sans', 'メイリオ', Meiryo, sans-serif;
}
footer p.copyright{
	font-size: 12px;
	color: #333;
	font-weight: 400;
	background: #fff;
	height: 2em;
	line-height: 2;
	padding: 0 10px;
}
.policy{
	background-color: #fff;
	color: #000;
	font-size: 8px;
	}
	.policy a{
		color: #000;
	text-decoration: none;
	}
	.is-sp{
	display: none;
	}
@media screen and (max-width: 640px) {
	footer p.copyright{
		font-size: 10px;
	}
.policy{
line-height: 0.8rem;
}
.is-sp{
display: initial;
}
}


/****loading****/
#loading {
	width: 100%;
	height: 100%;
	background: #fff;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999;
}

.spinner {
  width: 40px;
  height: 40px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
  -webkit-animation: sk-rotate 2.0s infinite linear;
  animation: sk-rotate 2.0s infinite linear;
}

.dot1, .dot2 {
  width: 60%;
  height: 60%;
  display: inline-block;
  position: absolute;
  top: 0;
  background-color: #019e96;
  border-radius: 100%;

  -webkit-animation: sk-bounce 2.0s infinite ease-in-out;
  animation: sk-bounce 2.0s infinite ease-in-out;
}

.dot2 {
  top: auto;
  bottom: 0;
  -webkit-animation-delay: -1.0s;
  animation-delay: -1.0s;
}

@-webkit-keyframes sk-rotate { 100% { -webkit-transform: rotate(360deg) }}
@keyframes sk-rotate { 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg) }}

@-webkit-keyframes sk-bounce {
  0%, 100% { -webkit-transform: scale(0.0) }
  50% { -webkit-transform: scale(1.0) }
}

@keyframes sk-bounce {
  0%, 100% {
    transform: scale(0.0);
    -webkit-transform: scale(0.0);
  } 50% {
    transform: scale(1.0);
    -webkit-transform: scale(1.0);
  }
}

/*******************************************************************
 * pageTop
 *******************************************************************/
#pageTop {
	width: 140px;
	height: 89px;
	color: #000;
	position: fixed;
	bottom: 0;
	right: 25px;
	z-index: 1000;
	cursor: pointer;
	transition: transform .5s;
}
#pageTop:hover {
	transform : translate(0, 10px);
}
@media screen and (max-width: 640px) {
	#pageTop {
		width: 90px;
		height: 55px;
	}
}
