@charset "UTF-8";

/* ---------- mediaQuery  ---------- */


@media all and (max-width: 767px) {
.viewpc {
	display: none;
}
.viewtb {
	display: none;
}
.viewsp {
	display: block;
}
.inner {
	width: 90%;
	max-width: 900px;
}

img {
	width: 100%;
	height: auto;
}

/* ===============
body
================*/
body.index_body {
	width: 100%;
	margin: 0 auto;
	background-image: url("../images/common/bg_index_ellipse_sp.svg"),
	url("../images/common/bg_ellipse_blue_sp.svg");
	background-repeat: no-repeat, no-repeat;
	background-position: top center, center 0;
	background-size: 100%, 320px 100%;
	no-repeat top center;
	background-size: 100%;
}

/* ===============
header
================*/

/* ===============
#g-nav
================*/
#g-nav {
  position: fixed;
  z-index: 100;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100vh;
  background-color: var(--themecolor);
  transition: all 0.6s;
  color: #fff;
  padding: 66px 0 0 0;
  overflow: scroll;
  #g-nav-list {
		    position: relative;
		    width: 100%;
	    div {
	    	a {
					font-weight: 700;
					padding: 10px;
					transition: 0.2s all ease 0s;
					color: var(--texcolor01);
					font-size: 1.6rem;
					letter-spacing: -0.02em;
					display: flex;
					width: 100%;
					height: 70px;
					justify-content: flex-start;
					align-items: center;
					line-height: 1.4;

					&:active {
						cursor: pointer;
					}
					&:hover {
						text-decoration: none;
						cursor: pointer;
					}

					.menuitem_icon {
						flex-basis: 40px;
						margin-right: 10px;
						padding-top: 8px;
						img {
						}
						img.img_s {
							width: 40px;
							display: block;
							padding-right: 6px;
							padding-bottom: 6px;
						}
						img.img_ss {
							width: 36px;
							display: block;
							padding-left: 8px;
						}
					}
				}
				a.btncolor_pink {
						background-color: var(--pink_pale);
						border-bottom: 2px solid #fff;
						&:hover {
							border-bottom: 2px solid var(--pink);
						}
					}
				a.btncolor_orange {
						background-color: var(--orange_pale);
						border-bottom: 2px solid #fff;
						&:hover {
							border-bottom: 2px solid var(--orange);
						}
					}
				a.btncolor_blue {
						background-color: var(--blue_pale);
						border-bottom: 2px solid #fff;
						&:hover {
							border-bottom: 2px solid var(--blue);
						}
					}
				a.btncolor_green {
						background-color: var(--green_pale);
						border-bottom: 2px solid #fff;
						&:hover {
							border-bottom: 2px solid var(--green);
						}
					}
	  	}
	}
}
#g-nav.panelactive {
  right: 0; 
}

.openbtn1 {
  position: fixed;
  z-index: 9999;
  top: 4px;
  right: 8px;
  cursor: pointer;
  width: 62px;
  height: 62px;
	background-color: var(--texcolor03);
	border-radius: 60px;
	transition: 0.2s all ease 0s;
	border: 2px solid #fff;
	&:hover {
	  cursor: pointer;
	  background-color: #fff;
	  border: 2px solid var(--texcolor03);
	  span {
	  	background-color: var(--texcolor03);
	  }
	  div {
	  	color: var(--texcolor03);
	  }
	}
	span {
		display: inline-block;
		transition: all .4s;
		position: absolute;
		left: 14px;
		height: 2px;
		background-color: #fff;
		width: 30px;
		&:nth-of-type(1) {
			 top:16px;
		}
		&:nth-of-type(2) {
			 top:23px;
		}
	}
	div {
		font-size: 1.1rem;
		text-align: center;
		margin: 28px 0 0 3px;
		color: #fff;
		font-weight: 500;
		font-family: "Noto Sans JP", sans-serif;
	}
}
.openbtn1.active {
	top: 4px;
  right: 18px;
	span:nth-of-type(1) {
	  top: 13px;
	  left: 18px;
	  transform: translateY(6px) rotate(-45deg);
	  width: 40%;
	}
	span:nth-of-type(2){
    top: 25px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 40%;
	}
}


/* ===============
main
================*/
main {
	.main_contents {
		.left_main {
			flex-basis: 100%;
		}
	}
}


/* index */
/* ===============
#topimage
================*/
#topimage {
	width: 100%;
	margin: 0 auto;
	position: relative;
	padding-top: 22px;

	h1 {
		width: 98%;
		max-width: 390px;
		height: 210px;
		margin: 0 auto 0 auto;
		margin-bottom: 0;
	}

	.copy_free {
		position: absolute;
		width: 72px;
		height: 80px;
		margin-left: auto;
		top: 170px;
		right: 2%;
		margin-bottom: 0;
	}
	.copy_start {
		position: absolute;
		width: 160px;
		height: 80px;
		top: 200px;
		left: calc(50% - 140px);
		margin-bottom: 0;
	}

	.chara_area {
		width: 100%;
		height: auto;
		margin: 20px auto 0 auto;
		background: url("../images/common/illust_taitobg.svg") no-repeat center 0;
		background-size: 90%;
		position: relative;
		.chara_img {
			position: relative;
			top: -20px;
			right: 6%;
			width: 185px;
			margin-left: auto;
		}
		.chara_copy {
			position: absolute;
			right: 170px;
			top: 160px;
			width: 63px;
		}
	}
}

/* ===============
#index_menu
================*/
#index_menu {
	width: 100%;
	padding-bottom: 0;

	.indexmenu_area {
		width: 90%;
		margin: 0 auto;
		display: block;
		.menu_item {
			width: 100%;
			margin-bottom: 4px;
			a {
				display: flex;
				align-items: center;
				flex-flow: row;
				flex-wrap: nowrap;
				justify-content: flex-start;
				width: 100%;
				height: 72px;
				border-radius: 80px;
				transition: 0.2s all ease 0s;
				padding: 0 0 0 20px;
				.menuitem_icon {
					flex-basis: 50px;
					margin-right: 10px;
					img {
						display: block;
						width: 50px;
						height: auto;
						margin: 0 auto;
					}
				}
				.img_s {
					width: 50px;
					img {
						display: block;
						width: 45px;
						height: auto;
						margin: 0 20px 0 0;
					}
				}
				.menuitem_text {
					flex-basis: calc(100% - 70px);
					width: 100%;
					display: block;
					text-align: left;
					margin: 0;
					padding: 4px 0 0 0;
					font-size: 1.8rem;
					font-weight: 800;
					line-height: 1.2;	
					color: var(--texcolor01);
				}
				.line2 {
					line-height: 1.2;	
				}
				.line3 {
					padding-bottom: 0;
					line-height: 1.2;	
					margin-bottom: 20px;
				}
				.line4 {
					margin-bottom: 20px;
				}
			}
			a.btncolor_pink {
				background-color: var(--pink_pale);
				border: 4px solid var(--pink_pale);
				&:hover {
					border: 4px solid var(--pink);
				}
			}
			a.btncolor_orange {
				background-color: var(--orange_pale);
				border: 4px solid var(--orange_pale);
				&:hover {
					border: 4px solid var(--orange);
				}
			}
			a.btncolor_blue {
				background-color: var(--blue_pale);
				border: 4px solid var(--blue_pale);
				&:hover {
					border: 4px solid var(--blue);
				}
			}
			a.btncolor_green {
				background-color: var(--green_pale);
				border: 4px solid var(--green_pale);
				&:hover {
					border: 4px solid var(--green);
				}
			}
		}
	}
}


/* ================
#index_detail
================== */
#index_detail {
	width: 100%;
	margin: 0 auto;
	padding: 40px 0 40px 0;
	h2 {
		width: 90%;
		margin: 0 auto 10px auto;
	}

	.system_outline {
		width: 100%;
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		.outline_item {
			flex-basis: 100%;
			width: 100%;
			display: block;
			flex-flow: column;
			justify-content: flex-start;
			margin-bottom: 10px;
			align-items: flex-start;
			flex-wrap: wrap;
			h3 {
				flex-basis: 115px;
				width: 115px;
				margin-right: 30px;
				margin-bottom: 0;
				border: 2px solid var(--texcolor03);
				border-radius: 40px;
				color: var(--texcolor03);
				font-size: 1.8rem;
				font-weight: 700;
				text-align: center;
				padding: 2px 0;
			}
			div {
				flex-basis: auto;
				color: var(--texcolor03);
				font-size: 1.6rem;
				font-weight: 600;
				letter-spacing: 0.1em;
				margin-bottom: 0;
				span {
					font-size: 3rem;
					font-weight: 900;
					line-height: 1.2;
				}
			}
		}
		.outline_item2 {
			flex-basis: 100%;
			width: 100%;
			display: flex;
			justify-content: flex-start;
			margin-bottom: 12px;
			align-items: center;
			h3 {
				flex-basis: 115px;
				width: 115px;
				margin-right: 10px;
				margin-bottom: 0;
				border: 2px solid var(--texcolor03);
				color: var(--texcolor03);
				font-size: 1.8rem;
				font-weight: 700;
				text-align: center;
				border-radius: 40px;
				padding: 2px 0;
			}
			div {
				flex-basis: auto;
				color: var(--texcolor03);
				font-size: 1.6rem;
				font-weight: 600;
				letter-spacing: 0.1em;
				margin-bottom: 0;
				span {
					font-size: 2rem;
					font-weight: 700;
				}
			}
		}
		.outline_item3 {
			flex-basis: 100%;
			width: 100%;
			display: flex;
			justify-content: flex-start;
			margin-bottom: 2px;
			align-items: center;
			h3 {
				flex-basis: 115px;
				width: 115px;
				margin-right: 10px;
				margin-bottom: 0;
				border: 2px solid var(--texcolor03);
				color: var(--texcolor03);
				font-size: 1.8rem;
				font-weight: 700;
				text-align: center;
				border-radius: 40px;
				padding: 2px 0;
			}
			div {
				flex-basis: auto;
				color: var(--texcolor03);
				font-size: 1.6rem;
				font-weight: 600;
				letter-spacing: 0.02em;
				margin-bottom: 0;
				span {
					font-size: 1.6rem;
					font-weight: 700;
				}
			}
		}
	}

	.system_point {
		width: 100%;
		display: flex;
		justify-content: center;
		margin: 20px auto;
		flex-wrap: wrap;

		.systempoint_item {
			width: 100%;
			margin: 0 auto 20px auto;
			display: flex;
			align-items: center;
			justify-content: center;
			.systempoint_item_img {
				flex-basis: 35%;
				width: 100%;
				margin-right: 1%;
				img {
					width: 100%;
				}
			}
			.systempoint_item_txt {
				flex-basis: 55%;
				font-size: 1.6rem;
				line-height: 1.6;
				font-weight: 600;
				color: var(--texcolor02);
				margin-left: 20px;
			}
		}
	}
	.left_item {
		flex-basis: 100%;
		width: 100%;
		margin: 0 auto;
	}
	.right_item {
		flex-basis: 100%;
		width: 100%;
		margin: 0 auto;
		img {
			width: 100%!important;
			max-width: 160px;
			display: block;
			margin-left: auto;
		}
	}
}

.app_download {
	width: 100%;
	margin: 0 auto 30px auto;
	border-radius: 20px;
	padding: 20px 20px 14px 20px;
	display: block;
	justify-content: center;
	align-items: center;
	gap: 44px;
	.app_copy {
		font-size: 2.1rem;
		color: var(--texcolor03);
		font-weight: 700;
		line-height: 1;
		text-align: center;
		margin-bottom: 30px;
	}
	.dl_btn {
		width: 200px;
		margin: 15px auto 15px auto;
	}
}





/* footer-area */

/* ================
#pagetop
================== */
#pagetop {
	display: none;
	position: fixed;
	right: 0;
	bottom: 210px;
	width: 60px;
	height: 60px;
	background: url(../images/common/totop.svg) no-repeat right top;
	background-size: 60px;
	z-index: 99;
 	transition: 0.3s all ease 0s;
	opacity: 1;
 	&:hover {
		transform: scale(1.2);
		opacity: 0.8;
	}
	a {
		display: block;
		height: 100%;
		overflow: hidden;
		text-indent: 200%;
		white-space: nowrap;
	}
}

/* ===================
footer
====================== */
footer {
	width: 100%;
	margin-top: auto;
	position: relative;
	background-color: var(--themecolor);
	.inner {
		width: 98%;
		margin: 0 auto;
		background: url("../images/common/illust_taito_line.svg") no-repeat right bottom var(--themecolor);
		background-size: 100%;
		display: block;
		padding-bottom: 30px;
		.ftr_logo {
			width: 83px;
			margin: 0 auto;
			background-color: #fff;
			border-radius: 0 0 10px 10px;
			display: flex;
			justify-content: center;
			align-items: center;
			padding: 14px;
			img {
				width: 52px;
				height: auto;
			}
		}
		.ftr_contact {
			padding: 14px 0 0 0;
			h4 {
				font-size: 1.4rem;
				color: #fff;
				font-weight: 500;
				font-family: "Noto Sans JP", sans-serif;
				text-align: center;
			}
			p {
				color: #fff;
				font-weight: 400;
				font-size: 1.2rem:;
				line-height: 1.3;
				text-align: center;
				margin-bottom: 0;
				font-family: "Noto Sans JP", sans-serif;
				span {
					font-size: 1.15rem;
					text-align: center;
				}
			}
		}
	}
	
}

}