:root{
	--theme: 168, 150, 255;

}

body{
	margin: 0;
	padding: 0;

	font-family: "heisei-maru-gothic-std", sans-serif;
	font-weight: 800;
	font-style: normal;
	font-size: 1rem;
	line-height: 1.8;
	letter-spacing: 0.04rem;
	background: #f1f1f1;
}

strong{
	color: red;
}

.modal-wrapper{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #0000006e;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 100;
	opacity: 0;
	visibility: hidden;
	transition: .3s;
}
.modal-wrapper.open{
	opacity: 1;
	visibility: visible;
}
.modal{
	position: relative;
    max-width: 520px;
	margin: 40px;
	padding: 20px;
	width: 100%;
	height: 400px;
	background: white;
	border-radius: 20px;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}
.modal .x{
	cursor: pointer;
	position: absolute;
	top: -10px;
	right: -10px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 40px;
	height: 40px;
	background: #57bbe9;
	color: white;
	font-size: 2.0rem;
	border-radius: 50%;
}
.modal .title{
	margin-top: -10px;
	margin-bottom: -10px;
	font-family: "ab-tombo-bold", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.0rem;
	color: #5dc3f1;
}
.modal .dl{
	position: relative;
	text-indent: 0px;
	cursor: pointer;
	user-select: none;
	width: 140px;
	height: 40px;
	display: flex;
	justify-content: center;
	border-radius: 20px;
	box-sizing: border-box;
	border: 1px solid #5dc3f1;
	background: #57bbe9;
	color: white;
	line-height: 42px;
	overflow: hidden;
	text-decoration: none;
	transition: .3s;
}
.modal .dl:hover{
	background: white;
	color: #57bbe9;
}
.modal img.wallpaper{
	margin: 16px 0 10px 0;
	height: 250px;
	aspect-ratio: 9 / 16;
	object-fit: cover;
	border: 1px solid #bebebe;
	transition: .3s;
}
@media (min-width: 880px) {
	.modal img.wallpaper{
		aspect-ratio: 16 / 9;
	}
}

.main{
	position: relative;
	padding: 0;
    margin: 0 auto 0 auto;
    max-width: 860px;
	min-height: 100vh;
	background: #ffffff;
}

.qa .title{
	font-family: "ab-tombo-bold", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.4rem;
	text-align: center;
	color: #5dc3f1;
	padding-top: 30px;
}
.qa .title.ban{
	color: #f15d89;
}
.qa .subtitle{
	color: #5dc3f1;
	text-align: center;
	margin-bottom: 8px;
}
.qa .subtitle.ban{
	color: #f15d89;
}
.set{
	padding: 12px;
	border-bottom: 1px solid #bebebe;
}
.set:nth-of-type(3){
	border-top: 1px solid #bebebe;
}
.set:nth-of-type(13){
	border-top: 1px solid #bebebe;
}
.set:nth-of-type(7){
	margin-top: 24px;
	border-top: 1px solid #bebebe;
}
.question{
	cursor: pointer;
	user-select: none;
}
.question{
	text-indent: -50px;
	padding-left: 50px;
}
.question::before{
	content: 'Q';
	display: inline-flex;
	justify-content: center;
	text-indent: 0px;
	text-align: center;
	margin-right: 10px;
	font-size: 24px;
	line-height: 44px;
	width: 40px;
	height: 40px;
	background: linear-gradient(146deg, #81d1f7 0%, #57bbe9 100%);
	color: white;
}
.question.ban::before{
	font-family: "Font Awesome 5 Free";
	content: '\f05e';
	line-height: 40px;
	background: linear-gradient(146deg, #ff84a8 0%, #f15d89 100%);
}
.question.ban.b2::before{
	font-family: "Font Awesome 5 Free";
	content: '\f071';
	line-height: 40px;
	background: linear-gradient(146deg, #ffd272 0%, #ffce63 100%);
}
.question::after{
	content: '+';
	display: inline-flex;
	justify-content: center;
	text-indent: 0px;
	text-align: center;
	margin-left: 10px;
	font-size: 24px;
	line-height: 32px;
	width: 30px;
	height: 30px;
	color: #5dc3f1;
	border: 1px solid #5dc3f1;
	border-radius: 50%;
	transition: .3s;
}
.question.ban::after{
	color: #f15d89;
	border: 1px solid #f15d89;
}
.question.ban.b2::after{
	color: #ffce63;
	border: 1px solid #ffce63;
}
.question.close::after{
	transform: rotate(45deg);
}
.answer{
	display: none;
	text-indent: -50px;
	padding-left: 50px;
}
.answer::before{
	content: 'A';
	display: inline-flex;
	justify-content: center;
	text-indent: 0px;
	text-align: center;
	margin-right: 10px;
	font-size: 24px;
	line-height: 44px;
	width: 40px;
	height: 40px;
	background: #f15d89;
	color: white;
}
.answer.ban::before{
	font-family: "Font Awesome 5 Free";
	content: '\21';
	line-height: 40px;
	background: #ffffff;
	border: 1px solid #f15d89;
	box-sizing: border-box;
	color: #f15d89;
}
.answer.ban.b2::before{
	border: 1px solid #ffce63;
	color: #ffce63;
}
.ok{
	position: relative;
	text-indent: 0px;
	cursor: pointer;
	user-select: none;
	width: 100px;
	height: 40px;
	display: flex;
	justify-content: center;
	border-radius: 20px;
	box-sizing: border-box;
	border: 1px solid #f15d89;
	color: white;
	overflow: hidden;
}
.ok .back{
	position: absolute;
	top: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	background: linear-gradient(146deg, #ff84a8 0%, #f15d89 100%);
	line-height: 44px;
	z-index: 5;
	transition: .3s;
}
.ok .text{
	z-index: 10;
}
.ok .icon{
	position: absolute;
	width: 100%;
	height: 100%;
	top: -1px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.2rem;
	color: #f15d89;
	z-index: 10;
	transform: scale(0);
	transition: .3s;
}
.b2 .ok{
	border: 1px solid #ffce63;
}
.b2 .ok .back{
	background: linear-gradient(146deg, #ffd272 0%, #ffce63 100%);
}
.b2 .ok .icon{
	color: #ffce63;
}
.ok.checked{
}
.ok.checked .back{
	top: 40px;
}
.ok.checked .text{
	opacity: 0;
}
.ok.checked .icon{
	transform: scale(1.0);
}
.button-wrapper{
	position: relative;
	margin-top: 6px;
	width: 100px;
	height: 40px;
}
.button-wrapper canvas{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.footer{
	width: 100%;
	height: 80px;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #7b7b86;
	color: white;
	font-weight: 400;
}