@charset "utf-8";

/* 概要 */
.featureContents{
	gap: 20px;
}
.featureContents .featureImg{
	width: min(100% ,300px);
}
.featureContents .featureText{
	flex: 1;
}
.featureText ul.flexBox{
	width: fit-content;
	margin: 10px auto;
	flex-direction: column;
	border: 3px solid var(--mainColor);
	border-radius: 10px;
	padding: 20px;
}
.featureText ul.flexBox li p{
	display: flex;
	padding: 5px 0;
	font-size: clamp(16px, (100vw - 600px) * 6 / 600 + 18px, 19px);
	line-height: 1.5em;
}
.featureText ul.flexBox li p::before{
	display: block;
	font-family: "Font Awesome 5 Free";
	content:"\f00c";
	font-weight: 900;
	font-size: 90%;
	color: var(--mainColor);
	padding: 5px 5px 0 0;
}
/* 課題解決 */
.problemSolvingContents{
	width: min(100% ,300px);
}
.assignmentBox::after{
	font-family: "Font Awesome 5 Free";
	content:"\f0d7";
	font-weight: 900;
	font-size: 400%;
	color: var(--mainColor);
	margin: 0 auto;
	width: fit-content;
	display: block;
}
.assignmentBox h3::after{
	font-family: "Font Awesome 5 Free";
	content:"\f103";
	font-weight: 900;
	font-size: 300%;
	color: var(--mainColor);
	margin: 30px auto 0;
	width: fit-content;
	display: block;
}
.assignment,.solution{
	padding: 15px;
	border-radius: 10px;
	margin: 15px auto;
	display: flex;
	flex-direction: column;
}
.assignment{
	border: 7px solid var(--lightColor1);
}
.solution{
	border: 7px solid var(--accentColor1);
}
:is(.assignment,.solution) >span{
	display: flex;
	gap: 10px;
	width: 130px;
	margin-bottom: 10px;
	padding: 10px 20px 10px 0;
	border-radius: 50px;
	font-weight: 700;
}
.assignment p{
	flex-basis: 85px;
}
.assignment >span{
	background: var(--lightColor2);
}
.solution >span{
	background: var(--accentColor2);
}
.solution ul{
	padding-left: 10px;
	margin: 0;
	flex-basis: 148px;
}
.solution li{
	list-style: none;
	font-weight: 700;
	margin-bottom: 10px;
	padding: 5px 0;
}
.solution li span{
	border-bottom: 4px solid var(--accentColor2);
	line-height: 1.6em;
}
.assignment >span::before{
	font-family: "Font Awesome 5 Free";
	content:"\f57a";
	font-weight: 900;
	font-size: 300%;
	color: var(--lightColor1);
	display: block;
}
.solution >span::before{
	font-family: "Font Awesome 5 Free";
	content:"\f118";
	font-weight: 900;
	font-size: 300%;
	color: var(--accentColor1);
	display: block;
}
/* 機能 */
.functionPoint{
	gap: 25px;
	align-items: center;
	margin-bottom: 20px;
}
.functionPoint span {
	position: relative;
	padding: 10px 20px;
	color: #fff;
	font-weight: 700;
	border-radius: 5px;
	background: var(--mainColor);
	text-shadow: 2px 2px 2px #666;
}
.functionPoint span:after {
	content: "";
	position: absolute;
	top: 50%;
	right: -20px;
	margin-top: -10px;
	width: 0;
	height: 0;
	border: 10px solid transparent;
	border-left: 12px solid var(--mainColor);
}
.functionPoint h3{
	width: fit-content;
	color: var(--mainColor);
	border-bottom: 1px solid var(--mainColor);
	padding-bottom: 5px;
	
}
.functionBox{
	margin-top: 20px;
	padding: 15px;
	gap: 20px;
}
.functionTitle{
	width: min(100% ,200px);
}
.functionTitle h4{
	font-weight: 700;
	text-align: center;
	background: var(--mainColor);
	color: #fff;
	padding: 10px 20px;
	margin-bottom: 20px;
	text-shadow: 2px 2px 2px #666;
}
.functionContents{
	flex: 1;
	padding: 10px;
	border: 5px solid var(--lightColor1);
	border-radius: 10px;
}
.functionContents.twoColumn ul.flexBox,.functionContents.oneColumn div.flexBox{
	gap: 10px;
	justify-content: center;
	flex-wrap: nowrap;
}
.functionContents ul li{
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: center;
}
.functionImg{
	width: min(100% ,360px);
}
.functionContents ul li span{
	font-weight: 700;
}
.functionContents a{
	font-weight: 700;
	width: fit-content;
	border-radius: 5px;
	padding: 10px 20px;
	background: var(--accentColor1);
	margin: 20px auto 0;
}
/* 動作環境 */
.systemsTable{
	margin: 10px 0;
}
.systemsTable table{
	width: 1000px;
}
.systemsTable table :is(th,td){
	border: 1px solid #444;
	padding: 10px;
}
.systemsTable table th{
	background: #ddd;
}
#system h3{
	width: fit-content;
	background: #ddd;
	padding: 5px 20px;
}

@media screen and (max-width: 1040px){
	.systemsTable{
		overflow-x: scroll;
	}
}
@media screen and (max-width: 984px) {
	.solution ul{
		flex-basis: auto;
	}
}
@media screen and (max-width: 800px){
	.functionContents.twoColumn ul.flexBox,
	.functionContents.oneColumn div.flexBox{
		flex-wrap: wrap;
	}
}
@media screen and (max-width: 660px){
	.functionBox{
		flex-direction: column;
		align-items: center;
	}
}
@media screen and (max-width: 550px){
	.sp{
		display: inline;
	}
	#system table :is(th,td){
		font-size: 14px;
	}
	#system table th{
		width: 90px;
	}
}
@media screen and (max-width: 450px){
	.functionPoint{
		flex-direction: column;
		gap: 15px;
	}
	.functionPoint span:after {
		left: 50%;
		right: -20px;
		margin-top: 20px;
		margin-left: -10px;
		border: 10px solid transparent;
		border-top: 12px solid var(--mainColor);
	}
}