@charset "utf-8";

@font-face {
  font-family: "ShinGoPro-Medium";
  font-style: normal;
  src: url("./FONTS/ShinGoPro-M.woff2") format("woff2"),
       url("./FONTS/ShinGoPro-M.woff") format("woff");
  font-display: swap;
}
.nbf-Medium {
    font-family: ShinGoPro-Medium,sans-serif !important;
}

body::-webkit-scrollbar{
  display:none;
}

body {
	margin: 0;
	/*スクロールバー非表示（IE・Edge）*/
	-ms-overflow-style: none;
	/*スクロールバー非表示（Firefox）*/
	scrollbar-width: none;
}

li {
  list-style-type: none;
}
ul {
  margin: 0;
  padding: 0;
}

/* android tap-highlight-color disable*/
a, .swiper-button-prev, .swiper-button-next, .modaal-inner-wrapper{
	-webkit-tap-highlight-color:rgba(0,0,0,0) !important;
	cursor:pointer ;
}

/*****************/
/* header */
/*****************/
header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  height: 60px;
}
header .logo_pc {
  display: none;
  width: 100px;
}
header .logo_sp {
  display: block;
  width: 120px;
  margin-left: 20px;
  margin-top: 30px;
}
.headerLogoArea {
  display: inline-block;
  vertical-align: bottom;
}

.is-sp {
  display: block;
}
.is-pc {
  display: none;
}

@media only screen and (min-width: 769px) {
  header {
    height: 120px;
  }
  .headerLogoArea {
    margin-left: 46px;
    margin-top: 39px;
  }
  header .logo_pc {
    display: block;
	width: 7.086vw;
  }
  header .logo_sp {
    display: none;
  }
  .is-sp {
    display: none;
  }
  .is-pc {
    display: block;
  }
}

#gn_footer .gn_element .grid-row.bleed {
  max-width: none !important;
}
#gn_footer .gn_element .grid-row.bleed {
  max-width: none !important;
}

/*****************/
/* main */
/*****************/
main {
	display: block;
	overflow-x: hidden;
	position: relative;
}

main::-webkit-scrollbar{
  display:none;
}
main {
	/*スクロールバー非表示（IE・Edge）*/
	-ms-overflow-style: none;
	/*スクロールバー非表示（Firefox）*/
	scrollbar-width: none;
}

/*****************/
/* contents common parts */
/*****************/
a {
  text-decoration: none;
}

h1,h2,h3 {
	font-family: ShinGoPro-Bold,sans-serif !important;
	font-weight: normal;
	margin-top: 0;
	margin-bottom: 0;
}

p {
	margin-top: 0;
	margin-bottom: 0;
}

img {
	width: 100%;
}

/*****************/
/* kv */
/*****************/
.kv {
	width: 100vw;
	position: relative;
}
.kv_img {
	position: absolute;
	width: 100%;
	z-index: -1;
}
.kv_inner {
	position: relative;
	padding-top: 55.897vw;
	padding-bottom: 8.149vw;
}

.kv_logo {
	width: 29.231vw;
	margin: 0 auto;
}

.kv_ttl_pc {
	display: none;
}

.kv_ttl_sp {
	text-align: center;
	font-size: 10.769vw;
	line-height: 1.15;
	color: #fff;
	margin-top: 0.256vw;
	margin-bottom: 4.615vw;
}
.kv_ttl_sp .spot_space {
	margin-left: 3.077vw;
}
.kv_sub-ttl {
	font-size: 3.846vw;
	text-align: center;
	color: #fff;
	line-height: 1.6;
}
.kv_text {
	text-align: center;
	font-size: 3.333vw;
	margin-top: 8.974vw;
	margin-bottom: 4.103vw;
}

@media screen and (min-width: 769px){
	.kv {
		height: 56.1vw;
		overflow: hidden;
	}

	.kv_inner {
		padding-top: 7.604vw;
		padding-bottom: 11.354vw;
		width: 30.573vw;
		margin-left: 5.521vw;
	}

	.kv_logo {
		width: 9.531vw;
	}

	.kv_ttl_sp {
		font-size: 5.417vw;
		margin-top: 0.938vw;
		margin-bottom: 0.938vw;
	}

	.kv_ttl_sp .spot_space {
		margin-left: 0.938vw;
	}

	.kv_ttl_pc {
		width: 27.969vw;
		line-height: 0;
		margin-top: 2.396vw;
	}

	.kv_sub-ttl {
		text-align: left;
		font-size: 1.458vw;
		width: 27.969vw;
		margin: 0 auto;
	}

	.kv_text {
		margin-top: 1.458vw;
		font-size: 0.833vw;
		text-align: left;
		color: #fff;
		margin-bottom: 2.604vw;
		width: 27.969vw;
		margin-left: auto;
		margin-right: auto;
	}
}
/* term btn
----------------------*/
.btn_term {
	display: block;
	width: 84.615vw;
	height: 14.359vw;
	margin: 0 auto;
	position: relative;
	margin-top: 10.256vw;
	margin-bottom: 6.154vw;
}
.btn_term_link {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	background-color: #fff;
	justify-content: center;
	border-radius: 1.538vw;
	position: relative;
	box-sizing: border-box;
	border: solid 2px #000;
	color: #000;
	font-family: ShinGoPro-Medium,sans-serif !important;
	font-weight: normal;
	font-size: 3.333vw;
}
.btn_term_link svg{
	position: absolute;
	width: 5.128vw;
	right: 3.333vw;
}

@media screen and (min-width: 769px) and (max-width: 1599px){
	.btn_term {
		width: 28.125vw;
		height: 5.313vw;
		margin-top: 3.125vw;
		margin-bottom: 1.75vw;
	}
	.btn_term_link {
		border-radius: 0.375vw;
		border: solid 2px #000;
		font-size: 1.25vw;
	}
	.btn_term_link svg {
		width: 1.938vw;
		right: 1.938vw;
	}
	.voice .btn_term_link {
		justify-content: center;
	}
}

@media screen and (min-width: 1600px){
	.btn_term {
		width: 450px;
		height: 85px;
		margin-top: 50px;
		margin-bottom: 28px;
	}
	.btn_term_link {
		border-radius: 6px;
		border: solid 2px #000;
		font-size: 20px;
	}
	.btn_term_link svg {
		width: 31px;
		right: 31px;
	}
	.voice .btn_term_link {
		justify-content: center;
	}
}

@media screen and (min-width: 769px) {
	.btn_term_link {
		transition: 0.2s ease-in-out;
	}
	.btn_term_link:hover{
		background-color: #000;
		color: #fff;
	}
	.btn_term_link svg path {
		transition: 0.2s ease-in-out;
	}
	.btn_term_link:hover svg path {
		stroke: #fff;
		fill: #fff;
	}
	.btn_term_link svg {
		transition: 0.2s ease-in-out;
	}
	.btn_term_link:hover svg {
		transform: translateX(3px);
	}

/*
	.btn_app_outer .btn_app_link {
		transition: 0.2s ease-in-out;
	}
	.btn_app_outer:hover .btn_app_link {
		background-color: #e80038;
	}
	.btn_app_outer .btn_app_link .btn_inner .icon_arrow {
		transition: 0.2s ease-in-out;
	}
	.btn_app_outer:hover .btn_app_link .btn_inner .icon_arrow {
		transform: translateX(3px);
	}
*/
}
/*
hover svg path {
	stroke: #fff;
	fill: #fff;
}
*/



/* application btn
----------------------*/
.btn_app_outer {
	display: block;
	width: 84.615vw;
	height: 17.949vw;
	margin: 0 auto;
	position: relative;
}
.btn_app_link {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	background-color: #C3002F;
	justify-content: center;
	border-radius: 2.051vw;
	position: relative;
}
.btn_app_link .btn_inner {
	position: relative;
}
.btn_app_link .btn_inner span {
	color: #fff;
	font-size: 4.615vw;
	letter-spacing: 0.01em;
	line-height: 1;
	font-family: ShinGoPro-Medium,sans-serif !important;
	font-weight: normal;
	white-space: nowrap;
	padding-left: 2.564vw;
}
.btn_app_link .btn_inner .icon_app {
	position: absolute;
	width: 4.103vw;
	left: -3.487vw;
	top: 0;
	bottom: 0;
	margin: auto;
}
.btn_app_link .btn_inner .icon_arrow {
	width: 4.872vw;
	position: absolute;
	right: -14vw;
	top: 0;
	bottom: 0;
	margin: auto;
}
.btn_app_outer::before {
	content:'';
	width: 100%;
	height: 100%;
	position: absolute;
	background-color: #000;
	top: 1.282vw;
	left: 0;
	border-radius: 2.051vw;
}

@media screen and (min-width: 769px){
	.kv .btn_app_outer {
		display: block;
		width: 27.865vw;
		height: 5.885vw;
	}
	.kv .btn_app_link {
		width: 100%;
		height: 100%;
		border-radius: 0.417vw;
	}
	.kv .btn_app_link .btn_inner span {
		font-size: 1.458vw;
		font-family: ShinGoPro-Bold,sans-serif !important;
		font-weight: normal;
		line-height: 1.5;
		padding-left: 0;
	}
	.kv .btn_app_link .btn_inner .icon_app {
		width: 1.354vw;
		left: -2.065vw;
	}
	.kv .btn_app_link .btn_inner .icon_arrow {
		width: 1.615vw;
		right: -3.51vw;
	}
	.kv .btn_app_outer::before {
		top: 0.417vw;
		border-radius: 0.417vw;
	}
}

@media screen and (min-width: 769px) and (max-width: 1599px){
	.checkpoint .btn_app_outer,
	.point .btn_app_outer,
	.flow .btn_app_outer,
	.movie .btn_app_outer,
	.voice .btn_app_outer {
		display: block;
		width: 33.438vw;
		height: 7.062vw;
	}
	.checkpoint .btn_app_link,
	.point .btn_app_link,
	.flow .btn_app_link,
	.movie .btn_app_link,
	.voice .btn_app_link {
		width: 100%;
		height: 100%;
		border-radius: 0.5vw;
	}
	.checkpoint .btn_app_link .btn_inner span,
	.point .btn_app_link .btn_inner span,
	.flow .btn_app_link .btn_inner span,
	.movie .btn_app_link .btn_inner span,
	.voice .btn_app_link .btn_inner span {
		font-size: 1.75vw;
		font-family: ShinGoPro-Bold,sans-serif !important;
		font-weight: normal;
		line-height: 1.5;
		padding-left: 0;
	}
	.checkpoint .btn_app_link .btn_inner .icon_app,
	.point .btn_app_link .btn_inner .icon_app,
	.flow .btn_app_link .btn_inner .icon_app,
	.movie .btn_app_link .btn_inner .icon_app,
	.voice .btn_app_link .btn_inner .icon_app {
		width: 1.625vw;
		left: -2.812vw;
	}
	.checkpoint .btn_app_link .btn_inner .icon_arrow,
	.point .btn_app_link .btn_inner .icon_arrow,
	.flow .btn_app_link .btn_inner .icon_arrow,
	.movie .btn_app_link .btn_inner .icon_arrow,
	.voice .btn_app_link .btn_inner .icon_arrow {
		width: 1.938vw;
		right: -3.937vw;
	}
	.checkpoint .btn_app_outer::before,
	.point .btn_app_outer::before,
	.flow .btn_app_outer::before,
	.movie .btn_app_outer::before,
	.voice .btn_app_outer::before {
		top: 0.5vw;
		border-radius: 0.5vw;
	}

}

@media screen and (min-width: 1600px){
	.checkpoint .btn_app_outer,
	.point .btn_app_outer,
	.flow .btn_app_outer,
	.movie .btn_app_outer,
	.voice .btn_app_outer {
		display: block;
		width: 535px;
		height: 113px;
	}
	.checkpoint .btn_app_link,
	.point .btn_app_link,
	.flow .btn_app_link,
	.movie .btn_app_link,
	.voice .btn_app_link {
		width: 100%;
		height: 100%;
		border-radius: 8px;
	}
	.checkpoint .btn_app_link .btn_inner span,
	.point .btn_app_link .btn_inner span,
	.flow .btn_app_link .btn_inner span,
	.movie .btn_app_link .btn_inner span,
	.voice .btn_app_link .btn_inner span {
		font-size: 28px;
		font-family: ShinGoPro-Bold,sans-serif !important;
		font-weight: normal;
		line-height: 1.5;
		padding-left: 0;
	}
	.checkpoint .btn_app_link .btn_inner .icon_app,
	.point .btn_app_link .btn_inner .icon_app,
	.flow .btn_app_link .btn_inner .icon_app,
	.movie .btn_app_link .btn_inner .icon_app,
	.voice .btn_app_link .btn_inner .icon_app {
		width: 26px;
		left: -45px;
	}
	.checkpoint .btn_app_link .btn_inner .icon_arrow,
	.point .btn_app_link .btn_inner .icon_arrow,
	.flow .btn_app_link .btn_inner .icon_arrow,
	.movie .btn_app_link .btn_inner .icon_arrow,
	.voice .btn_app_link .btn_inner .icon_arrow {
		width: 31px;
		right: -63px;
	}
	.checkpoint .btn_app_outer::before,
	.point .btn_app_outer::before,
	.flow .btn_app_outer::before,
	.movie .btn_app_outer::before,
	.voice .btn_app_outer::before {
		top: 8px;
		border-radius: 8px;
	}
}

@media screen and (min-width: 769px) {
	.btn_app_outer::before {
		transition: 0.2s ease-in-out;
	}
	.btn_app_outer:hover::before{
		top:0;
	}
	.btn_app_outer .btn_app_link {
		transition: 0.2s ease-in-out;
	}
	.btn_app_outer:hover .btn_app_link {
		background-color: #e80038;
	}
	.btn_app_outer .btn_app_link .btn_inner .icon_arrow {
		transition: 0.2s ease-in-out;
	}
	.btn_app_outer:hover .btn_app_link .btn_inner .icon_arrow {
		transform: translateX(3px);
	}
}

/* section ttl
-------------------------*/
.section_ttl {
	font-size: 7.692vw;
	line-height: 1.45;
	text-align: center;
}

@media screen and (min-width: 769px) and (max-width: 1599px){
	.section_ttl {
		font-size: 3.5vw;
	}
}

@media screen and (min-width: 1600px){
	.section_ttl {
		font-size: 56px;
	}

}

/* check point
-------------------------*/
.checkpoint {
	padding-top: 12.821vw;
	padding-bottom: 14.103vw;
	background-image: url("../IMAGES/checkpoint_sp_bg.jpg");
	background-color:rgba(255,255,255,0.65);
	background-blend-mode:lighten;
	background-size: cover;
}

.checkpoint_contents {
	margin-top: 7.692vw;
}

.chekupoint_list_item {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 53.846vw;
	height: 53.846vw;
	position: relative;
	margin-left: 8.718vw;
}
.chekupoint_list_item:nth-child(even) {
	margin-left: auto;
	margin-right: 8.205vw;
}

.list_inner {
	text-align: center;
	position: relative;
	z-index: 1;
}

.list_ttl {
	display: inline-block;
}
.marker_parent {
	position: relative;
	line-height: 1;
	display: block;
	width: 117.5%;
	margin-left: -8.75%;
}
.marker_txt {
	font-size: 4.872vw;
	font-family: ShinGoPro-Bold,sans-serif !important;
	font-weight: normal;
}
.marker_line {
	position: absolute;
	width: 100%;
	height: 3.077vw;
	display: block;
	left: 0;
	bottom: -1.026vw;
	background-color: #000;
	opacity: 0.1;
}

.list_text {
	font-size: 3.077vw;
	line-height: 1.8;
	margin-top: 0.769vw;
}

.checkpoint_num {
	position: absolute;
	top: -2.051vw;
	left: -3.333vw;
	color: #000;
	opacity: 0.1;
	z-index: 1;
}
.chekupoint_list_item:nth-child(even) .checkpoint_num{
	left: auto;
	right: 0.769vw;
}

.checkpoint_num span {
	font-family: ShinGoPro-Bold,sans-serif !important;
	font-weight: normal;
	font-size: 11.795vw;
}

.bg_circle {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

.bg_circle svg{
	width: 100%;
	height: 100%;
	transform: rotate(-116deg);
}
.chekupoint_list_item:nth-child(even) .bg_circle svg {
	transform: rotate(-17deg);
}

.bg_circle svg circle {
	fill: #fff;
	stroke: #000;
	stroke-width: 3;
	stroke-dasharray: 810 960.6;
}

@media screen and (min-width: 769px) and (max-width: 1599px){
	.checkpoint {
		background-image: url("../IMAGES/checkpoint_pc_bg.jpg");
		padding-top: 8.188vw;
		padding-bottom: 6.438vw;
	}
	.checkpoint_contents {
		margin-top: 2.938vw;
	}
	.checkpoint_lists {
		width: 76.25vw;
		display: flex;
		margin: 0 auto;
		justify-content: space-between;
	}
	.chekupoint_list_item {
		align-items: flex-start;
		margin: 0;
		width: 21.563vw;
		height: 21.563vw;
		padding-top: 6.25vw;
		box-sizing: border-box;
	}
	.chekupoint_list_item:nth-child(even) {
		margin: 0;
		width: 21.563vw;
		height: 21.563vw;
	}
	.chekupoint_list_item:nth-child(even) .bg_circle svg {
		transform: rotate(-116deg);
	}
	.chekupoint_list_item:nth-child(even) .checkpoint_num {
		right: auto;
		left: -1.375vw;
	}
	.marker_parent {
		width: 105%;
		margin-left: 0;
	}
	.marker_txt {
		font-size: 2.125vw;
	}
	.marker_line {
		height: 0.875vw;
		bottom: -0.375vw;
	}
	.list_text {
		font-size: 1.125vw;
		margin-top: 1.125vw;
	}
	.list_text span{
		font-family: ShinGoPro-Medium,sans-serif !important;
		font-weight: normal;
	}
	.checkpoint_num {
		top: -0.625vw;
		left: -1.375vw;
	}
	.checkpoint_num span {
		font-size: 4.563vw;
	}

}

@media screen and (min-width: 1600px){
	.checkpoint {
		background-image: url("../IMAGES/checkpoint_pc_bg.jpg");
		padding-top: 131px;
		padding-bottom: 103px;
	}
	.checkpoint_contents {
		margin-top: 47px;
	}
	.checkpoint_lists {
		width: 1220px;
		display: flex;
		margin: 0 auto;
		justify-content: space-between;
	}
	.chekupoint_list_item {
		align-items: flex-start;
		margin: 0;
		width: 345px;
		height: 345px;
		padding-top: 100px;
		box-sizing: border-box;
	}
	.chekupoint_list_item:nth-child(even) {
		margin: 0;
		width: 345px;
		height: 345px;
	}
	.chekupoint_list_item:nth-child(even) .bg_circle svg {
		transform: rotate(-116deg);
	}
	.chekupoint_list_item:nth-child(even) .checkpoint_num {
		right: auto;
		left: -22px;
	}
	.marker_parent {
		width: 105%;
		margin-left: 0;
	}
	.marker_txt {
		font-size: 34px;
	}
	.marker_line {
		height: 14px;
		bottom: -6px;
	}
	.list_text {
		font-size: 18px;
		margin-top: 18px;
	}
	.list_text span{
		font-family: ShinGoPro-Medium,sans-serif !important;
		font-weight: normal;
	}
	.checkpoint_num {
		top: -10px;
		left: -22px;
	}
	.checkpoint_num span {
		font-size: 73px;
	}
}

/* flow
-------------------------*/

.flow {
	background-image: url("../IMAGES/checkpoint_sp_bg.jpg");
	background-color:rgba(255,255,255,0.65);
	background-blend-mode:lighten;
	background-size: cover;
	padding-top: 12.821vw;
	padding-bottom: 14.103vw;
}
.card-line {
	position: absolute;
	width: 0.513vw;
	height: 90%;
	background-color: #000;
	top: 1.795vw;
	left: 14.615vw;
}

.cards {
	width: 84.615vw;
	height: 134.872vw;
	margin: 0 auto;
	margin-top: 10vw;
	position: relative;
}

.card {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	width: 100%;
	height: 34.359vw;
}

.card_head {
	width: 29.744vw;
	height: 24.103vw;
	border-radius: 1.538vw;
	overflow: hidden;
	line-height: 0;
}
.card_head img{
	object-fit: cover;
	height: 100%;
}

.card_body {
	text-align-last: left;
	width: 50.513vw;
}

.card_ttl {
	font-size: 4.615vw;
	line-height: 1;
	margin-bottom: 2.564vw;
}

.card_text {
	font-size: 3.333vw;
	line-height: 1.8;
}


@media screen and (min-width: 769px) and (max-width: 1599px){
	.flow {
		background-image: url("../IMAGES/checkpoint_pc_bg.jpg");
		padding-top: 8.125vw;
		padding-bottom: 6.313vw;
	}

	.cards {
		display: flex;
		justify-content: space-between;
		margin-top: 3.188vw;
		width: 76.25vw;
		height: 27.375vw;
	}

	.card {
		width: 15.438vw;
		position: relative;
		display: block;
		height: auto;
	}

	.card_head {
		width: 15.438vw;
		height: 11.313vw;
		border-radius: 0.375vw;
	}

	.card_body {
		text-align-last: center;
		width: auto;
	}

	.card_ttl {
		font-size: 1.5vw;
		margin-top: 1.563vw;
		margin-bottom: 1.75vw;
	}

	.card_text {
		font-size: 1vw;
		white-space: nowrap;
		line-height: 2;
	}

	.card-line {
		height: 0.188vw;
		width: 90%;
		top: 5.625vw;
		left: 3.938vw;
	}

}

@media screen and (min-width: 1600px){
	.flow {
		background-image: url("../IMAGES/checkpoint_pc_bg.jpg");
		padding-top: 130px;
		padding-bottom: 101px;
	}

	.cards {
		display: flex;
		justify-content: space-between;
		margin-top: 51px;
		width: 1220px;
		height: 438px;
	}

	.card {
		width: 247px;
		position: relative;
		display: block;
		height: auto;
	}

	.card_head {
		width: 247px;
		height: 181px;
		border-radius: 6px;
	}

	.card_body {
		text-align-last: center;
		width: auto;
	}

	.card_ttl {
		font-size: 24px;
		margin-top: 25px;
		margin-bottom: 28px;
	}

	.card_text {
		font-size: 16px;
		white-space: nowrap;
		line-height: 2;
	}

	.card-line {
		height: 3px;
		width: 90%;
		top: 90px;
		left: 63px;
	}

}

/* voice
-------------------------*/

.voice {
	background: #F0F0F0;
	padding-top: 13.333vw;
	padding-bottom: 13.59vw;
}

.voice_ttl span {
	font-size: 6.41vw;
	font-family: ShinGoPro-Bold,sans-serif !important;
	font-weight: normal;
}

.voice_lists {
	width: 84.615vw;
	margin: 0 auto;
	margin-top: 11.795vw;
}

.voice_list {
	width: 100%;
	margin-bottom: 10.256vw;
	border-radius: 1.538vw;
	box-sizing: border-box;
	border: solid 1px #000;
	background-color: #fff;
	position: relative;
	padding-top: 6.923vw;
	text-align: center;
	padding-bottom: 10.513vw;
}

.voice_list_icon {
	position: absolute;
	width: 9.231vw;
	height: 9.231vw;
	left: 0;
	right: 0;
	margin: auto;
	top: -4.615vw;
}

.voice_list_ttl {
	font-size: 4.615vw;
	line-height: 1;
	margin-bottom: 5.128vw;
}

.voice_list_text {
	font-size: 3.333vw;
	width: 66.923vw;
	margin: 0 auto;
	text-align: left;
	line-height: 2;
	margin-bottom: 2.308vw;
}

.voice .swiper {
	width: 49.744vw;
}

.voice_list_img_sp {
	position: relative;
}

.swiper-pagination-bullets.swiper-pagination-horizontal {
	bottom: -2.564vw;
}
.swiper-pagination-bullet-active {
	background-color: #ED7775;
}


@media screen and (min-width: 769px) and (max-width: 1599px){
	.voice {
		padding-top: 8.188vw;
		padding-bottom: 6.438vw;
	}
	.voice_ttl span {
		font-size: 3.5vw;
	}
	.voice_lists {
		width: 69.375vw;
		margin-top: 6.063vw;
	}
	.voice_list {
		margin-bottom: 5.188vw;
		border-radius: 0.625vw;
		padding-top: 2.938vw;
		padding-bottom: 2.875vw;
	}
	.voice_list_icon {
		width: 4.063vw;
		height: 4.063vw;
		top: -2.062vw;
	}
	.voice_list_ttl {
		font-size: 2.125vw;
		margin-bottom: 1.625vw;
	}
	.voice_list_text {
		font-size: 1vw;
		text-align: center;
		width: auto;
		margin-bottom: 2.938vw;
	}
	.voice_list_img_pc {
		width: 41.813vw;
		margin: 0 auto;
	}

}

@media screen and (min-width: 1600px){
	.voice {
		padding-top: 131px;
		padding-bottom: 103px;
	}
	.voice_ttl span {
		font-size: 56px;
	}
	.voice_lists {
		width: 1110px;
		margin-top: 97px;
	}
	.voice_list {
		margin-bottom: 83px;
		border-radius: 10px;
		padding-top: 47px;
		padding-bottom: 46px;
	}
	.voice_list_icon {
		width: 65px;
		height: 65px;
		top: -33px;
	}
	.voice_list_ttl {
		font-size: 34px;
		margin-bottom: 26px;
	}
	.voice_list_text {
		font-size: 16px;
		text-align: center;
		width: auto;
		margin-bottom: 47px;
	}
	.voice_list_img_pc {
		width: 669px;
		margin: 0 auto;
	}

}

.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after {
	content: none;
}
.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after {
	content: none;
}

/* notes
-------------------------*/

.notes {
	font-size: 2.821vw;
	padding-left: 4.615vw;
	padding-right: 4.615vw;
	padding-top: 9.231vw;
	padding-bottom: 9.231vw;
}
.notes_pc_only {
	display: none;
}

.note_list {
	padding-left: 2.692vw;
	position: relative;
}
.note_list::before {
	content: '';
	position: absolute;
	transform: translateY(-50%);
	left: 0;
	background: #ED7776;
	border-radius: 25.641vw;
	width: 1.538vw;
	height: 1.538vw;
	top: 2.821vw;
}
.notes_head_annotation {
	margin-top: 4.167vw;
	padding-left: 3vw;
	position: relative;
}
.notes_head_annotation::before {
    content: '※';
	position: absolute;
    transform: translateY(-50%);
    left: 0;
    top: 2.821vw;
}
@media screen and (min-width: 769px) and (max-width: 1599px){
	.notes_pc_only {
		display: inline;
	}
	.notes {
		padding: 4.688vw 0px;
		font-size: 0.875vw;
	}

	.notes_head {
		width: 76.25vw;
		margin: 0 auto;
	}

	.note_list {
		padding-left: 0.656vw;
		position: relative;
	}

	.note_list::before {
		top: 0.938vw;
		width: 0.438vw;
		height: 0.438vw;
		border-radius: 6.25vw;
	}

	.notes_head_annotation {
		margin-top: 1.667vw;
		padding-left: 0.956vw;
	}

	.notes_head_annotation::before {
		top: 0.85vw;
	}
}

@media screen and (min-width: 1600px){
	.notes_pc_only {
		display: inline;
	}
	.notes {
		padding: 75px 0px;
		font-size: 14px;
	}

	.notes_head {
		width: 1220px;
		margin: 0 auto;
	}

	.note_list {
		padding-left: 10.5px;
		position: relative;
	}

	.note_list::before {
		top: 15px;
		width: 7px;
		height: 7px;
		border-radius: 100px;
	}

	.notes_head_annotation {
		margin-top: 32px;
		padding-left: 14.5px;
	}

	.notes_head_annotation::before {
		top: 14px;
	}
}

/* banner
-------------------------*/

.banner {
	background: #F0F0F0;
	padding-top: 8.205vw;
	padding-bottom: 16.154vw;
}

.banner_item {
	width: 76.923vw;
	margin: 0 auto;
	margin-bottom: 5.128vw;
	line-height: 0;
}

@media screen and (min-width: 769px) and (max-width: 1599px){
	.banner {
		padding-top: 4.688vw;
		padding-bottom: 6.25vw;
	}

	.banner_items {
		display: flex;
		flex-wrap: wrap;
		gap: 1.875vw;
		width: 50.25vw;
		margin: 0 auto;
	}

	.banner_item {
		width: 24.125vw;
		margin: 0;
	}
}

@media screen and (min-width: 1600px){
	.banner {
		padding-top: 75px;
		padding-bottom: 100px;
	}

	.banner_items {
		display: flex;
		flex-wrap: wrap;
		gap: 30px;
		width: 802px;
		margin: 0 auto;
	}

	.banner_item {
		width: 386px;
		margin: 0;
	}
}

/*****************/
/* section share */
/*****************/
.share{
	background-color: #F0F0F0;
}
.share .title {
	text-align: center;
}
.share .title h2{
	font-size: 4.103vw;
	color: #000;
	letter-spacing: 0.1em;
	margin-bottom: 18px;
}

.share-links-item {
  display: flex;
  justify-content: center;
  margin-top: 12.051vw;
  padding-bottom: 8.974vw;
}
.share-links-item .icon {
  width: 11.538vw;
  line-height: 0;
}
.share-links-item .icon img{
  width: 100%;
}
.share-links-item li:not(:last-of-type) {
  margin-right: 7.692vw;
}
.share .page-top {
  width: 14.872vw;
  margin: 0 auto;
  padding-bottom: 16.205vw;
}
.share .page-top img{
  width: 100%;
}

@media screen and (min-width: 769px) and (max-width: 1599px) {
	.share .title h2{
		font-size: 1.875vw;
		margin-bottom: 3.125vw;
	}
	.share-links-item {
    margin-top: 0;
		padding-bottom: 0;
	}
	.share-links-item li:not(:last-of-type) {
		margin-right: 3.063vw;
	}
	.share-links-item .icon {
		width: 4.688vw;
	}
	.share .page-top {
		width: 8.75vw;
		padding-bottom: 7.5vw;
	}

}
@media screen and (min-width: 1600px) {
  .share .title h2{
		font-size: 30px;
		margin-bottom: 50px;
  }
  .share-links-item {
    margin-top: 0;
    padding-bottom: 0;
  }
  .share-links-item li:not(:last-of-type) {
    margin-right: 49px;
  }
  .share-links-item .icon {
    width: 75px;
  }
  .share .page-top {
    width: 140px;
    padding-bottom: 120px;
  }
}

/* top
-------------------------*/
.to-top {
	width: 14.872vw;
	margin-left: auto;
	position: relative;
}
.outer_to_top {
	padding-bottom: 5.128vw;
	width: 76.923vw;
	margin: 0 auto;
}

@media screen and (min-width: 769px) and (max-width: 1599px) {
	.to-top {
		width: 6.438vw;
	}
	.outer_to_top {
		width: 76.25vw;
		padding-bottom: 2.688vw;
	}
}

@media screen and (min-width: 1600px) {
	.to-top {
		width: 103px;
	}
	.outer_to_top {
		width: 1220px;
		padding-bottom: 43px;
	}

}

/* common hover
-------------------------*/

@media screen and (min-width: 769px) {
	.share-links-item a:hover {
		opacity: 0.7;
	}
	.page-top a:hover {
		opacity: 0.7;
	}
	.banner_item:hover {
		opacity: 0.7 !important;
	}
	.to-top:hover {
		opacity: 0.7;
	}
}

/***********************
Fixed Links
************************/
.fixed_links {
	position: fixed;
	z-index: 1;
	width: 300px;
	left: 0;
	right: 0;
	margin: auto;
	height: 45px;
	border-radius: 10px 10px 0 0;
	overflow: hidden;
	bottom: 0;
}
.fixed_links ul {
	display: flex;
	height: 100%;
}
.fixed_links li {
	font-size: 10px;
	width: 33.333%;
	letter-spacing: 0.1em;
	border-right: solid 1px #fff;
	height: 100%;
}
.fixed_links li:nth-of-type(3) {
	border: none;
}
.fixed_links li a {
	background-color: rgba(239 ,239 ,239 , 1);
	color: #C3002F;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	text-decoration: none;
	transition: 0.3s;
	flex-direction: column;
	font-weight: bold;
	line-height: 1;
}

.nav_icon_01 {
	width: 20px;
	padding-bottom: 3px;
}

.nav_icon_02 {
	width: 11px;
	padding-bottom: 3px;
}

.nav_icon_03 {
	width: 13px;
	padding-bottom: 3px;
}

@media screen and (min-width:769px) {
	.fixed_links {
		width: 464px;
		height: 50px;
	}
	.fixed_links li {
		font-size: 14px;
	}
	.fixed_links li a{
		flex-direction: row;
	}
	.fixed_links li a:hover {
		background-color: rgba(180 ,180 ,180 , 0.9);
	}
	.nav_icon_01 {
		width: 28px;
		padding-bottom: 0px;
		padding-right: 8px;
		margin-top: 4px;
	}

	.nav_icon_02 {
		width: 20px;
		padding-right: 8px;
		margin-top: 4px;
	}

	.nav_icon_03 {
		width: 24px;
		padding-right: 8px;
		margin-top: 4px;
	}
}


/*fixed_links animation */
.fixed_links {
	transition: .6s cubic-bezier(.11,.85,.14,1);
	transform: translateY(100%);
}
.fixed_links.open {
	transform: translateY(0);
}

#gn_footer {
	z-index: 99;
	position: relative;
}

/* scroll down
-------------------------*/
.scrolldown {
	display: none;
}

@media screen and (min-width: 769px) {
	.scrolldown {
		display: block;
		position: absolute;
		bottom: 0;
		left: 2.5vw;
		height: 7.292vw;
	}
	.icon_scrolldown {
		width: 0.469vw;
		display: block;
	}
	.scrolldown1::after{
	  content: "";
	    /*描画位置*/
	  position: absolute;
	  top: 3.646vw;
		left: -1px;
		right: 0;
		margin: auto;
	    /*線の形状*/
	  width: 1px;
	  height: 3.125vw;
	  background: #eee;
	    /*線の動き1.4秒かけて動く。永遠にループ*/
	  animation: pathmove 1.4s ease-in-out infinite;
	  opacity:0;
	}
}

@keyframes pathmove{
	0%{
		height:0;
		top:3.646vw;
		opacity: 0;
	}
	30%{
		height:3.125vw;
		opacity: 1;
	}
	100%{
		height:0;
		top:7.292vw;
		opacity: 0;
	}
}

/* animation circle
-------------------------*/
.bg_circle svg circle {
	stroke-dasharray: 0 960.6; /*0→810*/
}
.chekupoint_list_item.play .bg_circle svg circle {
	animation: circle_str 1s forwards;
}

@keyframes circle_str{
	0%{stroke-dasharray: 0 960.6;}
	100%{stroke-dasharray: 810 960.6;}
}

/* animation circle num
-------------------------*/
.checkpoint_num span{
	display: inline-block;
	opacity: 0;
	transform: translateY(-5vw);
}

.chekupoint_list_item.play .checkpoint_num span:nth-child(1) {
	animation: circle_num 0.6s forwards;
}
.chekupoint_list_item.play .checkpoint_num span:nth-child(2) {
	animation: circle_num 0.6s 0.3s forwards;
}


@keyframes circle_num{
	0%{
		opacity: 0;
		transform: translateY(-5vw);
	}
	100%{
		opacity: 1;
		transform: translateY(0);
	}
}

/* animation cardline
-------------------------*/

@media screen and (max-width: 768px) {
	.card-line {
		height: 0%;
	}
	.card-line.play {
		animation: cardline_sp 5s forwards;
	}

}

@media screen and (min-width: 769px) {
	.card-line {
		width: 0%;
	}
	.card-line.play {
		animation: cardline_pc 5s forwards;
	}
}

@keyframes cardline_pc{
	0%{
		width: 0;
	}
	100%{
		width: 90%;
	}
}

@keyframes cardline_sp{
	0%{
		height: 0;
	}
	100%{
		height: 90%;
	}
}




/*modal content*/

.modal_style .modaal-inner-wrapper{
	padding: 0;
	padding-top: 80px;
}
.modal_style .modaal-container {
	width: 87.179vw;
	border-radius: 2.051vw;
}
.modal_style .modaal-content-container {
	padding: 60px;
	padding-left: 7vw;
	padding-right: 7vw;
	word-break: break-word;
}
.modal_style .modaal-close {
	background-color: black;
	right: 0;
	top: 0;
	width: 100%;
	height: 50px;
	border-radius: 0;
}
.modal_style .modaal-close:after, .modal_style .modaal-close:before {
	top: 14px;
	left: auto;
	right: 40px;
	width: 1px;
	height: 30px;
	border-radius: 2px;
	background: #fff;
}

.modal_style .modaal-close:focus:after,
.modal_style .modaal-close:focus:before,
.modal_style .modaal-close:hover:after,
.modal_style .modaal-close:hover:before {
	background: #fff;
}

.modal_style h2 {
	font-size: 20px;
	text-align: center;
	line-height: 1.6;
	margin-bottom: 35px
}
.modal_style h3 {
	font-size: 18px;
	margin-bottom: 16px;
}

.modal_style h4 {
	font-size: 15px;
}

.outline_item {
	font-size: 12px;
	text-indent: -1em;
	padding-left: 1em;
}

.pll_list {
	padding-left: 1em;
}

.pll_item {
	font-size: 12px;
	text-indent: -2em;
	padding-left: 2em;
}

.modal_style p {
	font-size: 12px;
}


@media screen and (min-width: 768px) and (max-width: 1199px) {
	.modal_style .modaal-container {
		width: 76.667vw;
		border-radius: 0.667vw;
	}
	.modal_style .modaal-content-container {
		padding-left: 5vw;
		padding-right: 5vw;
	}
}

@media screen and (min-width: 1200px) {
	.modal_style .modaal-container {
		width: 920px;
		border-radius: 8px;
	}
	.modal_style .modaal-content-container {
		padding-left: 60px;
		padding-right: 60px;
	}
}

/* point section
-------------------------*/
.point {
	padding-top: 26.923vw;
	padding-bottom: 14.103vw;
}
.point_list {
	margin-top: 3.333vw;
}
.point_item {
	width: 90vw;
	margin: 0 auto;
	margin-bottom: 9.487vw;
}
.point_heading {
	font-weight: normal;
	color: #ED7775;
	letter-spacing: 0.14em;
	line-height: 1;
	font-size: 4.359vw;
	padding-bottom: 3.59vw;
	margin-left: -2.051vw;
}
.point_heading span{
	font-size: 10vw;
	font-weight: normal;
	font-family: ShinGoPro-Bold,sans-serif !important;
}
.point_img {
	line-height: 0;
	box-sizing: border-box;
	border-radius: 2.564vw;
	overflow: hidden;
	width: 90vw;
	height: 53.846vw;
	text-align: center;
}
.point_img img{
	object-position: center center;
	object-fit: cover;
	width: 100%;
}
.point_title {
	text-align: center;
	font-size: 4.615vw;
	font-weight: normal;
	font-family: ShinGoPro-Bold,sans-serif !important;
	line-height: 1;
	margin-top: 3.5vw;
	margin-bottom: 2.821vw;
}
.point_txt {
	text-align: center;
	font-size: 3.333vw;
	line-height: 2;
}

@media screen and (max-width: 768px) {
	.point_item:nth-child(1) .point_img img{
		transform: scale(1.1) translate(3%, -2%);
	}
	.point_item:nth-child(2) .point_img img{
		transform: scale(1.05) translate(0, -3%);
	}
}

@media screen and (min-width: 769px) and (max-width: 1599px){
	.point {
		padding-top: 8.063vw;
		padding-bottom: 6.375vw;
	}
	.point_list {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 76.25vw;
		position: relative;
		margin: 0 auto;
		margin-top: 1.625vw;
	}
	.point_item {
		width: 36.063vw;
		margin: 0;
		margin-bottom: 3.656vw;
	}
	.point_heading {
		font-size: 1.344vw;
		margin-left: -1.062vw;
		padding-bottom: 1.125vw;
	}
	.point_heading span {
		font-size: 3.231vw;
	}
	.point_img {
		width: 36.063vw;
		height: 21.688vw;
		border-radius: 0.625vw;
	}
	.point_title {
		font-size: 2.125vw;
		margin-top: 1.125vw;
		margin-bottom: 1.5vw;
	}
	.point_txt {
		font-size: 1vw;
	}
	.point_item:nth-child(2) {
		margin-top: 9.5vw;
	}
	.point_item:nth-child(3) {
		margin-top: -9.25vw;
	}
	.point_item:nth-child(4) {
		margin-top: 2.25vw;
	}
}

@media screen and (min-width: 1600px){
	.point {
		padding-top: 129px;
		padding-bottom: 102px;
	}
	.point_list {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 1220px;
		position: relative;
		margin: 0 auto;
		margin-top: 26px;
	}
	.point_item {
		width: 577px;
		margin: 0;
		margin-bottom: 58.5px;
	}
	.point_heading {
		font-size: 21.5px;
		margin-left: -17px;
		padding-bottom: 18px;
	}
	.point_heading span {
		font-size: 51.7px;
	}
	.point_img {
		width: 577px;
		height: 347px;
		border-radius: 10px;
	}
	.point_title {
		font-size: 34px;
		margin-top: 18px;
		margin-bottom: 24px;
	}
	.point_txt {
		font-size: 16px;
	}
	.point_item:nth-child(2) {
		margin-top: 152px;
	}
	.point_item:nth-child(3) {
		margin-top: -148px;
	}
	.point_item:nth-child(4) {
		margin-top: 36px;
	}

}

/* movie section
-------------------------*/
section.movie {
	padding-top: 12.821vw;
}

.movie_list {
	width: 84.615vw;
	margin: 0 auto;
	margin-top: 7.179vw;
}

.movie_item {
	position: relative;
	margin-bottom: 13.846vw;
}
.movie_item a{
	line-height: 0;
	font-size: 0;
}
.movie_item a img{
	border-radius: 2.564vw;
	box-shadow: 0px 3px 6px rgba(0,0,0,0.16)
}

.movie_txt {
	color: #000;
	text-align: center;
	font-size: 4.615vw;
	line-height: 1;
	margin-top: 1.538vw;
	font-weight: normal;
	font-family: ShinGoPro-Bold,sans-serif !important;
}
.movie_txt .cross{
	font-weight: normal;
	font-family: ShinGoPro-Bold,sans-serif !important;
	font-size: 1.1em;
	margin-left: 0.24em;
	margin-right: 0.24em;
}

.play_svg {
	position: absolute;
	top: -9.487vw;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	width: 14.615vw;
	height: 14.615vw;
}
.play_svg svg{
	width: 100%;
	height: 100%;
}

@media screen and (min-width: 769px) and (max-width: 1599px){
	section.movie {
		padding-top: 8.188vw;
	}
	.movie_list {
		margin-top: 5.438vw;
		margin-bottom: 5.625vw;
		width: 76.25vw;
		display: flex;
		justify-content: space-between;
	}
	.movie_item {
		width: 33.438vw;
		margin-bottom: 0;
	}
	.movie_item a img {
		border-radius: 0.625vw;
	}
	.movie_txt {
		font-size: 1.5vw;
		margin-top: 0.375vw;
	}
	.play_svg {
		width: 5.813vw;
		height: 5.813vw;
		top: -2.625vw;
	}
}

@media screen and (min-width: 1600px){
	section.movie {
		padding-top: 131px;
	}
	.movie_list {
		margin-top: 87px;
		margin-bottom: 90px;
		width: 1220px;
		display: flex;
		justify-content: space-between;
	}
	.movie_item {
		width: 535px;
		margin-bottom: 0;
	}
	.movie_item a img {
		border-radius: 10px;
	}
	.movie_txt {
		font-size: 24px;
		margin-top: 6px;
	}
	.play_svg {
		width: 93px;
		height: 93px;
		top: -42px;
	}
}

/*play btn hover animation*/
.movie_playBorder_under {
	stroke-dasharray: 252;
	stroke-dashoffset: 252;
}

@media screen and (min-width: 769px) {
	.movie_playBorder_under {
		-webkit-transition: stroke-dashoffset 1s ease;
		transition: stroke-dashoffset 1s ease;
	}
	.movie_playBody {
		transition: fill 0.5s ease-out .8s;
	}
	.modal_movie:hover .movie_playBorder_under {
		stroke-dashoffset: 0;
	}
	.modal_movie:hover .movie_playBody {
		fill: rgba(195,0,47,0.9);
	}
}

@media screen and (max-width: 768px) {
	.modaal-video-wrap {
		margin: auto 0;
	}
}
