@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;400;500;700;900&display=swap');
* {
	box-sizing: border-box;
}
li {
	list-style: none;
}
/* フォント・文字サイズ指定
-------------------------------------------------------------*/
html {
	font-size: 10px;
}
body {
	font-family: "Noto Sans JP", "Noto Sans Japanese", 游ゴシック体, YuGothic, 游ゴシック, "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, sans-serif;
	font-weight: 500;
	font-style: normal;
	font-size: 1.6rem;
	color: #101010;
	line-height: 1.5;
	position: relative;
	background: url(../images/bg.png);
	background-attachment: fixed;
	/*background-size: 100%;
	background-size: 300%;*/
}
body.bg01 {
	background: url(../images/bg.png);
	background-attachment: fixed;
}
body.bg02 {
	background: url(../images/bg02.png);
	background-attachment: fixed;
}
body.bg03 {
	background: url(../images/bg03.png);
	background-attachment: fixed;
}
body.bg04 {
	background: url(../images/bg04.png);
	background-attachment: fixed;
}
body.bg05 {
	background: url(../images/bg.png);
	background-attachment: fixed;
}
@media screen and (min-width:768px) {
	/*body{min-width:943px;
	}*/
}
@media screen and (max-width: 767px) {
	body, body.bg01, body.bg02, body.bg03, body.bg04, body.bg05 {
		background-size: 10%;
	}
}
/*@media screen and  (max-width:750px) {
	:root {
		font-size: calc(100vw / 37);
	}
}*/
/*@media screen and (max-width: 767px) {
 :root {
  font-size: calc(100vw / 77);
 }
}*/
* .inner {
	position: relative;
	max-width: 1260px;
	padding: 0 30px;
	margin: 0 auto;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (max-width: 767px) {
	* .inner {
		padding: 0 30px;
	}
}
.clearfix::after {
	content: ".";
	display: block;
	height: 0;
	font-size: 0;
	clear: both;
	visibility: hidden;
}
img {
	max-width: 100%;
	width: 100%;
	max-width: max-content;
	vertical-align: bottom;
}
a {
	color: #222;
	text-decoration: none;
}
a:hover {
	transition: all .2s;
	opacity: .6;
}
a.underline {
	color: #58B1BD;
	text-decoration: underline;
}
a.underline:hover {
	text-decoration: none;
}
.header-top a:hover, .foot-sitemap a:hover {
	transition: all .2s;
	opacity: .4;
}
.only-pc {
	display: inline !important;
}
.only-pc.db {
	display: block !important;
}
.only-pc.df {
	display: flex !important;
}
.only-sp {
	display: none !important;
}
.only-sp.db {
	display: none !important;
}
.only-sp.df {
	display: none !important;
}
@media screen and (max-width: 767px) {
	.only-pc {
		display: none !important;
	}
	.only-pc.db {
		display: none !important;
	}
	.only-pc.df {
		display: none !important;
	}
	.only-sp {
		display: inline !important;
	}
	.only-sp.db {
		display: block !important;
	}
	.only-sp.df {
		display: flex !important;
	}
}
/*common style*/
.wsnw {
	white-space: nowrap;
}
.b {
	font-weight: bold;
}
.m {
	font-weight: 500;
}
.l {
	font-weight: 400;
}
.t-center {
	text-align: center !important;
}
.t-right {
	text-align: right !important;
}
.t-left {
	text-align: left !important;
}
@media screen and (max-width: 767px) {
	.t-left-sp {
		text-align: left !important;
	}
	.t-center-sp {
		text-align: center !important;
	}
	.t-left-sp {
		text-align: left !important;
	}
}
.c-gray {
	color: #383737 !important;
}
.c-y {
	color: #F1FA80 !important;
}
.c-pink {
	color: #C17398 !important;
}
.c-w {
	color: #fff !important;
}
.c-b {
	color: #D2DEE3 !important;
}
.c-r {
	color: #DD3C20;
}
.c-red {
	color: #E83828 !important;
}
.c-g {
	color: #666;
}
.c-green {
	color: #58B1BD;
}
.marker {
	background: -webkit-linear-gradient(transparent 95%, rgba(187, 3, 41, 1) 60%);
	background: linear-gradient(transparent 95%, rgba(187, 3, 41, 1) 60%);
	color: #BB0329;
}
.marker02 {
	background: -webkit-linear-gradient(transparent 52%, rgba(255, 245, 0, 0.5) 60%);
	background: linear-gradient(transparent 52%, rgba(255, 245, 0, 0.5) 60%);
}
.bg-blue {
	background-color: #eff9ff;
}
.bg-gray {
	background-color: #DFDFDF;
}
/*btn*/
.btn {}
.btn a {
	background: #fff;
	border-radius: 60px;
	border: 2px solid #707070;
	font-size: 1.4rem;
	font-weight: bold;
	display: block;
	padding: 10px;
	box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
	position: relative;
}
.btn.btnpiyo {
	overflow: hidden;
	padding-top: 30px;
	padding-bottom: 5px;
	padding: 30px 6px 3px 6px;
	margin-top: -30px;
}
.btn.btnpiyo a {
	background: #fff;
	border-radius: 60px;
	border: 2px solid #707070;
	font-size: 1.4rem;
	font-weight: bold;
	display: block;
	padding: 10px;
	padding-left: 50px;
	box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
	position: relative;
	transition: all .1s;
}
.btn.btnpiyo a:after {
	content: "";
	background: url(../images/cta.png) no-repeat;
	opacity: 0;
	width: 73px;
	height: 52px;
	position: absolute;
	bottom: -50px;
	transition: all .1s;
	right: 20px;
}
.started.ended .btn.btnpiyo.hov a {
	animation-name: fadeInpiyocol;
	animation-duration: 1.0s;
	animation-iteration-count: 1;
	opacity: 1;
	animation-fill-mode: forwards;
}
.started.ended .btn.btnpiyo.hov a:after {
	background: url(../images/cta.png) no-repeat;
	transition: all .1s;
	animation-name: fadeInpiyo;
	animation-duration: 1.0s;
	animation-iteration-count: 1;
	opacity: 1;
	animation-fill-mode: forwards;
	background-size: contain;
}
#contents03-02.started .btn.btnpiyo.hov a {
	animation-name: fadeInpiyocol;
	animation-duration: 1.0s;
	animation-iteration-count: 1;
	opacity: 1;
	animation-fill-mode: forwards;
}
#contents03-02.started .btn.btnpiyo.hov a:after {
	background: url(../images/cta.png) no-repeat;
	transition: all .1s;
	animation-name: fadeInpiyo;
	animation-duration: 1.5s;
	animation-iteration-count: 1;
	opacity: 1;
	animation-fill-mode: forwards;
	background-size: contain;
}
@media screen and (min-height: 850px) {
	.started .btn.btnpiyo.hov a {
		animation-name: fadeInpiyocol;
		animation-duration: 1.0s;
		animation-iteration-count: 1;
		opacity: 1;
		animation-fill-mode: forwards;
	}
	.started .btn.btnpiyo.hov a:after {
		background: url(../images/cta.png) no-repeat;
		transition: all .1s;
		animation-name: fadeInpiyo;
		animation-duration: 1.5s;
		animation-iteration-count: 1;
		opacity: 1;
		animation-fill-mode: forwards;
		background-size: contain;
	}
}
@keyframes fadeInpiyo {
	0% {
		opacity: 0;
		bottom: -50px;
	}
	80% {
		opacity: 0;
		bottom: -50px;
	}
	99% {
		opacity: 1;
		bottom: 0;
	}
	100% {
		opacity: 1;
		bottom: 0;
	}
}
@keyframes fadeInpiyocol {
	0% {
		background: #fff;
	}
	80% {
		background: #fff;
	}
	99% {
		background: #F1FA80;
	}
	100% {
		background: #F1FA80;
	}
}
.btn a:hover {
	background: #F1FA80;
	opacity: 1;
}
.btn.hanten a {
	background: #F1FA80;
	text-align: center;
	padding: 10px;
}
.btn.hanten a:hover {
	background: #fff;
}
.gnavi-btn a {
	background: #fff;
	border-radius: 60px;
	border: 1px solid #707070;
	text-align: center;
	font-size: 1.6rem;
	font-weight: bold;
	display: block;
	padding: 10px;
	max-width: 80%;
	width: 100%;
	margin: 20px auto 0;
	text-align: center;
}
.gnavi-btn a:hover {
	background: #fff;
	opacity: 1;
}
@media screen and (max-width: 767px) {}
/*margin*/
.pt0 {
	padding-top: 0 !important;
}
.mt0 {
	margin-top: 0 !important;
}
.mt10 {
	margin-top: 10px !important;
}
.mt15 {
	margin-top: 10px !important;
}
.mt20 {
	margin-top: 20px !important;
}
.mt30 {
	margin-top: 30px !important;
}
.mt40 {
	margin-top: 40px !important;
}
.mt50 {
	margin-top: 50px !important;
}
.mt60 {
	margin-top: 60px !important;
}
.mt70 {
	margin-top: 70px !important;
}
.mt80 {
	margin-top: 80px !important;
}
.mt100 {
	margin-top: 100px !important;
}
.mb0 {
	margin-bottom: 0px !important;
}
.mb10 {
	margin-bottom: 10px !important;
}
.mb20 {
	margin-bottom: 20px !important;
}
.mb30 {
	margin-bottom: 30px !important;
}
.mb40 {
	margin-bottom: 40px !important;
}
.mb50 {
	margin-bottom: 50px !important;
}
.mb60 {
	margin-bottom: 60px !important;
}
.mb70 {
	margin-bottom: 70px !important;
}
.mb80 {
	margin-bottom: 80px !important;
}
@media screen and (max-width: 767px) {
	.sp-mt0 {
		margin-top: 0px !important;
	}
	.sp-mt10 {
		margin-top: 10px !important;
	}
	.sp-mt20 {
		margin-top: 20px !important;
	}
	.sp-mt30 {
		margin-top: 30px !important;
	}
	.sp-mt40 {
		margin-top: 40px !important;
	}
	.sp-mt50 {
		margin-top: 50px !important;
	}
	.sp-mt60 {
		margin-top: 60px !important;
	}
	.sp-mt70 {
		margin-top: 70px !important;
	}
	.sp-mt80 {
		margin-top: 80px !important;
	}
	.sp-mb0 {
		margin-bottom: 0 !important;
	}
	.sp-mb10 {
		margin-bottom: 10px !important;
	}
	.sp-mb20 {
		margin-bottom: 20px !important;
	}
	.sp-mb30 {
		margin-bottom: 30px !important;
	}
	.sp-mb40 {
		margin-bottom: 40px !important;
	}
	.sp-mb50 {
		margin-bottom: 50px !important;
	}
	.sp-mb60 {
		margin-bottom: 60px !important;
	}
	.sp-mb70 {
		margin-bottom: 70px !important;
	}
	.sp-mb80 {
		margin-bottom: 80px !important;
	}
}
.is-hidden {
	display: none;
}
/* header 
-------------------------------------------------------------*/
#header nav .inner {
	padding: 0;
	max-width: 1100px;
}
header {
	width: 100%;
	background: #fff;
	position: fixed;
	z-index: 10;
}
#header {
	background: #fff;
	padding: 0;
}
#header .header-top {
	background: #fff;
	display: flex;
	flex-flow: row;
	align-items: center;
	padding: 10px 0;
	height: 106px;
	transition: all .6s;
}
#header .logo {
	/*margin: 20px 0 0 30px;*/
	margin-right: auto;
	/*max-width: 417px;*/
	width: 48%;
	display: flex;
	align-items: center;
	line-height: 1.2;
}
#header .logo a {
	padding: 25px 0;
	color: #1FCAE6;
	font-weight: bold;
}
#header .logo a:hover {
	opacity: .7;
}
#header .logo h1 {
	font-size: 1.2rem;
	font-weight: normal;
	margin-left: 2%;
	top: 3px;
	position: fixed;
	left: 20px;
	width: 375px;
	margin: auto;
	right: 0;
	z-index: 999998;
}
#header #navi-top {
	display: flex;
	align-items: center;
	font-weight: 500;
}
#header #navi-top li {
	background: url("../images/common/head_arrow.png") left 8px no-repeat;
	padding-left: 15px;
	margin-left: 25px;
	background-size: 7px;
}
#header #navi-top li.header-bannar {
	background: none;
	padding-left: 0;
}
#header #navi-top li.header-bannar img {
	max-width: 206px;
}
#header .nav_btn {
	width: 50px;
	height: 51px;
	top: 0;
	right: 0;
	cursor: pointer;
	position: absolute;
	z-index: 999999;
}
@media screen and (max-width: 940px) {
	#header #navi-top li {
		background: url(../images/common/head_arrow.png) left 6px no-repeat;
		padding-left: 10px;
		margin-left: 12px;
		font-size: 1.4rem;
		background-size: 7px;
	}
}
#header nav {
	background: #20A2CB;
}
#header #navi {
	/* justify-content: space-between; */
	/* display: flex; */
	/* flex-flow: row nowrap; */
	/* align-items: center; */
	font-weight: 500;
	display: table;
	width: 52%;
	max-width: 430px;
}
@media screen and (min-width: 767px) {
	#header #navi {
		font-size: 1.6rem;
	}
}
#header #navi li.gnavi {
	line-height: 100%;
	/* width: 12%; */
	text-align: center;
	display: table-cell;
}
#header #navi li.gnavi:last-child {
	margin: 0 0 0 5px;
}
#header #navi li.gnavi a {
	color: #333333;
	display: block;
	font-weight: bold;
}
@media screen and (min-width: 769px) {
	#header #navi li.gnavi a {
		padding: 29px 6px;
		position: relative;
	}
	#header #navi li.gnavi a:hover {
		opacity: 1;
	}
	/*#header #navi li.gnavi a::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  margin: auto;
  width: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: #fff;
  transition: all .2s;
 }*/
	#header #navi li.gnavi a:hover::after {
		width: 100%;
		transition: all .2s;
		opacity: 1;
	}
}
#header #navi li.gnavi a:hover {
	text-decoration: none;
}
/* 表示された時用のCSS */
.nav_open #header #navi {
	right: 0;
}
.nav_open .nav_bg {
	opacity: .8;
	visibility: visible;
}
.nav_open .hamburger_line1 {
	transform: rotate(45deg);
	top: 20px;
}
.nav_open .hamburger_line2 {
	width: 0;
	left: 50%;
}
.nav_open .hamburger_line3 {
	transform: rotate(-45deg);
	top: 20px;
}
.nav_bg {
	opacity: 0;
}
header {
	z-index: 999999;
	/*box-shadow: 0px -8px 12px 3px rgba(0, 0, 0, .5);*/
	min-height: 50px;
}
#header {
	width: 100%;
	max-width: 375px;
	position: fixed;
	left: 0;
	right: 0;
	margin: auto;
	/*height: 60px;
		z-index: 9999999;
		top: 0;
		left: 0;
		background: #fff;
		position: fixed;*/
}
#header .header-top {
	padding: 5px 0 5px 12px;
	height: auto;
}
#header .logo {
	width: 29%;
	width: 126px;
}
#header .logo img {
	width: 110px;
}
#header .logo a {
	padding: 5px 0;
}
#header #navi-top {
	font-size: 1.1rem;
	margin-right: 48px;
}
#header #navi-top li {
	background: url(../images/common/head_arrow.png) left center no-repeat;
	padding-left: 10px;
	margin-left: 10px;
	font-size: 1.1rem;
	background-size: 7px;
}
#header #navi {
	display: block;
}
#header #navi li.gnavi {
	display: block;
	text-align: center;
}
#header #navi li.gnavi:last-child {
	margin: 0;
}
#header #navi li.gnavi.header-bannar {
	border: none;
}
#header #navi li.gnavi a {
	font-weight: 700;
	color: #101010;
	display: block;
	padding: 20px 40px !important;
	background-size: 14px;
}
@media screen and (max-height: 900px) {
	#header #navi li.gnavi a {
		padding: 16px 40px !important;
	}
}
@media screen and (max-height: 666px) {
	#header #navi li.gnavi a {
		padding: 15px 40px !important;
	}
}
#header #navi li.gnavi.header-bannar a {
	padding: 15px 15px !important;
	background: none;
	text-align: center;
}
#header #navi li.gnavi.header-bannar img {
	max-width: 300px;
}
/* bager menu */
#header #navi {
	transition: all .6s;
	overflow-y: auto;
	padding-top: 70px;
	width: 100%;
	height: 100vh;
	z-index: 200;
	top: -100vh;
	/*right: -320px;*/
	background-color: #fff;
	position: fixed;
	left: 0;
	right: 0;
	opacity: 0;
	margin: auto;
	max-width: 375px;
	font-size: 1.6rem;
	padding-bottom: 50px;
	text-align: center;
}
.otoiawase a {
	text-decoration: underline;
}
#header .nav_c-b {
	width: 50px;
	height: 51px;
	z-index: 300;
	top: 0;
	right: 0;
	cursor: pointer;
	position: absolute;
}
.hamburger_line {
	transition: all .6s;
	width: 20px;
	height: 2px;
	left: 15px;
	background-color: #98A6B5;
	position: absolute;
	border-radius: 100px;
}
.hamburger_line1 {
	top: 16px;
}
.hamburger_line2 {
	top: 24px;
}
.hamburger_line3 {
	top: 31px;
}
.nav_bg {
	opacity: 0;
	transition: all .6s;
	width: 100vw;
	height: 100vh;
	z-index: 100;
	top: 0;
	left: 0;
	visibility: hidden;
	background-color: #000;
	cursor: pointer;
	position: fixed;
}
/* 表示された時用のCSS */
.nav_open #header #navi {
	background: #F1FA80;
	top: 0;
	opacity: 1;
	overflow-y: auto;
}
.nav_open .nav_bg {
	margin-top: 100px;
	opacity: .8;
	visibility: visible;
	display: none;
}
.nav_open .hamburger_line1 {
	transform: rotate(45deg);
	top: 25px;
}
.nav_open .hamburger_line2 {
	width: 0;
	left: 50%;
}
.nav_open .hamburger_line3 {
	transform: rotate(-45deg);
	top: 25px;
}
/*scroll*/
#header.fixed #navi li.gnavi a {
	padding: 18px 6px;
	transition: all .6s;
}
@media screen and (max-width: 767px) {
	footer {
		padding: 8% 0 0;
	}
	footer .inner {
		padding: 0
	}
	copy {
		margin-top: 0px;
	}
	.foot-logo {
		width: 134px;
	}
}
/*content*/
#contents {
	overflow: hidden;
	padding-top: 75px;
}
.lh15 {
	line-height: 1.5 !important;
}
.lh18 {
	line-height: 1.8 !important;
}
.fs46 {
	font-size: 4.6rem !important;
}
.fs40 {
	font-size: 4.0rem !important;
}
.fs36 {
	font-size: 3.6rem !important;
}
.fs35 {
	font-size: 3.5rem !important;
}
.fs34 {
	font-size: 3.4rem !important;
}
.fs30 {
	font-size: 3.0rem !important;
}
.fs28 {
	font-size: 2.8rem !important;
}
.fs26 {
	font-size: 2.6rem !important;
}
.fs25 {
	font-size: 2.5rem !important;
}
.fs24 {
	font-size: 2.4rem !important;
}
.fs23 {
	font-size: 2.3rem !important;
}
.fs22 {
	font-size: 2.2rem !important;
}
.fs21 {
	font-size: 2.0rem !important;
}
.fs20 {
	font-size: 2.0rem !important;
}
.fs19 {
	font-size: 1.8rem !important;
}
.fs18 {
	font-size: 1.8rem !important;
}
.fs17 {
	font-size: 1.7rem !important;
}
.fs16 {
	font-size: 1.6rem !important;
}
.fs15 {
	font-size: 1.5rem !important;
}
.fs14 {
	font-size: 1.4rem !important;
}
.fs13 {
	font-size: 1.3rem !important;
}
.fs12 {
	font-size: 1.2rem !important;
}
.fs11 {
	font-size: 1.1rem !important;
}
.fs10 {
	font-size: 1.0rem !important;
}
@media screen and (max-width: 767px) {
	#contents {
		padding-top: 58px;
	}
	.sp-fs28 {
		font-size: 2.8rem !important;
	}
	.sp-fs26 {
		font-size: 2.6rem !important;
	}
	.sp-fs24 {
		font-size: 2.4rem !important;
	}
	.sp-fs23 {
		font-size: 2.3rem !important;
	}
	.sp-fs22 {
		font-size: 2.2rem !important;
	}
	.sp-fs21 {
		font-size: 2.0rem !important;
	}
	.sp-fs20 {
		font-size: 2.0rem !important;
	}
	.sp-fs19 {
		font-size: 1.8rem !important;
	}
	.sp-fs18 {
		font-size: 1.8rem !important;
	}
	.sp-fs17 {
		font-size: 1.7rem !important;
	}
	.sp-fs16 {
		font-size: 1.6rem !important;
	}
	.sp-fs15 {
		font-size: 1.5rem !important;
	}
	.sp-fs14 {
		font-size: 1.4rem !important;
	}
	.sp-fs13 {
		font-size: 1.3rem !important;
	}
	.sp-fs12 {
		font-size: 1.2rem !important;
	}
	.sp-fs11 {
		font-size: 1.1rem !important;
	}
	.sp-fs10 {
		font-size: 1.0rem !important;
	}
}