@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&Zen+Maru+Gothic&display=swap');


* {
	box-sizing: border-box;
	font-family: "Zen Maru Gothic", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	font-weight: 500;
}
address, em {
	font-style: normal;
}

/* 共通設定 */
.viewpc {
	display: block;
}
.viewsp {
	display: none;
}

/* ---------- color  ---------- */
:root {
	--texcolor01: #333333;
	--texcolor02: #666666;
	--texcolor03: #036EB8;
	--texcolor04: #1589c6;
	--themecolor: #00AFDD;
	--accentcolor: #49BCBD;
	--blue: #0092D8;
	--pink: #E73278;
	--orange: #F39800;
	--green: #22AC38;
	--blue_pale: #D0EFFD;
	--pink_pale: #FFE2ED;
	--orange_pale: #FFEED2;
	--green_pale: #D6F7DB;
	--mapbgcolor: #FFFCDB;
	--bgcolor: #F3F3F3;
	--cautioncolor: #FF2200;
	--bordercolor: #C1C1C1;
	--bg_blue: #E3F6FB;
}

/* ---------- reset  ---------- */
html, body {
    width: 100%;
}

html {
	font-size: 62.5%;
}

body {
	color: var(--texcolor);
	font-size: 1.4rem;
	line-height: 1.8;
	background-color: #fff;
}

dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,input,p,blockquote,fieldset,div {
	margin: 0;
	padding: 0;
}

table,pre,code,select,option,input,textarea,kbd,var,ins,del,samp {
	font-size: 1.4rem;
}

optgroup {
	font-size: 1.4rem;
	font-weight:bold;
}

h1,h2,h3,h4,h5,h6 {
	font-weight: normal;
}
p {
	font-size: 1.4rem;
	line-height: 1.8;
	margin: 0 0 0.5em 0;
	text-align: left;
}
ul {
	display: flex;
	li {
		list-style: none;
	}
}

table,th,td {
	margin: 0;
	padding: 0;
	border-collapse: separate;
	border-spacing: 0;
	text-align: center;
}

th,caption {
	text-align: left;
}

address,cite,dfn,em,b,strong,var,th,ins,del,samp {
	font-weight: normal;
	font-style: normal;
}

img,fieldset {
	border: none;
}
hr {
	border: solid #cdcdcd;
	border-width:1px 0 0 0;
	height:1px;
	clear: right;
}

/* Link Style */

a,a:link,a:active,a:visited {
	color: var(--texcolor03);
	text-decoration: none;
	outline: none;
}
a:focus {
	outline: none;
}
a:hover {
	color: var(--texcolor);
	text-decoration: none;
}

a img {
	border: 0;
}
a:hover img {
	filter: alpha(opacity=60);
	-moz-opacity:0.6;
	opacity:0.6;
	transition: 0.2s all ease 0s;
}

.inner {
	width: 1100px;
	margin: 0 auto;
}


.top_nomargin {
	margin-top: 0!important;
}
.bottom_nomargin {
	margin-bottom: 0!important;
}
.text_strong {
	font-weight: bold;
}
.text_underline {
	text-decoration: underline;
}
.align_left {
	text-align: left!important;
}
.align_right {
	text-align: right!important;
}
.align_center {
	text-align: center!important;
}
.margintop0 {
	margin-top: 0px!important;
}
.margintop10 {
	margin-top: 10px!important;
}
.margintop30 {
	margin-top: 30px!important;
}
.margintop40 {
	margin-top: 40px!important;
}
.margintop60 {
	margin-top: 60px!important;
}
.marginbottom0 {
	margin-bottom: 0!important;
}
.marginbottom30 {
	margin-bottom: 30px!important;
}
.marginbottom60 {
	margin-bottom: 60px!important;
}
.marginleft0 {
	margin-left: 0!important;
}
.marginleft30 {
	margin-left: 30px!important;
}

.cap {
	font-size: 1.4rem!important;
	line-height: 1.3;
}

.text_red {
	color: var(--orange)!important;
}
.text_blue {
	color: var(--texcolor02);
}
.text_strong {
	font-weight: 600;
}
.text_big {
	font-size: 2.4rem!important;
}

.nowrap {
	white-space: nowrap;
}

/* ---------  animation --------- */
.invisible {
 transition: opacity 0.5s ease;
 opacity: 0;
}

.visible {
 transition: opacity 0.5s ease;
 opacity: 1.0;
}

.deley01 {
 animation-delay: 0.2s;
}

.deley02 {
 animation-delay: 0.3s;
}

.deley03 {
 animation-delay: 0.4s;
}

.deley04 {
 animation-delay: 0.5s;
}

.deley05 {
 animation-delay: 0.6s;
}

.deley06 {
 animation-delay: 0.7s;
}

.deley07 {
 animation-delay: 0.8s;
}

.deley08 {
 animation-delay: 0.9s;
}

.deley09 {
 animation-delay: 1.0s;
}

.deley10 {
 animation-delay: 1.1s;
}

.deley11 {
 animation-delay: 1.2s;
}

.deley12 {
 animation-delay: 1.3s;
}


.wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.scroll_off {
	overflow: hidden;
}

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


/* ===============
main
================*/
main {
	width: 100%;
	img {
		width:  100%;
		height:  auto;
	}

}

/* index */
/* ===============
#topimage
================*/
#topimage {
	width: 1020px;
	margin: 0 auto;
	position: relative;
	padding-top: 40px;

	h1 {
		width: 1036px;
		margin: 0 auto 0 auto;
	}

	.copy_free {
		position: absolute;
		top: 320px;
		right: -70px;
		width: 122px;
		height: auto;
	}
	.copy_start {
		position: absolute;
		top: 420px;
		left: 230px;
		width: 360px;
		height: auto;
	}

	.chara_area {
		width: 1200px;
		height: 600px;
		margin: 0 auto;
		background: url("../images/common/illust_taitobg.svg") no-repeat top left;
		width: 1092px;
		position: relative;
		.chara_img {
			position: absolute;
			top: -60px;
			right: 30px;
			width: 533px;
		}
		.chara_copy {
			position: absolute;
			right: 30px;
			top: 450px;
			width: 93px;
		}
	}
}



@media all and (min-width: 1600px) {

}


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

	.indexmenu_area {
		width: 90%;
		max-width: 1080px;
		margin: 0 auto;
		display: flex;
		justify-content: center;
		gap: 1%;
		flex-wrap: wrap;
		.menu_item {
			flex-basis: 257px;
			margin-bottom: 18px;
			a {
				display: flex;
				align-items: center;
				flex-flow: column;
				flex-wrap: wrap;
				justify-content: center;
				width: 257px;
				height: 257px;
				border-radius: 257px;
				transition: 0.2s all ease 0s;
				.menuitem_icon {
					img {
						display: block;
						width: 100px;
						height: auto;
						margin: 0 auto 10px auto;
					}
				}
				.img_s {
					width: 86px;
					img {
						display: block;
						width: 100%;
						height: auto;
						margin: 0 auto 10px auto;
					}
				}
				.menuitem_text {
					height: 3rem;
					width: 100%;
					display: block;
					align-items: center;
					text-align: center;
					margin: 0 auto;
					font-size: 2rem;
					font-weight: 800;
					line-height: 1.3;
					color: var(--texcolor01);
				}
				.line2 {
					line-height: 1.3;	
				}
				.line3 {
					padding-bottom: 60px;
				}
			}
			a.btncolor_pink {
				background-color: var(--pink_pale);
				&:hover {
					border: 4px solid var(--pink);
				}
			}
			a.btncolor_orange {
				background-color: var(--orange_pale);
				&:hover {
					border: 4px solid var(--orange);
				}
			}
			a.btncolor_blue {
				background-color: var(--blue_pale);
				&:hover {
					border: 4px solid var(--blue);
				}
			}
			a.btncolor_green {
				background-color: var(--green_pale);
				&:hover {
					border: 4px solid var(--green);
				}
			}
		}
	}
}


/* ================
#index_detail
================== */
#index_detail {
	padding: 70px 0;
	h2 {
		width: 860px;
		margin: 0 auto 70px auto;
	}

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

	.system_point {
		width: 90%;
		max-width: 900px;
		display: flex;
		justify-content: space-between;
		margin: 40px auto;

		.systempoint_item {
			width: 100%;
			display: flex;
			align-items: center;
			.systempoint_item_img {
				flex-basis: 28%;
				margin-right: 1%;
				img {
					width: 170px;
				}
			}
			.systempoint_item_txt {
				flex-basis: 70%;
				font-size: 1.9rem;
				line-height: 1.6;
				font-weight: 600;
				color: var(--texcolor02);
				margin-left: 20px;
			}
		}
	}
	.left_item {
		flex-basis: 50%;
	}
	.right_item {
		flex-basis: 50%;
		img {
			width: 120px!important;
			margin-left: auto;
			display: block;
		}
	}
}

.app_download {
	width: 90%;
	max-width: 1000px;
	margin: 0 auto;
	background-color: var(--bg_blue);
	border-radius: 8px;
	padding: 20px 20px 14px 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 44px;
	.app_copy {
		font-size: 2.4rem;
		color: var(--texcolor03);
		font-weight: 700;
		line-height: 1;
	}
	.dl_btn {
		flex-basis: 200px;
	}
}



/* footer-area */

/* ================
#pagetop
================== */
#pagetop {
	display: none;
	position: fixed;
	right: 40px;
	bottom: 138px;
	width: 80px;
	height: 80px;
	background: url(../images/common/totop.svg) no-repeat right top;
	background-size: 80px;
	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: 1200px;
		margin: 0 auto;
		background: url("../images/common/illust_taito_line.svg") no-repeat right bottom var(--themecolor);
		background-size: 620px;
		display: flex;
		justify-content: flex-start;
		gap: 0 16px;
		align-items: flex-end;
		padding-bottom: 10px;
		.ftr_logo {
			flex-basis: 150px;
			width: 100%;
			background-color: #fff;
			border-radius: 0 0 10px 10px;
			display: flex;
			justify-content: center;
			align-items: center;
			padding: 14px;
			img {
				width: 90px;
				height: auto;
			}
		}
		.ftr_contact {
			padding: 14px 0 0 0;
			h4 {
				font-size: 1.6rem;
				color: #fff;
				font-weight: 500;
				font-family: "Noto Sans JP", sans-serif;
			}
			p {
				color: #fff;
				font-weight: 400;
				font-size: 1.4rem:;
				line-height: 1.5;
				margin-bottom: 0;
				font-family: "Noto Sans JP", sans-serif;
				span {
					font-size: 1.2rem;
				}
			}
		}
	}
	
}



