img {
	max-width: 100%;
	vertical-align: bottom;
}
@media screen and (max-width: 768px) {
	img[src$="_pc.png"], img[src$="_pc.jpg"] {
		display: none !important;
	}
}
@media screen and (min-width: 769px) {
	img[src$="_sp.png"], img[src$="_sp.jpg"] {
		display: none !important;
	}
}
a {
	text-decoration: none;
	color: inherit;
}
h1, h2, h3, h4, h5, p, dl, dt, dd, ul, ol, li, figure {
	margin: 0;
	padding: 0;
}
ul, ol {
	list-style: none;
}
@media screen and (max-width: 768px) {
	.pc_only {
		display: none !important;
	}
}
@media screen and (min-width: 769px) {
	.sp_only {
		display: none !important;
	}
}
* {
	box-sizing: border-box;
}
*::before, *::after {
	box-sizing: border-box;
}
html {
	font-size: 0.733vw;
	font-family: "Zen Old Mincho", serif;
	font-feature-settings: "palt";
}
@media screen and (min-width: 769px) {
	html {
		font-size: 10px;
	}
}
@media screen and (min-width: 769px) and (max-width: 1100px) {
	html {
		font-size: 0.91vw;
	}
}
@media screen and (max-width: 768px) {
	html {
		font-size: 1.334vw;
	}
}
@media only screen and (max-device-width: 1024px) and (orientation: landscape) {
	html {
		font-size: 0.834vw;
	}
}
body {
	margin: 0;
	color: #282828;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
body.is-fixed {
	width: 100%;
	height: 100%;
	position: fixed;
}
ruby {
	display: ruby;
	position: relative;
}
ruby > rt {
	display: ruby-text;
	letter-spacing: -0.06em;
	line-height: 1;
	font-weight: 500;
	ruby-align: center;
	text-align: center;
	transform-origin: center bottom;
}
@media screen and (min-width: 769px) {
	ruby > rt {
		margin: 0 -0.5em;
		font-size: 1rem;
		transform: translate(-0.5em, 0) scale(0.9);
	}
	@-moz-document url-prefix() {
		ruby > rt {
			margin-top: 0.5em;
			margin-bottom: -0.5em;
		}
	}
	ruby > rt _::-webkit-full-page-media, ruby > rt _:future, :root ruby > rt {
		transform: translate(-0.5em, 0.3em) scale(0.9);
	}
}
  @media screen and (max-width: 768px) {
	ruby > rt {
	  margin: 0 -0.5em;
	  letter-spacing: -0.08em;
	  font-size: 2rem;
	  transform: translate(-0.5em, 0) scale(0.9);
	}
	@-moz-document url-prefix() {
	  ruby > rt {
		margin-top: 0.2em;
		margin-bottom: -0.6em;
	  }
	}
	ruby > rt _::-webkit-full-page-media, ruby > rt _:future, :root ruby > rt {
	  transform: translate(-0.5em, 0.5em) scale(0.9);
	}
  }
  
  @keyframes UpAnime {
	from {
	  opacity: 1;
	  transform: translateY(0);
	  background-color: #fff;
	}
	to {
	  opacity: 0;
	  transform: translateY(-100px);
	  background-color: transparent;
	}
  }
  @keyframes DownAnime {
	from {
	  opacity: 0;
	  transform: translateY(-100px);
	  background-color: transparent;
	}
	to {
	  opacity: 1;
	  transform: translateY(0);
	  background-color: #fff;
	}
  }
  .header_outer {
	margin: 0 auto;
	position: fixed;
	width: 100%;
	z-index: 9000;
  }
  @media screen and (max-width: 768px) {
	.header_outer {
	  position: fixed;
	}
  }
  .header_outer.UpMove {
	animation: UpAnime 0.8s forwards;
  }
  .header_outer.DownMove {
	animation: DownAnime 0.5s forwards;
  }
  .header_outer.DownMove #logo {
	fill: #646464;
  }
  .header_inner {
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
  }
  @media screen and (min-width: 769px) {
	.header_inner {
	  max-width: 1366rem;
	  height: 4.5rem;
	  padding: 0 5rem 0 4.9rem;
	}
  }
  @media screen and (max-width: 768px) {
	.header_inner {
	  align-items: center;
	  height: 11.8rem;
	  padding: 0 3.8rem;
	}
  }
  .header_logo {
	display: block;
	position: relative;
	flex-shrink: 0;
  }
  @media screen and (min-width: 769px) {
	.header_logo {
	  width: 17rem;
	  margin-top: 1rem;
	  z-index: 11;
	}
  }
  @media screen and (max-width: 768px) {
	.header_logo {
	  width: 24.6rem;
	}
  }
  .header_logo svg {
	width: 100%;
  }
  .header_logo:hover {
	opacity: 0.5;
  }
  
  #logo {
	fill: #fff;
  }
  
  .nav_outer {
	width: 100%;
	left: 0;
	right: 0;
	margin: 0 auto;
	z-index: 10;
  }
  @media screen and (min-width: 769px) {
	.nav_outer {
	  position: absolute;
	  max-width: 2000px;
	}
  }
  .nav_outer.is-fixed {
	top: 0;
  }
  @media screen and (min-width: 769px) {
	.nav_outer.is-fixed {
	  position: fixed;
	  color: #646464;
	}
  }
  @media screen and (min-width: 769px) {
	.nav_outer.is-fixed .nav_inner {
	  background: none;
	}
  }
  .nav_inner {
	display: flex;
	align-items: center;
	position: relative;
	margin: 0 auto;
  }
  @media screen and (min-width: 769px) {
	.nav_inner {
	  justify-content: space-between;
	  max-width: 2000px;
	  height: 4.5rem;
	  padding: 0 5rem;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_inner {
	  justify-content: flex-end;
	  height: 11rem;
	  padding: 0 3rem;
	}
  }
  @media screen and (min-width: 769px) {
	.nav_menu {
	  margin-left: auto;
	  line-height: 1em;
	  font-size: 1.6rem;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu {
	  order: 10;
	  height: 11rem;
	  margin-left: 3rem;
	}
  }
  .nav_menu_switch {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	position: relative;
	height: 100%;
	letter-spacing: 0.08em;
	line-height: 1;
	z-index: 100;
	font-weight: 500;
	cursor: pointer;
	pointer-events: auto;
  }
  @media screen and (min-width: 769px) {
	.nav_menu_switch {
	  display: none;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_switch {
	  display: block;
	  background-image: url(../img/nav_menu_switch_sp.png);
	  width: 4.2rem;
	  font-size: 0cm;
	}
	.header_outer.DownMove .nav_menu_switch {
	  background-image: url(../img/nav_menu_switch_sp_active.png);
	}
  }
  .nav_menu_switch::before, .nav_menu_switch::after {
	content: "";
	position: absolute;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	left: 0;
	right: 0;
	top: 50%;
	transition: transform 100ms linear 0ms;
  }
  @media screen and (max-width: 768px) {
	.nav_menu_switch::before, .nav_menu_switch::after {
	  background-image: url(../img/nav_menu_switch_sp.png);
	  height: 0.4rem;
	}
	.header_outer.DownMove .nav_menu_switch::before, .header_outer.DownMove .nav_menu_switch::after {
	  background-image: url(../img/nav_menu_switch_sp_active.png);
	}
  }
  .nav_menu_switch::before {
	transform-origin: left top;
  }
  @media screen and (max-width: 768px) {
	.nav_menu_switch::before {
	  transform: translate(0, -1.7rem);
	}
  }
  .nav_menu_switch::after {
	transform-origin: left bottom;
  }
  @media screen and (max-width: 768px) {
	.nav_menu_switch::after {
	  transform: translate(0, 1.4rem);
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_switch > span {
	  display: none;
	}
  }
  .nav_menu_switch.is-active {
	background: none;
  }
  @media screen and (max-width: 768px) {
	.nav_menu_switch.is-active::before {
	  transform: translate(0.7rem, -1.6rem) rotateZ(45deg);
	  background-image: url(../img/nav_menu_switch_sp_active.png);
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_switch.is-active::after {
	  transform: translate(0.7rem, 1.3rem) rotateZ(-45deg);
	  background-image: url(../img/nav_menu_switch_sp_active.png);
	}
  }
  @media screen and (min-width: 769px) {
	.nav_menu_list {
	  display: flex !important;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_list {
	  display: none;
	  position: fixed;
	  left: 0;
	  top: 0;
	  width: 100%;
	  height: 100svh;
	  padding: 12rem 0;
	  font-size: 4rem;
	  background: url(../img/list_nav.jpg) no-repeat 0 0;
	  background-size: cover;
	  overflow: auto;
	}
	.nav_menu_list .nav_logo {
	  width: 26.5rem;
	  margin: 0 auto 8.5rem;
	}
  }
  .nav_menu_list > li {
	display: block;
  }
  @media screen and (max-width: 768px) {
	.nav_menu_list > li {
	  color: #282828;
	}
  }
  @media screen and (min-width: 769px) {
	.nav_menu_list > li + li {
	  margin-left: 1em;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_list > li + li {
	  margin-top: 5rem;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_list > li.member {
	  position: relative;
	  margin-top: 6.5rem;
	  padding-top: 5rem;
	}
	.nav_menu_list > li.member::before {
	  content: "";
	  display: block;
	  position: absolute;
	  top: 0;
	  left: 50%;
	  transform: translateX(-50%);
	  width: 57.6rem;
	  height: 1px;
	  background-color: #646464;
	}
  }
  @media screen and (min-width: 769px) {
	.nav_menu_list > li a {
	  color: #fff;
	}
	.header_outer.DownMove .nav_menu_list > li a {
	  color: #646464;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_list > li a {
	  color: #646464;
	}
  }
  .nav_menu_link {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
  }
  @media screen and (min-width: 769px) {
	.nav_menu_link {
	  padding: 0 0.2rem;
	  font-size: 1.2rem;
	  letter-spacing: 0.02em;
	}
	.nav_menu_link::after {
	  content: "";
	  position: absolute;
	  border-bottom: 1px solid;
	  left: -0.187em;
	  right: -0.187em;
	  bottom: 0;
	  transition: transform 120ms ease 0ms;
	  transform: scale(0, 1);
	  pointer-events: none;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_link {
	  font-size: 4rem;
	}
  }
  .nav_menu_link:hover::after {
	transform: scale(1, 1);
  }
  @media screen and (max-width: 768px) {
	.nav_menu_link:hover > i {
	  width: 3.025em;
	}
  }
  .nav_menu_link:not([href]) {
	opacity: 0.5;
	pointer-events: none;
  }
  .nav_menu_link:not([href])::before, .nav_menu_link:not([href]) > i {
	display: none;
  }
  .nav_menu_link:not([href])::after {
	content: "COMING SOON";
	display: block;
	text-align: center;
  }
  @media screen and (min-width: 769px) {
	.nav_menu_link:not([href])::after {
	  border-bottom: none;
	  left: -5em;
	  right: -5em;
	  bottom: -0.325em;
	  line-height: 1;
	  font-size: 2rem;
	  font-weight: 400;
	  transition: none;
	  transform: scale(0.5);
	  transform-origin: center bottom;
	  white-space: nowrap;
	}
  }
  @media screen and (min-width: 769px) and (max-width: 1100px) {
	.nav_menu_link:not([href])::after {
	  transform-origin: center center;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_menu_link:not([href])::after {
	  margin-top: 1.2rem;
	  font-size: 0.786em;
	}
  }
  .nav_logo {
	display: block;
  }
  @media screen and (min-width: 769px) {
	.nav_logo {
	  width: 12rem;
	  margin-left: 6rem;
	}
  }
  @media screen and (max-width: 768px) {
	.nav_logo {
	  order: -10;
	  width: 14.8rem;
	}
  }
  .nav_logo:hover {
	opacity: 0.5;
  }
  
  .footer_outer {
	position: relative;
	background: #323232;
	margin: 0 auto;
	z-index: 5;
  }
  .footer_inner {
	display: flex;
	justify-content: center;
	margin: 0 auto;
  }
  @media screen and (min-width: 769px) {
	.footer_inner {
	  padding: 4.75rem 15rem;
	}
  }
  @media screen and (max-width: 768px) {
	.footer_inner {
	  flex-direction: column;
	  align-items: center;
	  padding: 5rem 0 5rem;
	}
  }
  .footer_copylight {
	line-height: 1;
	color: #fff;
	text-align: center;
  }
  @media screen and (min-width: 769px) {
	.footer_copylight {
	  font-size: 2rem;
	}
  }
  @media screen and (max-width: 768px) {
	.footer_copylight {
	  font-size: 2.2rem;
	}
  }
  
  .btn01 {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	background-color: #323232;
	color: #fff;
  }
  @media screen and (min-width: 769px) {
	.btn01 {
	  padding: 0.688em 4.375em;
	  line-height: 1.879em;
	  font-size: 3.3rem;
	}
  }
  @media screen and (max-width: 768px) {
	.btn01 {
	  min-width: 21.334em;
	  min-height: 4.584em;
	  padding: 0.625em 4.584em;
	  line-height: 1.667em;
	  font-size: 2.4rem;
	}
  }
  .btn01 > i {
	display: block;
	position: absolute;
	width: 1.625em;
	height: 0.625em;
	right: 1.375em;
	transition: width 120ms ease-in 0ms;
	overflow: hidden;
  }
  .btn01 > i > svg {
	position: absolute;
	width: 2.313em;
	right: 0;
	top: 0;
	bottom: 0;
  }
  .btn01:hover > i {
	width: 2.313em;
  }
  .btn01.refer {
	transition: none;
  }
  .btn01.refer::before {
	content: "";
	position: absolute;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	width: 1.625em;
	height: 1.625em;
	right: 2.5em;
	bottom: 1.375em;
	opacity: 0;
	pointer-events: none;
  }
  .btn01.refer::after {
	content: "";
	position: absolute;
	background-image: url(../img/ico_refer01.png);
	background-position: right bottom;
	background-repeat: no-repeat;
	background-size: contain;
	width: 5em;
	height: 4.625em;
	right: -0.625em;
	bottom: -1.25em;
	transition: 120ms ease-in 0ms;
	pointer-events: none;
  }
  .btn01.refer:hover {
	border-width: 0.05rem;
  }
  .btn01.refer:hover::before {
	opacity: 1;
	transition: opacity 120ms linear 30ms;
  }
  .btn01.refer:hover::after {
	width: 6.125em;
	height: 5.625em;
	right: -1.375em;
	bottom: -1.875em;
  }
  .btn01.col01 {
	background: #007537;
	color: #fff;
  }
  .btn01.col01 svg {
	fill: #fff;
  }
  .btn01.col01:hover {
	background: #fff;
	border-color: #fff;
	color: #007537;
  }
  .btn01.col01:hover svg {
	fill: #007537;
  }
  .btn01.col01.comingsoon {
	color: #80ba9b;
  }
  .btn01.col02 {
	background: transparent;
	color: #282828;
  }
  .btn01.col02 svg {
	fill: #282828;
  }
  .btn01.col02:hover {
	background: #282828;
	border-color: #282828;
	color: #fff;
  }
  .btn01.col02:hover svg {
	fill: #fff;
  }
  .btn01.col03 {
	background: #fff;
	color: #007537;
  }
  .btn01.col03 svg {
	fill: #007537;
  }
  .btn01.col03.refer::before {
	background-image: url(../img/ico_refer02_g.png);
  }
  .btn01.col03:hover {
	background: #007537;
	border-color: #007537;
	color: #fff;
  }
  .btn01.col03:hover svg {
	fill: #fff;
  }
  .btn01.col03.comingsoon {
	background: #fff;
	color: #939393;
  }
  .btn01.comingsoon {
	pointer-events: none;
  }
  .btn01.comingsoon::before, .btn01.comingsoon::after, .btn01.comingsoon > i {
	display: none;
  }
  .btn01.end {
	pointer-events: none;
	background-color: #494949;
	border: 0;
  }
  .btn01.end span {
	transform: translateY(0) !important;
  }
  @media screen and (min-width: 769px) {
	.btn01.end01 {
	  padding-right: 3.375em;
	  padding-left: 3.375em;
	}
  }
  .btn01.end02 {
	width: 132px;
	min-height: auto;
	min-width: auto !important;
	padding: 0.3rem 0;
	font-size: 1.2rem;
  }
  @media screen and (max-width: 768px) {
	.btn01.end02 {
	  width: 24.7rem;
	  font-size: 2.2rem;
	}
  }
  .btn01.mm {
	min-width: auto;
  }
  @media screen and (min-width: 769px) {
	.btn01.mm {
	  min-width: 15.375em;
	}
  }
  @media screen and (max-width: 768px) {
	.btn01.mm {
	  min-width: 19.667em;
	}
  }
  .btn01.mm2 {
	min-width: auto;
  }
  @media screen and (min-width: 769px) {
	.btn01.mm2 {
	  min-width: 16.625em;
	  padding-left: 3.5em;
	  padding-right: 3.5em;
	}
  }
  @media screen and (max-width: 768px) {
	.btn01.mm2 {
	  min-width: 21.334em;
	  padding-left: 4.584em;
	  padding-right: 4.584em;
	}
  }
  .btn01 > span {
	transform: translate(0, -0.2em);
  }
  
  .btn02 {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	font-weight: 800;
	transition: 120ms ease 0ms;
  }
  @media screen and (min-width: 769px) {
	.btn02 {
	  border: 0.3rem solid;
	  border-radius: 4.375em;
	  width: 27.938em;
	  height: 4.375em;
	  line-height: 1.563em;
	  font-size: 1.6rem;
	}
  }
  @media screen and (max-width: 768px) {
	.btn02 {
	  border: 0.6rem solid;
	  border-radius: 5.417em;
	  width: 21.334em;
	  height: 5.417em;
	  line-height: 1.625em;
	  font-size: 2.4rem;
	}
  }
  .btn02 _::-webkit-full-page-media, .btn02 _:future, :root .btn02 {
	padding-bottom: 0.7em;
	line-height: 0.8;
  }
  .btn02 > i {
	display: block;
	position: absolute;
	width: 1.625em;
	height: 0.625em;
	right: 1.375em;
	top: 0;
	bottom: 0;
	margin: auto 0;
	transition: width 120ms ease-in 0ms;
	overflow: hidden;
  }
  .btn02 > i > svg {
	position: absolute;
	width: 2.313em;
	right: 0;
	top: 0;
	bottom: 0;
  }
  .btn02:hover > i {
	width: 2.313em;
  }
  .btn02.col01 {
	background: #fff;
	border-color: #282828;
	color: #007537;
  }
  @media screen and (min-width: 769px) {
	.btn02.col01 {
	  box-shadow: 0.6rem 0.6rem 0 #282828;
	}
  }
  @media screen and (max-width: 768px) {
	.btn02.col01 {
	  box-shadow: 1rem 1rem 0 #282828;
	}
  }
  .btn02.col01 > i > svg {
	fill: #007537;
  }
  .btn02.col01:hover {
	background: #007537;
	color: #fff;
  }
  .btn02.col01:hover > i > svg {
	fill: #fff;
  }
  
  .main_outer {
	margin: 0 auto;
	overflow: hidden;
  }
  .main_inner {
	position: relative;
	margin: 0 auto;
  }
  .main_head {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 3;
  }
  @media screen and (min-width: 769px) {
	.main_head {
	  min-height: 24.5rem;
	  padding: 0 0 4.7rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_head {
	  min-height: 30.2rem;
	  padding: 0 0 2.4rem;
	}
  }
  .main_head::before {
	content: "";
	position: absolute;
	background-position: center center;
	background-repeat: repeat-x;
	background-size: auto 100%;
	left: 0;
	right: 0;
	pointer-events: none;
  }
  @media screen and (min-width: 769px) {
	.main_head::before {
	  background-image: url(../img/line01_g_pc.png);
	  height: 4.6rem;
	  bottom: -2.4rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_head::before {
	  background-image: url(../img/line02_g_sp.png);
	  height: 5.8rem;
	  bottom: -3.4rem;
	}
  }
  .main_head::after {
	content: "";
	position: absolute;
	background-image: url(../img/main_head_bg01.png), url(../img/main_head_bg02.png);
	background-repeat: no-repeat;
	pointer-events: none;
  }
  @media screen and (min-width: 769px) {
	.main_head::after {
	  background-size: auto 85.904%, auto 94.714%;
	  background-position: left top, right bottom;
	  width: 100%;
	  max-width: 2000px;
	  min-width: 1366px;
	  height: 45.4rem;
	  left: 50%;
	  bottom: -31.9rem;
	  transform: translate(-50%, 0);
	}
  }
  @media screen and (max-width: 768px) {
	.main_head::after {
	  background-size: auto 81.143%, auto 100%;
	  background-position: left bottom 4.5rem, right bottom;
	  height: 35rem;
	  left: 0;
	  right: 0;
	  bottom: -23.5rem;
	}
  }
  .main_title {
	text-align: center;
  }
  .main_title > h1 {
	line-height: 1;
	letter-spacing: 0.01em;
	font-weight: 800;
  }
  @media screen and (min-width: 769px) {
	.main_title > h1 {
	  font-size: 4.8rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_title > h1 {
	  font-size: 5.5rem;
	}
  }
  .main_title > p {
	line-height: 1;
	letter-spacing: 0.01em;
	font-weight: 800;
  }
  @media screen and (min-width: 769px) {
	.main_title > p {
	  margin-top: 0.6rem;
	  font-size: 1.4rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_title > p {
	  margin-top: 0.5rem;
	  font-size: 2.2rem;
	}
  }
  .main_sub {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	letter-spacing: 0.02em;
	font-weight: 800;
	text-align: center;
  }
  .main_sub::before, .main_sub::after {
	content: "";
	display: block;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
  }
  @media screen and (min-width: 769px) {
	.main_sub::before, .main_sub::after {
	  margin: 0 0.5rem;
	}
  }
  .main_sub::before {
	background-image: url(../img/main_sub_bg01.png);
  }
  @media screen and (min-width: 769px) {
	.main_sub::before {
	  width: 3.2rem;
	  height: 4.3rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_sub::before {
	  width: 4.689rem;
	  height: 6.3rem;
	}
  }
  .main_sub::after {
	background-image: url(../img/main_sub_bg02.png);
  }
  @media screen and (min-width: 769px) {
	.main_sub::after {
	  width: 2.7rem;
	  height: 4.4rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_sub::after {
	  width: 3.928rem;
	  height: 6.4rem;
	}
  }
  @media screen and (min-width: 769px) {
	.main_sub > h2 {
	  line-height: 1.334em;
	  font-size: 3rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_sub > h2 {
	  line-height: 1.75em;
	  font-size: 4rem;
	}
  }
  @media screen and (min-width: 769px) {
	.main_sub ruby > rt {
	  font-size: 1.112rem;
	}
  }
  @media screen and (min-width: 769px) {
	.main_sub + .main_lead {
	  padding-top: 4rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_sub + .main_lead {
	  padding-top: 4.5rem;
	}
  }
  .main_lead {
	letter-spacing: 0.05em;
	font-weight: 500;
	text-align: center;
  }
  @media screen and (min-width: 769px) {
	.main_lead {
	  line-height: 2.112em;
	  font-size: 1.8rem;
	}
	.main_lead > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_lead > p:first-of-type {
	  margin-top: -0.555em;
	}
	.main_lead > p:last-of-type {
	  margin-bottom: -0.555em;
	}
  }
  @media screen and (max-width: 768px) {
	.main_lead {
	  line-height: 2.385em;
	  font-size: 2.6rem;
	}
	.main_lead > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_lead > p:first-of-type {
	  margin-top: -0.692em;
	}
	.main_lead > p:last-of-type {
	  margin-bottom: -0.692em;
	}
  }
  .main_text {
	letter-spacing: 0.02em;
	font-weight: 400;
  }
  @media screen and (min-width: 769px) {
	.main_text {
	  line-height: 1.5em;
	  font-size: 1.6rem;
	}
	.main_text > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_text > p:first-of-type {
	  margin-top: -0.25em;
	}
	.main_text > p:last-of-type {
	  margin-bottom: -0.25em;
	}
  }
  @media screen and (max-width: 768px) {
	.main_text {
	  line-height: 1.44em;
	  font-size: 2.5rem;
	}
	.main_text > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_text > p:first-of-type {
	  margin-top: -0.22em;
	}
	.main_text > p:last-of-type {
	  margin-bottom: -0.22em;
	}
  }
  .main_note {
	letter-spacing: 0.02em;
	font-weight: 400;
  }
  @media screen and (min-width: 769px) {
	.main_note {
	  line-height: 1.286em;
	  font-size: 1.4rem;
	}
	.main_note > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_note > p:first-of-type {
	  margin-top: -0.142em;
	}
	.main_note > p:last-of-type {
	  margin-bottom: -0.142em;
	}
  }
  @media screen and (max-width: 768px) {
	.main_note {
	  line-height: 1.392em;
	  font-size: 2.3rem;
	}
	.main_note > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_note > p:first-of-type {
	  margin-top: -0.195em;
	}
	.main_note > p:last-of-type {
	  margin-bottom: -0.195em;
	}
  }
  .main_kome {
	font-weight: 400;
  }
  @media screen and (min-width: 769px) {
	.main_kome {
	  line-height: 1.334em;
	  font-size: 1.2rem;
	}
	.main_kome > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_kome > p:first-of-type {
	  margin-top: -0.166em;
	}
	.main_kome > p:last-of-type {
	  margin-bottom: -0.166em;
	}
  }
  @media screen and (max-width: 768px) {
	.main_kome {
	  line-height: 1.91em;
	  font-size: 2.2rem;
	}
	.main_kome > p {
	  line-height: inherit;
	  font: inherit;
	}
	.main_kome > p:first-of-type {
	  margin-top: -0.454em;
	}
	.main_kome > p:last-of-type {
	  margin-bottom: -0.454em;
	}
  }
  .main_kome ruby > rt {
	font-weight: 400;
  }
  .main_btns {
	display: flex;
	justify-content: center;
	align-items: center;
  }
  @media screen and (max-width: 768px) {
	.main_btns {
	  flex-direction: column;
	}
  }
  @media screen and (min-width: 769px) {
	.main_btns .btn01 + .btn01 {
	  margin-left: 3rem;
	}
  }
  @media screen and (max-width: 768px) {
	.main_btns .btn01 + .btn01 {
	  margin-top: 2rem;
	}
  }
  
  .pageTop {
	position: fixed;
	opacity: 0;
	transform: translateY(10%);
	z-index: 2;
  }
  @media screen and (min-width: 769px) {
	.pageTop {
	  right: 2rem;
	  bottom: 7rem;
	}
  }
  @media screen and (max-width: 768px) {
	.pageTop {
	  right: 2rem;
	  bottom: 10rem;
	}
	.pageTop img {
	  width: 2.9rem;
	}
  }
  .pageTop.is-scrolled {
	animation: slideInTextY10 1s forwards;
  }
  
  .modal_outer {
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	z-index: 9500;
  }
  .modal_outer:not(.is-active) {
	display: none;
  }
  .modal_bg {
	position: absolute;
	background: rgba(0, 0, 0, 0.8);
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
  }
  .modal_inner {
	position: relative;
  }
  @media screen and (min-width: 769px) {
	.modal_inner {
	  width: 79.063vw;
	  max-width: 1080px;
	}
  }
  @media screen and (max-width: 768px) {
	.modal_inner {
	  width: 65rem;
	}
  }
  @media only screen and (max-device-width: 1024px) and (orientation: landscape) {
	.modal_inner {
	  max-width: 80%;
	  width: auto;
	  height: 100svh;
	  max-height: 80%;
	}
  }
  .modal_close {
	display: block;
	position: absolute;
	top: 2rem;
	right: 2rem;
	width: 2rem;
	height: 2rem;
	margin: 0 0 1.8rem auto;
	cursor: pointer;
	font-size: 0;
  }
  .modal_close::before, .modal_close::after {
	content: "";
	position: absolute;
	border-bottom: 2px solid #144F6C;
	width: 3rem;
	height: 0;
	left: -0.7rem;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
  }
  .modal_close::before {
	transform: rotateZ(45deg);
  }
  .modal_close::after {
	transform: rotateZ(-45deg);
  }
  .modal_close:hover {
	opacity: 0.5;
  }
  @media only screen and (max-device-width: 1024px) and (orientation: landscape) {
	.modal_cont {
	  height: 100%;
	}
	.modal_cont img {
	  height: 100%;
	}
  }
  .modal_cont:not(.is-active) {
	display: none;
  }
  
  @keyframes flash {
	0% {
	  opacity: 0;
	}
	30%, 34% {
	  opacity: 1;
	}
	66% {
	  opacity: 0;
	}
	96%, 100% {
	  opacity: 1;
	}
  }
  @keyframes bounceIn {
	0%, 20%, 40%, 60%, 80%, 100% {
	  animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	0% {
	  opacity: 0;
	  transform: scale3d(0.3, 0.3, 0.3);
	}
	40% {
	  transform: scale3d(1.1, 1.1, 1.1);
	}
	70% {
	  transform: scale3d(0.98, 0.98, 0.98);
	}
	100% {
	  opacity: 1;
	  transform: scaleX(1);
	}
  }
  .bounceIn {
	opacity: 0;
	transform: scale3d(0.3, 0.3, 0.3);
  }
  .bounceIn.is-animated {
	animation: bounceIn 500ms linear 0ms 1 forwards;
  }
  
  @keyframes slideInUp {
	0% {
	  opacity: 0;
	  transform: translateY(100px);
	}
	100% {
	  opacity: 1;
	  transform: translateY(0);
	}
  }
  .slideInUp {
	opacity: 0;
	transform: translateY(100px);
  }
  .slideInUp.is-animated {
	animation: slideInUp 500ms ease 0ms 1 forwards;
  }
  
  @keyframes boingIn {
	0% {
	  transform: scale(0.9, 0.9) translate(0, 0);
	  opacity: 0;
	}
	5% {
	  opacity: 1;
	}
	30% {
	  transform: scale(0.9, 1.1) translate(0, -10%);
	}
	50% {
	  transform: scale(1.1, 0.9) translate(0, 20%);
	}
	80% {
	  transform: scale(0.95, 1.05) translate(0, -5%);
	}
	100% {
	  transform: scale(1, 1) translate(0, 0);
	  opacity: 1;
	}
  }
  .boingIn {
	opacity: 0;
	transform: scale(0.9, 0.9) translate(0, 0);
  }
  .boingIn.is-animated {
	animation: boingIn 700ms ease 0ms 1 forwards;
  }