/* =========================================================
   contents.css : コンテンツ内で使用するCSS
   ヘッダー・フッター・フォームなど共通部分は base.css に記述
   ========================================================= */

/*== link ==*/
a[target="_blank"]:after {
	display: inline-block;
	content: "\f35d";
	color: inherit;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	padding-left: 0.4em;
}

.btn a,
a.btn,
label.btn{
	display: inline-block;
	background: linear-gradient(90deg, var(--color_point-grad_end) 0%, var(--color_point-grad_start) 100%);
	box-shadow: 0px 5px 12px var(--color_shadow);
	border: none;
	padding: 0.4em 2em 0.4em 1.6em;
	text-decoration: none;
	color: var(--color_white);
	font-weight: bold;
	text-align: center;
}
.btn a:hover,
a.btn:hover,
label.btn:hover{
	cursor: pointer;
	transition: all .3s;
	opacity: 0.85;
}

.btnArea{
	display: flex;
	justify-content:center;
	gap:1em;
}
.btnArea a{
	width: 50%;
	padding: 1em 2em;
	text-align:center;
	color: var(--color_white);
}
.btnArea a.contact{
	color: var(--color_white);
	background: linear-gradient(90deg, var(--color_point-grad_end) 0%, var(--color_point-grad_start) 100%);
}
.btnArea a.download{
	color: var(--color_primary);
	background: linear-gradient(90deg, var(--color_white) 0%, #D8D8D8 100%);
}
.btnArea a.contact:before,
.btnArea a.download:before {
	display: inline-block;
	content: "";
	width: 1em;
	height: 1em;
	vertical-align: middle;
	margin: -0.2em 0.5em 0 -1em;
}
.btnArea a.contact:before { background: url("../img/common/icon_contact.svg") no-repeat 50% 50% / contain;}
.btnArea a.download:before { background: url("../img/common/icon_download.svg")no-repeat 50% 50% / contain;}

@media screen and (max-width: 896px) {
	.btnArea a{ padding: 1em; }
}


/*== label ==*/
.hl1 {
	color: var(--color_main);
	font-size: var(--fs-xl);
	font-family: var(--family-min);
	font-weight: bold;
	text-align: center;
	line-height: 1.3;
	margin: 0 0 1em 0;
}
.hl_white {color: var(--color_white);}

@media screen and (max-width: 896px) {
	.hl1 { font-size: var(--fs-l);}
}

.hl2 {
	color: var(--color_main);
	font-size: var(--fs-l-m);
	font-family: var(--family-min);
	font-weight: bold;
	text-align: left;
	line-height: 1.3;
	margin-top: 1.5em;
}

@media screen and (max-width: 896px) {
	.hl2 { font-size: var(--fs-l);}
}



/*== table ==*/
table { width: 100%; border: none; margin: 0;}
th, td {
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	word-break: break-all;
	padding: 0.75em;
}
th {
	width: 25%;
	background-color: var(--color_gray-light);
}
thead th {width: auto;}

/* mv
-------------------------------------------------------------- */

.mv {
	position: relative;
	background:linear-gradient( 135deg, var(--color_point2-grad_start) 0%, var(--color_point2-grad_end) 100% );
	padding: 70px 0 0;
	z-index: 1;
	overflow: hidden;
}
.mv::before {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 40%;
	height: 60%;
	background: url("../img/mv/mv_scs_evaluation_system.png") no-repeat 90% 100% / contain;
	z-index: 1;
}
.mv::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 30%;
	height: 100%;
	background-color: var(--color_point2-grad_start);
	z-index: 0;
	clip-path: polygon(30% 0, 100% 0, 100% 100%, 10% 100%);
}
.mv > .inr {
	width: 100%;
	margin: 0 auto;
	padding:8% 4%;
	position: relative;
	z-index: 1;
}

.mv p { width: 60%; color: var(--color_white);}

.mv p > .clYellow {
	color: #fff500;
}

.mv hgroup {
	font-size: 1.95vw;
	font-family: var(--family-min);
	font-weight: bold;
	line-height: 1.2;
}
.mv hgroup h1 {
	display: inline-block;
	background-color: var(--color_white);
	color: var(--color_main);
	font-size: 2.2em;
	padding: 0.1em;
}
.mv hgroup h1 > small { font-size: 0.6em;}
.mv hgroup p { font-size: var(--fs-l-m); margin: 0.6em 0 0;}
.mv hgroup p > span { color: var(--color_marker);}
.mv .txt { font-size: 1.25vw; line-height: 1.8;}

.mv .btnArea{ width:60%; margin: 3em 0 0; font-size: 1.25vw;}


@media screen and (max-width: 1640px) {
	.mv hgroup { font-size: 1.95vw;}
	.mv .btnArea{ font-size: 1.4vw;}
}
@media screen and (max-width: 1366px) {
	.mv hgroup { font-size: 1.84vw;}
}
@media screen and (max-width: 1024px) {
	.mv p,
	.mv .btnArea{ width:66%; font-size: inherit;}
	.mv .txt { font-size: 1em;}
}
@media screen and (max-width: 896px) {
	.mv::before { width: 32%;}
}
@media screen and (max-width: 480px) {
	.mv::before {
		width: 42%;
		background-position: 10px 100%;
	}
	.mv p { width: auto;}
	.mv hgroup { font-size: 5vw;}
	.mv hgroup p { font-size: 1.8em;}
	.mv .btnArea {
		width: 55%;
		flex-flow: column nowrap;
		margin: 6% 0 19%;
	}
	.mv .btnArea a { width: 100%;}
}


/* module
-------------------------------------------------------------- */
.contents{ padding-right: 28%; }
.noForm .contents {
	width: 100%;
	max-width: 1366px;
	padding: 60px 4% 4%;
	margin: 0 auto;
}

@media screen and (max-width: 1366px) {
	.contents{ padding-right: 32%; }
}
@media screen and (max-width: 1024px) {
	.contents{ padding-right: 0; }
}

/*== section ==*/
.sec {padding: 6% 4%;}
.sec > .inr {
	width: 1240px;
	max-width: 100%;
	margin: 0 auto;
}
.sec > .inr.widthS { width: 730px; }

.flexArea{
	display: flex;
	justify-content:space-between;
	flex-wrap: wrap;
}

@media screen and (max-width: 1366px) {
	.sec {padding: 8% 4%;}
}
@media screen and (max-width: 480px) {
	.sec {padding-top: 10%; padding-bottom: 10%;}
}


/* secAbout
-------------------------------------------------------------- */
.sec.secAbout{
	background: url("../img/about/bg_img.svg") no-repeat -18% center / 28% auto, var(--color_main-light);
	padding: 8% 10% 8% 20%;
}
.sec.secAbout h2{ text-align:left; }

@media screen and (max-width: 1024px){
	.sec.secAbout{ padding: 8% 4% 8% 20%;}
}
@media screen and (max-width: 480px){
	.sec.secAbout{
		background-size: 260px auto;
		background-position: center 130%;
		padding: 8% 4% 190px;
	}
}

/* secKadai
-------------------------------------------------------------- */
.kadaiList{
	width:32%;
	background-color:#EFEFEF;
	padding:3% 2%;
}
.kadaiList dt{
	text-align: center;
	font-size: 1.32em;
	font-weight:bold;
	line-height: 1.2;
	margin-bottom: 0.6em;
}

@media screen and (max-width: 1366px) {
	.kadaiList dt{font-size: 1.18em;}
}
@media screen and (max-width: 680px) {
	.kadaiList{
		width:100%;
		padding:4%;
	}
	.kadaiList dt{ text-align:left; }
	.kadaiList dt br{ display:none; }
}


/* secOsusume
-------------------------------------------------------------- */
.osusumeList{
	width:32%;
	padding:18% 2% 3% 2%;
	background-color: #E3F1FD;
	background-repeat: no-repeat;
	background-position: center 12%;
	background-size: 75%;
}
.osusumeList:nth-child(1){ background-image: url("../img/osusume/img01.svg"); }
.osusumeList:nth-child(2){ background-image: url("../img/osusume/img02.svg"); }
.osusumeList:nth-child(3){ background-image: url("../img/osusume/img03.svg"); }

.osusumeList dt{
	text-align: center;
	font-size: 1.32em;
	font-weight:bold;
	line-height: 1.2;
	margin-bottom: 0.6em;
}

@media screen and (max-width: 1366px) {
	.osusumeList dt{font-size: 1.18em;}
}
@media screen and (max-width: 680px) {
	.osusumeList{
		width:100%;
		padding: 4% 28% 4% 4%;
		background-position: 95% center;
		background-size: 22%;
	}
	.osusumeList dt{ text-align:left; }
	.osusumeList dt br{ display:none; }
}
@media screen and (max-width: 480px) {
	.osusumeList{
		padding: 6% 6% 32% 6%;
		background-position: center 94%;
		background-size: 52%;
	}
}


/* secService
-------------------------------------------------------------- */
.secService{ background: #F6F9FB;}
.serviceImg{ width: 30%; }

.serviceList{ width: 68%; }
.serviceList .note{
	color: #CC0000;
	font-size:0.88em;
	text-align: right;
}
.serviceList dt{
	font-size: 1.32em;
	font-weight:bold;
	line-height: 1.2;
	margin-bottom: 0.6em;
}

.serviceBox{
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	color:#999;
	padding: 4%;
}
.serviceBox dl{
	padding: 2%;
	width: 31%;
}
.serviceBox dl:nth-child(1){ border: 1px solid #BCD1FF; }
.serviceBox dl:nth-child(2){ border: 1px solid #FFD98B; }
.serviceBox dl:nth-child(3){ border: 1px solid #FFBEBE; }

.serviceBox dl dt{font-size:1.09em; }
.serviceBox dl:nth-child(1) dt{ color: var(--color_point2-grad_start); }
.serviceBox dl:nth-child(2) dt{ color: #CA8A04;}
.serviceBox dl:nth-child(3) dt{ color: #CC0000;}

.serviceBox dl dd p{ margin: 0;}


@media screen and (max-width: 680px) {
	.secService .flexArea{flex-direction: column;}
	.serviceImg{
		width: 80%;
		margin: 0 auto;
	}
	.serviceList{ width:100%; }
	.serviceList dt{ font-size:1.18em; }
	.serviceBox .flexArea{ flex-direction:row; }
	.serviceBox dl dt{ font-size:1em; }
}
@media screen and (max-width: 480px) {
	.serviceBox dl{ width:100%; }
	.serviceList .note{ text-align: left; }
}



/* secCta
-------------------------------------------------------------- */
.secCta{
	background: transparent linear-gradient(90deg, var(--color_point2-grad_start) 0%, var(--color_point2) 49%, var(--color_point2-grad_start) 100%);
	color: var(--color_white);
	text-align: center;
	padding: 8% 4%;
	font-weight: bold;
}
.secCta h3 {
	font-size: var(--fs-xl);
	font-family:var(--family-min);
	line-height: 1.4;
	margin: 0 0 0.5em 0;
}
.secCta span{
	font-size:0.9rem;
	font-weight:normal;
}

.secCta .btnArea{
	width: 60%;
	font-size: 1.25vw;
	margin: 0 auto;
}
@media screen and (max-width: 1024px) {
.secCta .btnArea{ font-size: inherit;}
.secCta .btnArea{ width: 550px; max-width: 100%;}
}
@media screen and (max-width: 680px) {
	.secCta{ font-size:1.8em;}
	.secCta .btnArea{
		flex-direction:column;
		gap:0.5em;
	}
	.secCta .btnArea a{ width:100%; }
	.secCta .btnArea a.contact,
	.secCta .btnArea a.download{ background-position: 30% center; }
}
@media screen and (max-width: 480px) {
	.secCta .btnArea a.contact,
	.secCta .btnArea a.download{ background-position: 20% center; }
}


/* secTuyomi
-------------------------------------------------------------- */
.tuyomiList{
	width: 48%;
	border:1px solid var(--color_gray);
	padding:14% 2% 4% 2%;
	background-repeat: no-repeat;
	background-position: center 15%;
	background-size: 18%;
}
.secTuyomi .tuyomiList:nth-child(1){ background-image: url("../img/tuyomi/icon01.svg"); }
.secTuyomi .tuyomiList:nth-child(2){ background-image: url("../img/tuyomi/icon02.svg"); }
.secTuyomi .tuyomiList:nth-child(3){ background-image: url("../img/tuyomi/icon03.svg"); }
.secTuyomi .tuyomiList:nth-child(4){ background-image: url("../img/tuyomi/icon04.svg"); }
.secTuyomi .tuyomiList:nth-child(5){ background-image: url("../img/tuyomi/icon05.svg"); }
.secTuyomi .tuyomiList:nth-child(6){ background-image: url("../img/tuyomi/icon06.svg"); }

.tuyomiList dt{
	text-align: center;
	font-size: 1.32em;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 0.6em;
}

@media screen and (max-width: 1366px) {
	.tuyomiList dt{font-size: 1.18em;}
}
@media screen and (max-width: 1240px) {
	.tuyomiList{ background-position: center 12%; }
}
@media screen and (max-width: 680px) {
	.tuyomiList{
		width:100%;
		padding:14% 2% 4% 2%;
		background-size: 10%;
		background-position: center 8%;
	}
	.tuyomiList dt br{ display:none; }
}
@media screen and (max-width: 480px) {
	.tuyomiList{
		padding:18% 2% 4% 2%;
		background-size: 12%;
	}
}
@media screen and (max-width: 380px) {
	.tuyomiList{
		padding:28% 2% 4% 2%;
		background-size: 20%;
	}
}



/* secPrice
-------------------------------------------------------------- */
.secPrice{
	background-color: #F6F9FB;
}
.secPrice .flexArea{
	justify-content: center;
	align-items: center;
	gap:0.5em;
}

.secPrice .bgBlack{
	background-color: var(--color_primary);
	color: var(--color_white);
	margin-right:0.4em;
	padding:0.5% 1%;
}

.secPrice .price{
	font-size: 4.88em;
	text-align: center;
	margin: 0;
	font-weight: bold;
	line-height:1
}
.secPrice .price span{font-size: 0.38em;}

.secPrice .note{
	text-align:center;
	font-size: 0.68em;
	color: #999;
	margin-bottom: 2em;
}
.secPrice .btnArea{
	text-align:center;
	width: 35%;
	font-size: 1.25vw;
	margin: 0 auto;
 }
 .secPrice .btnArea a{ width: 100%; }

@media screen and (max-width: 1024px) {
.secCta .btnArea{ font-size: inherit;}
.secPrice .btnArea{ width: 320px; max-width: 100%;}
}

/* secCompany
-------------------------------------------------------------- */
.comtable th { text-align: left;}
.comtable td table,
.comtable td th,
.comtable td td {border: none; padding: 0;}
.comtable td table {display: inline-table; width: auto; margin-bottom: 1em;}
.comtable td table:last-child {margin-bottom: 0;}
.comtable td th {width: 8.5em; background-color: transparent;}
.comtable td th,
.comtable td td {padding: 0.1em 0;}
.comtable dl {margin: 0;}
.comtable dd {margin-bottom: 1em;}
.comtable dd:last-child {margin-bottom: 0;}
.comtable ul{
	padding-left:1.5em;
	margin:0;
}

@media screen and (max-width: 640px) {
	.comtable td .noBorder tr td:nth-child(2) {display: inline;}
	.comtable td th {
		width: auto;
		vertical-align: top;
	}
	.comtable td td + td {font-size: 0.88em;}
}
@media screen and (max-width: 480px) {
	.comtable td td {display: block;}
}


/* Consultant
--------------------------------------------------------------- */
.consulBox{
	display:flex;
	justify-content:space-between;
	flex-direction: row-reverse;
	margin-bottom:3em;
}
.consulBox:last-child{ margin-bottom: 0;}

.consulBox picture{ width:40%; }
.consulBox .content{ width:56%; }
.consulBox .content p{
	margin:0 0 0.5em 0;
}
.consulBox .content .ttl{
	color:var(--color_main);
	font-size: 26px;
	font-family: var(--family-min);
	font-weight:bold;
	border-bottom:1px solid var(--color_gray-light);
	line-height:1.2;
	margin-bottom: 1em;
	padding-bottom:0.25em;
}
.consulBox .content .name{
	font-size: 20px;
	font-weight:bold;
}

@media screen and (max-width: 768px) {
	.consulBox .content .ttl{ font-size:22px;}
	.consulBox .content .name{ font-size:18px;}
}
@media screen and (max-width: 480px) {
	.consulBox{ display: block; }
	.consulBox picture{ width:100%; }
	.consulBox .content{ width:100%; }
	.consulBox .content .ttl{ font-size:20px;}
}


/* Achievement
-------------------------------------------------------------- */
.secAchievement{
	background: var(--color_gray-light2);
}
.secAchievement .hl1 span{ font-size:0.7em; }

.secAchievement .inr{
	background:var(--color_white);
	padding:6% 4%;
	text-align: center;
}
.secAchievement p{
	color: var(--color_gray-dark2);
	font-size: 0.78em;
	text-align: left;
}
.secAchievement picture { text-align: center;}
.secAchievement picture img { width: 100%;}

@media screen and (max-width: 480px) {
	.secAchievement picture img { width: 250px;}
}

/* secRoadmap（制度対応スケジュール／既存の画像を置き換え）
-------------------------------------------------------------- */
.secRoadmap{ background-color: var(--color_white); }
.secRoadmap .lead{
	text-align: center;
	color: var(--color_gray-dark2);
	margin: -1.2em 0 2.5em;
}

.phaseList{
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 2.5em;
	padding: 0;
	margin: 0;
}
.phase{ display: flex; flex-direction: column; }

.phase .time{
	position: relative;
	text-align: center;
	color: var(--color_gray-dark2);
	font-size: var(--fs-xxs);
	line-height: 1.4;
	padding-bottom: 1.8em;
	margin: 0;
}
.phase .time:before{
	content: "";
	position: absolute;
	left: -1.25em;
	right: -1.25em;
	bottom: 0.35em;
	height: 1px;
	background-color: var(--color_gray);
}
.phase:first-child .time:before{ left: -2.5em; }
.phase:last-child .time:before{ right: -2.5em; }
.phase .time:after{
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 0.75em;
	height: 0.75em;
	margin-left: -0.375em;
	border-radius: 50%;
	background-color: var(--color_gray-dark);
}
.phase.current .time{ color: var(--color_main); font-weight: bold; }
.phase.current .time:after{ background-color: var(--color_main); }

.phase .box{
	position: relative;
	flex: 1;
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	text-align: center;
	padding: 1.8em 1.5em;
}
.phase.current .box{
	background-color: var(--color_main-light);
	border-color: var(--color_main);
}
/* フェーズ間の矢印（base.cssの .gNav li a:before と同じ三角の作り方） */
.phase + .phase .box:before{
	content: "";
	position: absolute;
	left: -1.7em;
	top: 50%;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0.4em 0 0.4em 0.6em;
	border-color: transparent transparent transparent var(--color_gray-dark);
	margin-top: -0.4em;
}
.phase .no{
	color: var(--color_gray-dark2);
	font-size: var(--fs-xxs);
	font-weight: bold;
	letter-spacing: 0.2em;
	line-height: 1;
	margin: 0 0 0.5em;
}
.phase.current .no{ color: var(--color_main); }
.phase .ttl{
	font-family: var(--family-min);
	font-size: var(--fs-m);
	font-weight: bold;
	line-height: 1.3;
	border-bottom: 1px solid var(--color_gray-light);
	padding-bottom: 0.6em;
	margin: 0 0 0.9em;
}
.phase.current .ttl{ color: var(--color_main); }
.phase .detail{ list-style: none; padding: 0; margin: 0; }
.phase .detail li{ line-height: 1.5; }
.phase .detail li + li{ margin-top: 0.9em; }
.phase .detail b{ display: block; font-weight: bold; }
.phase .detail span{
	display: block;
	color: var(--color_gray-dark2);
	font-size: var(--fs-xxs);
	margin-top: 0.2em;
}

.phaseSupport{
	position: relative;
	background-color: var(--color_main-light);
	border: 1px solid var(--color_main);
	padding: 2.6em 2em 2em;
	margin-top: 3em;
}
.phaseSupport .ttl{
	position: absolute;
	top: -1.1em;
	left: 50%;
	transform: translateX(-50%);
	background-color: var(--color_main);
	color: var(--color_white);
	font-weight: bold;
	line-height: 1.4;
	white-space: nowrap;
	padding: 0.35em 1.6em;
	margin: 0;
}
.phaseSupport ul{
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 1.5em;
	padding: 0;
	margin: 0;
	text-align: center;
}
.phaseSupport li b{
	display: block;
	color: var(--color_main);
	font-size: 1.09em;
	font-weight: bold;
	line-height: 1.4;
}
.phaseSupport li span{
	display: block;
	color: var(--color_gray-dark2);
	font-size: var(--fs-xxs);
	margin-top: 0.3em;
}

.secRoadmap .close{
	text-align: center;
	line-height: 1.9;
	margin: 2em 0 0;
}

@media screen and (max-width:1366px){
	.phase .ttl{ font-size: var(--fs-s); }
}
@media screen and (max-width:680px){
	.phaseList{ grid-template-columns: 1fr; gap: 2.2em; }
	.phase .time{
		text-align: left;
		padding-bottom: 0.5em;
	}
	.phase .time:before,
	.phase .time:after{ display: none; }
	.phase .box{ padding: 1.5em; }
	.phase + .phase .box:before{
		left: 50%;
		top: -1.6em;
		margin: 0 0 0 -0.4em;
		border-width: 0.6em 0.4em 0 0.4em;
		border-color: var(--color_gray-dark) transparent transparent transparent;
	}
	.phaseSupport{ padding: 2.6em 5% 5%; }
	.phaseSupport .ttl{ white-space: normal; text-align: center; width: 90%; }
	.phaseSupport ul{ grid-template-columns: 1fr; gap: 1.2em; }
	.secRoadmap .close{ text-align: left; }
}

/* secDifference（★3と★4の違い）
-------------------------------------------------------------- */
.secDifference{ background-color: #F6F9FB; }
.secDifference .lead{
	text-align: center;
	line-height: 1.9;
	margin: -1em 0 2.5em;
}

.scsTable{ margin-bottom: 1em; }
.scsTable thead th{
	color: var(--color_white);
	font-size: var(--fs-m);
	font-weight: bold;
	text-align: center;
	line-height: 1.2;
	padding: 0.5em 0.75em;
	border-color: var(--color_white);
}
.scsTable thead th.blank{
	background-color: transparent;
	border-color: transparent;
	width: 22%;
}
.scsTable thead th.s3{ background-color: var(--color_main); }
.scsTable thead th.s4{ background-color: var(--color_point); }

.scsTable tbody th{
	width: 22%;
	text-align: left;
	vertical-align: middle;
	font-weight: bold;
	word-break: normal;
}
.scsTable tbody td{
	width: 39%;
	vertical-align: middle;
	line-height: 1.7;
	word-break: normal;
}
.scsTable tbody td.s3{ background-color: #F6F9FB; }
.scsTable .num{
	font-size: 1.88em;
	font-weight: bold;
	line-height: 1;
	letter-spacing: 0.01em;
	padding-right: 0.15em;
	vertical-align: -0.04em;
}
.scsTable td.s3 .num{ color: var(--color_main); }
.scsTable td.s4 .num{ color: var(--color_point); }
.scsTable .caution{
	display: block;
	color: var(--color_point);
	font-size: var(--fs-xxs);
	font-weight: bold;
	margin-top: 0.3em;
}

/* ★4の実地審査・技術検証 */
.scsDeep{
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	padding: 3%;
	margin-top: 3em;
}
.scsDeep > .ttl{
	color: var(--color_point);
	font-size: 1.32em;
	font-weight: bold;
	line-height: 1.3;
	margin: 0 0 0.4em;
}
.scsDeep .flexArea{ margin-top: 1.5em; }
.scsDeep .flexArea > dl{
	width: 49%;
	border: 1px solid #FFD98B;
	padding: 2%;
	margin: 0;
}
.scsDeep .flexArea > dl dt{
	color: var(--color_point);
	font-size: 1.09em;
	font-weight: bold;
	margin-bottom: 0.4em;
}
.scsDeep .flexArea > dl dt span{
	color: var(--color_gray-dark2);
	font-size: 0.8em;
	font-weight: normal;
	margin-left: 0.5em;
}
.scsDeep .flexArea > dl dd{ margin: 0; line-height: 1.7; }
.scsDeep .foot{
	background-color: var(--color_gray-light);
	padding: 1em 1.2em;
	margin: 1.5em 0 0;
	line-height: 1.7;
}
.scsDeep .foot strong{ color: var(--color_point); }

.srcNote{
	color: var(--color_gray-dark2);
	font-size: var(--fs-xxs);
	line-height: 1.8;
	margin: 1em 0 0;
}
.srcNote a{ color: var(--color_main); }

@media screen and (max-width:1366px){
	.scsDeep > .ttl{ font-size: 1.18em; }
}
@media screen and (max-width:680px){
	.secDifference .lead{ text-align: left; }

	.scsTable,
	.scsTable tbody,
	.scsTable tbody tr,
	.scsTable tbody th,
	.scsTable tbody td{ display: block; width: 100%; }
	.scsTable thead{ display: none; }
	.scsTable tbody tr{
		border: 1px solid var(--color_gray);
		margin-bottom: 1em;
	}
	.scsTable tbody tr:last-child{ margin-bottom: 0; }
	.scsTable tbody th{
		background-color: var(--color_main);
		color: var(--color_white);
		border: none;
		padding: 0.5em 0.8em;
	}
	.scsTable tbody td{
		border: none;
		padding: 0.8em;
	}
	.scsTable tbody td:before{
		content: attr(data-star);
		display: inline-block;
		color: var(--color_white);
		font-size: var(--fs-xxs);
		font-weight: bold;
		line-height: 1;
		padding: 0.35em 0.7em;
		margin-right: 0.7em;
		vertical-align: 0.15em;
	}
	.scsTable tbody td.s3{ background-color: #F6F9FB; }
	.scsTable tbody td.s3:before{ background-color: var(--color_main); }
	.scsTable tbody td.s4:before{ background-color: var(--color_point); }
	.scsTable .num{ font-size: 1.63em; }

	.scsDeep{ padding: 5%; }
	.scsDeep .flexArea > dl{ width: 100%; padding: 4%; }
	.scsDeep .flexArea > dl + dl{ margin-top: 1em; }
}

/* secProject（ご支援中の取り組み）
-------------------------------------------------------------- */
.secProject{ background-color: #F6F9FB; }
.secProject .lead{ text-align: center; line-height: 1.9; margin: -1em 0 2.5em; }
.secProject .lead strong{ color: var(--color_main); }

.projectList{
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 2%;
	padding: 0;
	margin: 0;
}
.projectItem{
	display: flex;
	flex-direction: column;
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
}
.projectHead{
	background-color: var(--color_main-light);
	border-bottom: 1px solid var(--color_gray);
	padding: 1.2em 1.8em;
}
.projectHead .no{
	color: var(--color_main);
	font-size: var(--fs-xxs);
	font-weight: bold;
	letter-spacing: 0.1em;
	line-height: 1;
	margin: 0 0 0.5em;
}
.projectHead .attr{
	font-size: 1.18em;
	font-weight: bold;
	line-height: 1.4;
	margin: 0;
}
.projectHead .attr span{
	display: block;
	color: var(--color_gray-dark2);
	font-size: 0.75em;
	font-weight: normal;
	margin-top: 0.3em;
}
.projectBody{
	flex: 1;
	padding: 1.6em 1.8em 1.8em;
}
.projectBody .goal{
	display: inline-block;
	background-color: var(--color_main);
	color: var(--color_white);
	font-size: var(--fs-xxs);
	font-weight: bold;
	line-height: 1;
	padding: 0.45em 1em;
	margin: 0 0 0.8em;
}
.projectBody .ttl{
	font-size: 1.32em;
	font-weight: bold;
	line-height: 1.4;
	margin: 0 0 0.8em;
}
.projectBody .detail{
	line-height: 1.8;
	margin: 0;
}

.projectFlow{
	list-style: none;
	counter-reset: flow;
	padding: 0;
	margin: 1em 0 0;
}
.projectFlow li{
	counter-increment: flow;
	position: relative;
	background-color: var(--color_main-light);
	font-size: var(--fs-xxs);
	font-weight: bold;
	line-height: 1.4;
	padding: 0.6em 0.8em 0.6em 2.4em;
}
.projectFlow li:before{
	content: counter(flow);
	position: absolute;
	left: 0.8em;
	color: var(--color_main);
}
.projectFlow li + li{ margin-top: 1.4em; }
.projectFlow li + li:after{
	content: "";
	position: absolute;
	left: 50%;
	top: -1.1em;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0.45em 0.35em 0 0.35em;
	border-color: var(--color_gray-dark) transparent transparent transparent;
	margin-left: -0.35em;
}


@media screen and (max-width:1366px){
		.projectBody .ttl{ font-size: 1.18em; }
}
@media screen and (max-width:680px){
	.secProject .lead{ text-align: left; }
	.projectList{ grid-template-columns: 1fr; gap: 1.5em; }
	.projectHead{ padding: 1.2em 1.5em; }
	.projectBody{ padding: 1.5em; }
}

/* secKadai 4枚化（既存3枚 + 新規1枚）
   ※ .secKadai4 が付いたセクションにだけ効きます。
     既存の .kadaiList{width:32%} は書き換えません。
     4枚目を入れない場合は、このブロックごと削除して構いません。
-------------------------------------------------------------- */

/* --- 案A：2列×2行（推奨。1枚あたりの文字量に無理がない） --- */
.secKadai4 .kadaiList{ width: 49%; margin-bottom: 2%; }

/* --- 案B：4列×1行にしたい場合は、上の1行を消して下を有効化 ---
.secKadai4 .kadaiList{ width: 24%; padding: 3% 1.5%; }
.secKadai4 .kadaiList dt{ font-size: 1.18em; }
@media screen and (max-width:1024px){
	.secKadai4 .kadaiList{ width: 49%; margin-bottom: 2%; }
}
--- */

@media screen and (max-width:680px){
	.secKadai4 .kadaiList{ width: 100%; margin-bottom: 1em; }
}

/* secExpert（★3は自己評価だけでは完結しない）
-------------------------------------------------------------- */
.secExpert{ background-color: var(--color_main-light); }
.secExpert .lead{ text-align: center; line-height: 1.9; margin: -1em 0 2.5em; }

.expertList{
	width: 49%;
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	padding: 0 0 2%;
	margin: 0;
}
.expertList > dt{
	background-color: var(--color_main);
	color: var(--color_white);
	font-size: 1.32em;
	font-weight: bold;
	text-align: center;
	line-height: 1.3;
	padding: 0.5em;
}
.expertList.sub > dt{ background-color: var(--color_gray-dark2); }
.expertList > dd{ margin: 0; padding: 0 6%; }
.expertList > dd > dl{ margin: 1.2em 0 0; }
.expertList > dd > dl > dt{
	color: var(--color_main);
	font-weight: bold;
	border-bottom: 1px solid var(--color_gray-light);
	padding-bottom: 0.2em;
	margin-bottom: 0.5em;
}
.expertList.sub > dd > dl > dt{ color: var(--color_gray-dark2); }
.expertList > dd > dl > dd{ margin: 0; line-height: 1.8; }

.qualList{
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	padding: 0;
	margin: 0;
}
.qualList li{
	background-color: var(--color_main-light);
	color: var(--color_main);
	font-size: var(--fs-xxs);
	font-weight: bold;
	padding: 0.3em 0.8em;
}
.expertList .att{
	color: var(--color_gray-dark2);
	font-size: var(--fs-xxs);
	line-height: 1.7;
	margin: 1.2em 0 0;
}

.expertBridge{
	background-color: var(--color_main);
	color: var(--color_white);
	text-align: center;
	padding: 2.5% 4%;
	margin-top: 2em;
}
.expertBridge .ttl{
	font-family: var(--family-min);
	font-size: var(--fs-m);
	line-height: 1.4;
	margin: 0 0 0.5em;
}
.expertBridge p{ margin: 0; line-height: 1.8; }

@media screen and (max-width:1366px){
	.expertList > dt{ font-size: 1.18em; }
}
@media screen and (max-width:680px){
	.secExpert .lead{ text-align: left; }
	.expertList{ width: 100%; padding-bottom: 5%; }
	.expertList + .expertList{ margin-top: 1.5em; }
	.expertBridge{ padding: 6% 5%; text-align: left; }
}

/* secSchedule（支援の進め方とスケジュール）
-------------------------------------------------------------- */
.secSchedule{ background-color: var(--color_white); }
.secSchedule .lead{ text-align: center; line-height: 1.9; margin: -1em 0 2.5em; }

.ganttWrap{
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	padding: 2.5%;
	overflow-x: auto;
}
.gantt{ min-width: 720px; }
.gantt .row{
	display: grid;
	grid-template-columns: 9em repeat(12,1fr);
	align-items: center;
}
.gantt .row + .row{ margin-top: 0.7em; }
.gantt .head span{
	color: var(--color_gray-dark2);
	font-size: var(--fs-xxs);
	text-align: center;
	border-bottom: 1px solid var(--color_gray);
	padding-bottom: 0.7em;
	margin-bottom: 0.5em;
}
.gantt .row .ttl{
	font-weight: bold;
	line-height: 1.3;
	padding-right: 1em;
}
.gantt .bar{
	color: var(--color_white);
	font-size: var(--fs-xxs);
	font-weight: bold;
	text-align: center;
	line-height: 1;
	padding: 1.1em 0.5em;
}
.gantt .bar.kickoff{ background-color: var(--color_point2); grid-column: 2 / 3; }
.gantt .bar.baseline{ background-color: var(--color_main); grid-column: 3 / 12; }
.gantt .bar.task{ background-color: var(--color_point); grid-column: 10 / 13; }

.stepList{
	width: 49%;
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	padding: 2.5%;
	margin: 2em 0 0;
}
.stepList > dt{
	color: var(--color_main);
	font-size: 1.32em;
	font-weight: bold;
	line-height: 1.2;
	margin-bottom: 0.6em;
}
.stepList > dd{ margin: 0; line-height: 1.8; }
.stepList > dd p{ margin: 0 0 0.8em; }
.stepList .deliver{
	background-color: var(--color_main-light);
	padding: 0.9em 1.1em;
	margin: 1.2em 0 0;
}
.stepList .deliver strong{ color: var(--color_main); }

.workBox{
	background-color: var(--color_white);
	border: 1px solid var(--color_gray);
	padding: 2.5%;
	margin-top: 2em;
}
.workBox > .ttl{
	color: var(--color_main);
	font-size: 1.32em;
	font-weight: bold;
	margin: 0 0 0.8em;
}
.workBox ul{ list-style: none; padding: 0; margin: 0; }
.workBox li{
	line-height: 1.8;
	padding: 0.4em 0 0.4em 1.5em;
	position: relative;
}
.workBox li:before{
	content: "";
	position: absolute;
	left: 0;
	top: 0.95em;
	width: 0.6em;
	height: 0.6em;
	background-color: var(--color_main);
}
.workBox .att{ color: var(--color_gray-dark2); font-size: var(--fs-xxs); margin: 1em 0 0; }

@media screen and (max-width:1366px){
	.stepList > dt,
	.workBox > .ttl{ font-size: 1.18em; }
}
@media screen and (max-width:680px){
	.secSchedule .lead{ text-align: left; }
	.ganttWrap{ padding: 5%; }
	.stepList{ width: 100%; padding: 5%; margin-top: 1.5em; }
	.workBox{ padding: 5%; }
}
.secProject{ background-color: var(--color_white); }