@charset "utf-8";
/* CSS Document */

/*==============================*/
/* MainVisual */
/*==============================*/
div.mainVisual{
	position: relative;
	padding-top: 76px;
	padding-bottom: 80px;
	padding-left: calc( calc( 100% - 1100px ) / 2 );
    padding-right: calc( calc( 100% - 1100px ) / 2 );
	background: #282F66;
	color: #fff;
}
	/* ======= TB以下 =======*/
	@media (max-width: 1100px) {
		div.mainVisual{
			container-type: inline-size;
		}
	}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1100px) {
		div.mainVisual{
			padding-left: 40px;
			padding-right: 40px;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual{
			padding-top: 40px;
			padding-bottom: 40px;
			padding-left: 24px;
			padding-right: 24px;
		}
	}


/*---------------------------------
   Title
---------------------------------*/
div.mainVisual h1{
	font-size: min(5.833vw, 70px);
	font-weight: 900;
	line-height: 1.414em;
}
div.mainVisual h1 span{
	display: block;
	font-size: min(5.167vw, 62px);
	line-height: 1.414em;
}
	/* ======= SP =======*/
	@media (min-width: 768px) {
		div.mainVisual h1{
			position: absolute;
		}
	}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual h1{
			margin-bottom: 24px;
			font-size: 11.7cqw;
			line-height: 1.414em;
		}
		div.mainVisual h1 span{
			font-size: 10.5cqw;
			line-height: 1.414em;
		}
	}


/*---------------------------------
   Content
---------------------------------*/
div.mainVisual div.visualContent{
	display: flex;
	align-items: flex-end;
	gap: 24px;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent{
			display: flex;
			align-items: flex-start;
			gap: 12px;
			margin-bottom: 24px;
		}
	}


/*-- 
------------------------- */
div.mainVisual div.visualContent figure{
	flex: 1 1 40%;
	margin-bottom: -7%;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.mainVisual div.visualContent figure{
			margin-bottom: 0%;
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent figure{
			flex: 1 1 38%;
			min-width: auto;
			margin-bottom: 0px;
		}
	}


/*-- 
------------------------- */
div.mainVisual div.visualContent div{
	flex: 1 1 60%;
	padding-top: min(18vw, 216px);
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent div{
			flex: 1 1 62%;
			padding-top: 0px;
		}
	}

/*-- Title -- */
div.mainVisual div.visualContent div h2{
	margin-bottom: 20px;
	font-size: min(2.333vw, 28px);
	font-weight: 900;
	line-height: 1.5em;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent div h2{
			margin-bottom: 11px;
			font-size: 3.9cqw;
			font-weight: 700;
			line-height: 1.5em;
		}
		div.mainVisual div.visualContent div h2 br{ display: none;}
	}


/*-- Text -- */
div.mainVisual div.visualContent div p.visualText{
	margin-bottom: 32px;
	font-size: 14px;
	letter-spacing: 0.02em;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual div.visualContent div p.visualText{
			margin-bottom: 0px;
			font-size: 2.8cqw;
			letter-spacing: 0.02em;
			line-height: 1.618em;
		}
	}

/*---------------------------------
   Btn
---------------------------------*/
div.mainVisual p.visualBtn{
	width: min(520px,100%);
	background: #fff;
	border-radius: 10px;
}
div.mainVisual p.visualBtn a{
	position: relative;
	display: block;
	padding: 20px 0;
	background: linear-gradient(#ffcc00, #d0a80d);
	border-radius: 10px;
	color: #252f69;
	font-size: 22px;
    font-weight: 700;
	letter-spacing: 0.01em;
	text-align: center;
}
div.mainVisual p.visualBtn a::before{
	position: absolute; top: 50%; right: 20px;
	content: "";
	width: 12px;
	height: 20px;
	background: #2B2F63;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transform: translateY(-50%);
}
div.mainVisual p.visualBtn a:hover{ opacity: 0.6;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 900px) {
		div.mainVisual p.visualBtn{
			width: 59%;
		}
	}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.mainVisual p.visualBtn{
			width: 100%;
			border-radius: 10px;
		}
		div.mainVisual p.visualBtn a{
			padding: 20px 8px 21px 0;
			font-size: clamp(13px, 5.5cqw, 20px);
		}
		div.mainVisual p.visualBtn a::before{
			position: absolute; top: 50%; right: 12px;
			content: "";
			width: 10px;
			height: 18px;
		}
	}


/*==============================*/
/* bg */
/*==============================*/
.bgGray{
	padding-top: 88px;
	padding-bottom: 88px;
	background: #F0F0F0;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		.bgGray{
			padding-top: 76px;
			padding-bottom: 76px;
		}
	}

/*==============================*/
/* Service */
/*==============================*/
ul.topService{
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	width: min(910px,100%);
	margin: 0 auto;
}
ul.topService li{
	width: calc(calc(100% - 12px * 3) / 4);
	padding: 9px 0 10px 0;
	border-radius: 8px;
	background: #252f69;
	color: #fff;
	text-align: center;
	letter-spacing: 0.02em;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		ul.topService{ gap: 12px;}
		ul.topService li{ width: calc(calc(100% - 12px * 2) / 3);}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		ul.topService{ gap: 8px;}
		ul.topService li{
			width: calc(calc(100% - 8px * 1) / 2);
			font-size: 14px;
		}
	}



/*==============================*/
/* OVER VIEW */
/*==============================*/
section.overviewWrap{
	padding-top: 80px;
	padding-bottom: 72px;
	background: url("/common/img/top/bg-overview.png");
}

/*---------------------------------
   Title
---------------------------------*/
section.overviewWrap h2{ color: #fff;}


/*---------------------------------
   
---------------------------------*/
div.overview{
	width: min(910px,100%);
	margin: 0 auto;
}
div.overview p{
	color: #fff;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.overview p{
			font-size: 14px;
			line-height: 1.8em;
			text-align: justify;
		}
	}


/*==============================*/
/* Problem */
/*==============================*/
section.problemWrap{
	position: relative;
}
section.problemWrap::before{
	position: absolute; bottom: 80px; left: 50%;
	content: "";
	width: 280px;
	height: 296px;
	background: url("/common/img/top/illust-problem-pc.svg");
	background-size: 100%;
	transform: translateX(-40%);
}


div.problemList{
	position: relative;
	margin: 0 auto;
}
div.problemList dl:nth-child(1){
	width: 374px;
	height: 259px;
	padding: 48px 0 0 36px;
	background-size: 374px 259px;
	background-image: url("/common/img/top/bg-cloud01.svg");
}
div.problemList dl:nth-child(2){
	width: 415px;
	height: 277px;
	padding: 60px 0 0 64px;
	background-size: 415px 277px;
	background-image: url("/common/img/top/bg-cloud02.svg");
}
div.problemList dl:nth-child(3){
	width: 410px;
	height: 300px;
	padding: 52px 40px 0 64px;
	background-size: 410px 300px;
	background-image: url("/common/img/top/bg-cloud03.svg");
}
div.problemList dl:nth-child(4){
	width: 341px;
	height: 237px;
	padding: 48px 24px 0 64px;
	background-size: 341px 237px;
	background-image: url("/common/img/top/bg-cloud04.svg");
}

div.problemList dl dt{
	margin-bottom: 12px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.02em;
}
div.problemList dl dd p{
	font-size: 14px;
	letter-spacing: 0.01em;
	line-height: 1.5em;
}

div.problemList dl dd ul li{
	position: relative;
	padding-left: 12px;
	font-size: 14px;
	letter-spacing: 0.01em;
	line-height: 1.5em;
}
div.problemList dl dd ul li::before{
	position: absolute; top: 7px; left: 0;
	content: "";
	width: 6px;
	height: 6px;
	background: #333;
	border-radius: 50%;
}
div.problemList dl dd ul li:not(:last-child){ margin-bottom: 4px;}


	/* ======= PC =======*/
	@media (min-width: 1025px) {
		div.problemList{
			width: min(900px,100%);
			height: 570px;
		}
		div.problemList dl:nth-child(1){ position: absolute; top: 0; left: 65px;}
		div.problemList dl:nth-child(2){ position: absolute; top: 0; left: 458px;}
		div.problemList dl:nth-child(3){ position: absolute; bottom: 0; left: 0;}
		div.problemList dl:nth-child(4){ position: absolute; bottom: 0; right: 0;}
	}
	/* ======= TB以下 =======*/
	@media (max-width: 1024px) {
		section.problemWrap{
			padding-bottom: 216px;
		}
		section.problemWrap::before{
			position: absolute; bottom: 28px; left: 50%;
			width: 104px;
			height: 200px;
			background: url("/common/img/top/illust-problem-sp.svg");
			transform: translateX(-50%);
		}
		div.problemList{
			display: flex;
			flex-wrap: nowrap;
			gap: 20px;
			overflow-x: auto;
			padding: 0 24px;
			-ms-overflow-style: none;
			scrollbar-width: none;
			width: calc(100% + 48px);
			margin-left: -24px;
		}
		div.problemList dl{
			flex: 0 0 auto;
			box-sizing: border-box;
			background-repeat: no-repeat;
		}

	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.problemList dl dt{
			margin-bottom: 12px;
			font-size: 18px;
		}
	}


/*==============================*/
/* OUR VALUE */
/*==============================*/
div.topValu{
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	width: min(1040px,100%);
	margin: 0 auto;
}
div.topValu div.valuBox{
	position: relative;
	display: flex;
	flex-direction: column;
	width: calc(calc(100% - 28px * 2) / 3);
	padding: 48px 28px 28px 28px;
	border-radius: 10px;
	border: 3px solid #1b2560;
}
div.topValu div.valuBox::before{
	position: absolute; top: 0; left: 20px;
	content: "";
	height: 48px;
	background:  url("/common/img/top/icon-value01.svg");
	transform: translateY(-52%);
}
div.topValu div.valuBox:nth-child(1)::before{
	aspect-ratio: 88/48;
	background: url("/common/img/top/icon-value01.svg"); background-size: cover;
}
div.topValu div.valuBox:nth-child(2)::before{
	aspect-ratio: 92/48;
	background: url("/common/img/top/icon-value02.svg"); background-size: cover;
}
div.topValu div.valuBox:nth-child(3)::before{
	aspect-ratio: 90/48;
	background: url("/common/img/top/icon-value03.svg"); background-size: cover;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.topValu{
			gap: 40px 24px;
		}
		div.topValu div.valuBox{
			width: calc(calc(100% - 24px * 1) / 2);
		}
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.topValu{ gap: 40px;}
		div.topValu div.valuBox{
			width: 100%;
			padding: 48px 32px 28px 32px;
		}
	}


/*---------------------------------
   
---------------------------------*/
div.topValu div.valuBox h3{
	margin-bottom: 20px;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: 0.01em;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.topValu div.valuBox h3{
			font-size: 21px;
			text-align: center;
		}
	}


/*---------------------------------
   
---------------------------------*/
div.topValu div.valuBox ul{ margin-bottom: 40px;}
div.topValu div.valuBox ul li{
	position: relative;
	padding-left: 20px;
	font-size: 14px;
	line-height: 1.414em;
	letter-spacing: 0.02em;
}
div.topValu div.valuBox ul li:not(:last-child){ margin-bottom: 6px;}
div.topValu div.valuBox ul li::before{
	position: absolute; top: -1px; left: 0;
	content: "✓";
}

/*---------------------------------
   
---------------------------------*/
div.topValu div.valuBox figure{
	margin-top: auto;
	text-align: center;
}
div.topValu div.valuBox:nth-child(1) figure img{ width: 89px;}
div.topValu div.valuBox:nth-child(2) figure img{ width: 96px;}
div.topValu div.valuBox:nth-child(3) figure img{ width: 96px;}




/*==============================*/
/* CONSULTING MENU */
/*==============================*/
section.consultingMenu-warp{
	padding-top: 88px;
	padding-bottom: 76px;
	background: #282F66;
}
section.consultingMenu-warp h2{
	margin-bottom: 40px;
	color: #fff;
}


/*---------------------------------
   
---------------------------------*/
div.consultingMenu{
	display: flex;
	flex-wrap: wrap;
	gap: 36px 24px;
	width: min(1000px,100%);
	margin: 0 auto;
}
div.consultingMenu dl{
	width: calc(calc(100% - 24px * 1) / 2);
	border: 1px solid #fff;
	border-radius: 8px;
	color: #fff;
}
div.consultingMenu dl dt{
	position: relative; top: -16px; left: 16px;
	display: inline-block;
	max-width:  calc(100% - 32px);
	padding: 0 8px;
	background: #282F66;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.414em;
}
div.consultingMenu dl dd{
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 0px 24px 24px 24px ;
}
div.consultingMenu dl dd figure{
	flex: 0 0 65px;
}
div.consultingMenu dl dd div{
	flex: 1;
}
div.consultingMenu dl dd div p{
	font-size: 14px;
	line-height: 1.618em;
	text-align: justify;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.consultingMenu{
			flex-direction: column;
			gap: 36px;
		}
		div.consultingMenu dl{ width: 100%;}
		div.consultingMenu dl dt{
			position: relative; top: -16px; left: 16px;
			display: inline-block;
			
			padding: 0 12px;
			font-size: 18px;
		}
		div.consultingMenu dl dd{
			gap: 16px;
			padding: 0px 20px 24px 20px ;
		}
		div.consultingMenu dl dd figure{ flex: 0 0 56px;}
		div.consultingMenu dl dd div p{
			font-size: 13px;
			line-height: 1.618em;
		}
	}

/*---------------------------------
   
---------------------------------*/
p.consultingMenu-btn{
	width: min(408px,100%);
	background: #fff;
	border-radius: 10px;
	margin: 0 auto;
	box-shadow: 4px 4px 6px -3px rgba(32,36,65,1);
}
p.consultingMenu-btn a{
	position: relative;
	display: block;
	padding: 25px 8px 25px 0;
	background: linear-gradient(#ffcc00, #d0a80d);
	border-radius: 10px;
	color: #252f69;
	font-size: 21px;
    font-weight: 700;
	letter-spacing: 0.01em;
	text-align: center;
}
p.consultingMenu-btn a::before{
	position: absolute; top: 50%; right: 14px;
	content: "";
	width: 12px;
	height: 20px;
	background: #2B2F63;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transform: translateY(-50%);
}
p.consultingMenu-btn a:hover{ opacity: 0.6;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		p.consultingMenu-btn{
			container-type: inline-size;
		}
		p.consultingMenu-btn a{
			padding: 20px 8px 20px 0;
			font-size: 5cqw;
		}
		p.consultingMenu-btn a::before{
			position: absolute; top: 50%; right: 10px;
			width: 10px;
			height: 18px;
		}
	}


/*==============================*/
/* Casestudy */
/*==============================*/
p.topCasestudy-btn{
	width: min(376px,100%);
	background: #fff;
	border-radius: 10px;
	margin: 0 auto;
	box-shadow: 4px 4px 6px -3px rgba(153,153,153,0.7);
}
p.topCasestudy-btn a{
	position: relative;
	display: block;
	padding: 24px 6px 24px 0;
	background: #2D2F60;
	border-radius: 10px;
	color: #fff;
	font-size: 18px;
    font-weight: 600;
	letter-spacing: 0.01em;
	text-align: center;
}
p.topCasestudy-btn a::before{
	position: absolute; top: 50%; right: 16px;
	content: "";
	width: 12px;
	height: 20px;
	background: #fff;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transform: translateY(-50%);
}
p.topCasestudy-btn a:hover{ opacity: 0.6;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		p.topCasestudy-btn{
			container-type: inline-size;
		}
		p.topCasestudy-btn a{
			padding: 20px 8px 20px 0;
			font-size: 5cqw;
		}
		p.topCasestudy-btn a::before{
			position: absolute; top: 50%; right: 10px;
			width: 10px;
			height: 18px;
		}
	}

/*==============================*/
/* FLOW */
/*==============================*/
div.topFlow ol{
	display: flex;
	gap: 28px;
}
div.topFlow ol li{
	position: relative;
	width: calc(calc(100% - 28px * 4) / 5);
	border: 3px solid #282F66;
	border-radius: 8px;
}
div.topFlow ol li:not(:last-child)::after{
	position: absolute; bottom: 50%; right: -22px;
	content: "";
	width: 22px;
	height: 36px;
	background: #282F66;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transform: translateY(50%);
}
div.topFlow ol li:last-child{ border: 3px solid #F0C53C;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.topFlow ol{
			flex-direction: column;
			gap: 36px;
		}
		div.topFlow ol li{
			width: 100%;
		}
		div.topFlow ol li:not(:last-child)::after{
			position: absolute; bottom: -37px; right: 50%;
			width: 16px;
			height: 32px;
			transform: rotate(90deg);
			margin-right: -8px;
		}

	}


/*---------------------------------
   
---------------------------------*/
div.topFlow ol li > p{
	padding: 2px 0 3px 0;
	background: #282F66;
	border-radius: 4px 4px 0 0;
	color: #fff;
	text-align: center;
	font-weight: 600;
	font-family: "Inter", sans-serif;
	letter-spacing: 0.02em;
}
div.topFlow ol li:last-child > p{
	background: #F0C53C;
	color: #282F66;
}


/*---------------------------------
   
---------------------------------*/
div.topFlow ol li div{
	display: grid;
	grid-template-rows: calc(2lh + 16px) auto;
	padding: 7px 20px 20px 20px;
}
div.topFlow ol li div h3{
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0;
	line-height: 1.38;
	font-size: 19px;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.02em;
}
div.topFlow ol li div p{
	margin: 0;
	font-size: 14px;
	line-height: 1.58em;
	text-align: justify;
	font-weight: 500;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.topFlow ol li div{
			grid-template-rows: none;
			padding: 20px 20px 28px 20px;
		}
		div.topFlow ol li div h3{
			margin-bottom: 10px;
			flex-direction: column;
			font-size: 20px;
		}
		div.topFlow ol li div p{
			margin: 0;
			font-size: 14px;
			line-height: 1.618em;
		}
	}



/*==============================*/
/* PIRCE */
/*==============================*/

/*---------------------------------
   Table
---------------------------------*/
div.priceTable table{ width: 100%;}

div.priceTable th,
div.priceTable td {  border :1px solid #ccc; }


div.priceTable table thead th{
	padding: 6px 12px 7px 12px;
	background: #282F66;
	color: #fff;
	font-size: 18px;
	font-weight: 600;
	text-align: center;
}
div.priceTable table tbody td{
	padding: 13px 16px 14px 16px;
	background: #fff;
	color: #000;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.02em;
}

div.priceTable table tbody td:last-child{
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.01em;
}
div.priceTable table tbody td:last-child span{
	position: relative; top: 1px;
	font-size: 27px;
	font-weight: 600;
	font-family: "Inter", sans-serif;
	letter-spacing: 0.02em;
	vertical-align: baseline;
}

/* テキスト位置 */
div.priceTable table td:not(:first-child){ text-align: center; }

/* 線：調整 */
div.priceTable table thead th:not(:last-child){ border-right: 1px solid #fff;}

	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.priceTable{
			overflow-x: auto;
			-webkit-overflow-scrolling: touch;
		}
		div.priceTable table{
			width: 100%;
			min-width: 700px;
		}
	}


/*---------------------------------
   Btn
---------------------------------*/
p.top-priceBtn{
	width: min(376px,100%);
	background: #fff;
	border-radius: 10px;
	margin: 0 auto;
	box-shadow: 4px 4px 6px -3px rgba(153,153,153,0.7);
}
p.top-priceBtn a{
	position: relative;
	display: block;
	padding: 24px 8px 24px 0;
	background: linear-gradient(#ffcc00, #d0a80d);
	border-radius: 10px;
	color: #252f69;
	font-size: 18px;
    font-weight: 700;
	letter-spacing: 0.01em;
	text-align: center;
}
p.top-priceBtn a::before{
	position: absolute; top: 50%; right: 12px;
	content: "";
	width: 12px;
	height: 20px;
	background: #2B2F63;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transform: translateY(-50%);
}
p.top-priceBtn a:hover{ opacity: 0.6;}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		p.top-priceBtn{
			container-type: inline-size;
		}
		p.top-priceBtn a{
			padding: 20px 8px 20px 0;
			font-size: 5cqw;
		}
		p.top-priceBtn a::before{
			position: absolute; top: 50%; right: 10px;
			width: 10px;
			height: 18px;
		}
	}


/*==============================*/
/* CONSULTANT */
/*==============================*/
div.consultantText{
	width: min(948px,100%);
	margin: 0 auto 24px auto;
	padding: 0 24px;
}
div.consultantText p{
	font-size: 18px;
	font-weight: 500;
}



	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.consultantText{
			margin: 0 auto 12px auto;
		}
		div.consultantText h2{ margin-bottom: 16px;}
		div.consultantText p{
			font-size: 16px;
			font-weight: 500;
		}
		
	}



/*---------------------------------
   
---------------------------------*/
html,
body{
	overflow-x: clip;
}

div.slideBox{
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}
div.slideBox div.slideBox-inner{
	position: relative;
	width: 100%;
	max-width: 100%;
	padding: 20px 0;
	overflow: hidden;
}
div.slideBox div.slideBox-list{
	display: flex;
	flex-wrap: nowrap;
	gap: 16px;
	width: max-content;
	max-width: none;

	animation-name: slideLoop;
	animation-duration: var(--duration, 30s);
	animation-timing-function: linear;
	animation-iteration-count: infinite;

	transform: translate3d(0, 0, 0);
	will-change: transform;

	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}


/*==============================
	Slide Animation
==============================*/
@keyframes slideLoop{

	0%{
		transform: translate3d(0, 0, 0);
	}

	100%{
		transform: translate3d(
			calc(var(--loop-width) * -1),
			0,
			0
		);
	}

}



div.slideBox div.consultantBox{
	flex: 0 0 320px;
	width: 320px;
	min-width: 0;
	padding: 28px;
	box-sizing: border-box;
	background: #F8F8F8;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
		div.slideBox{ padding: 64px 0;}
		div.slideBox div.slideBox-list{ gap: 20px;}
		div.slideBox div.consultantBox{
			flex: 0 0 280px;
			width: 280px;
			padding: 28px;
		}

	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.slideBox{
			padding: 0;
			margin-bottom: -20px;
			touch-action: pan-y;
		}

		div.slideBox div.slideBox-list{
			gap: 16px;
		}

		div.slideBox div.consultantBox{
			flex: 0 0 312px;
			width: 312px;
			padding: 24px;
		}
	}



/*-- 
------------------------- */
div.slideBox div.consultantBox h3{
	margin-bottom: 16px;
	color: #000;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.48em;
	letter-spacing: 0.02em;
	text-align: justify;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.slideBox div.consultantBox h3{
			margin-bottom: 16px;
			font-size: 17px;
		}
	}


/*-- 
------------------------- */
div.slideBox div.consultantBox div.consultantBox-title{
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}
div.slideBox div.consultantBox div.consultantBox-title figure{
	flex: 0 0 64px;
}
div.slideBox div.consultantBox div.consultantBox-title p{
	flex: 1;
	min-width: 0;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.414em;
}

/*-- 
------------------------- */
div.slideBox div.consultantBox div.consultantBox-content ul{
	display: flex;
	flex-wrap: wrap;
	gap: 5px 4px;
	margin-bottom: 14px;
}
div.slideBox div.consultantBox div.consultantBox-content ul li{
	padding: 2px 8px 3px 8px;
	background: #282F66;
	border-radius: 200px;
	color: #fff;
	font-size: 12px;
	letter-spacing: 0.02em;
	line-height: 1.3em;
}

div.slideBox div.consultantBox div.consultantBox-content div p{
	font-size: 13px;
	line-height: 1.5em;
}
div.slideBox div.consultantBox div.consultantBox-content div p:not(:last-child){ margin-bottom: 10px;}


/*==============================*/
/* PROFIEL */
/*==============================*/
div.companyProfile{
	width: min(960px,100%);
	margin: 0 auto;
}

/*---------------------------------
   
---------------------------------*/
div.companyProfile div.companyProfile-box{
	display: flex;
	align-items: center;
	gap: 40px;
	margin-bottom: 32px;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.companyProfile div.companyProfile-box{
			flex-direction: column;
			gap: 24px;
			margin-bottom: 28px;
		}
	}

/*-- 
------------------------- */
div.companyProfile div.companyProfile-box h3{
	flex: 0 0 240px;
	text-align: center;
}
div.companyProfile div.companyProfile-box h3 img{ margin-bottom: 12px;}
div.companyProfile div.companyProfile-box h3 small{
	display: block;
	font-weight: 600;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.companyProfile div.companyProfile-box h3{
			flex: auto;
			text-align: center;
		}
		div.companyProfile div.companyProfile-box h3 img{ margin-bottom: 12px;}
		div.companyProfile div.companyProfile-box h3 small{
			display: block;
			font-weight: 600;
		}
	}


/*-- 
------------------------- */
div.companyProfile div.companyProfile-box div{
	flex: 1;
	min-width: 0;
}
div.companyProfile div.companyProfile-box div dl{
	display: flex;
	gap: 20px;
}
div.companyProfile div.companyProfile-box div dl:not(:last-child){ margin-bottom: 4px;}
div.companyProfile div.companyProfile-box div dl dt{
	position: relative;
	flex: 0 0 60px;
	font-size: 18px;
	font-weight: 600;
}
div.companyProfile div.companyProfile-box div dl dt::after{
	position: absolute; top: 0; right: -18px;
	content: "："
}
div.companyProfile div.companyProfile-box div dl dd{
	flex: 1;
	min-width: 0;
	padding-top: 2px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.414em;
}
	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.companyProfile div.companyProfile-box div{
			flex: none;
			width: 100%;
		}
		div.companyProfile div.companyProfile-box div dl{
			gap: 16px;
		}
		div.companyProfile div.companyProfile-box div dl:not(:last-child){ margin-bottom: 4px;}
		div.companyProfile div.companyProfile-box div dl dt{
			flex: 0 0 52px;
			font-size: 16px;
		}
		div.companyProfile div.companyProfile-box div dl dt::after{
			position: absolute; top: 0; right: -14px;
		}
		div.companyProfile div.companyProfile-box div dl dd{
			font-size: 16px;
		}
	}


/*---------------------------------
   
---------------------------------*/
div.companyProfile > dl dt{
	margin-bottom: 20px;
	font-size: 19px;
	font-weight: 700;
	text-align: center;
}

div.companyProfile > dl dd{
	overflow: hidden;
	width: 100%;
}

div.companyProfile > dl dd div.slideImage-track{
	display: block;
}

div.companyProfile > dl dd figure{
	margin: 0;
}

div.companyProfile > dl dd img{
	display: block;
	width: 100%;
	height: auto;
}

	/* ======= SP以下 =======*/
	@media(max-width: 900px){
		div.companyProfile > dl{
			width: calc(100% + 48px);
			margin-left: -24px;
		}
		div.companyProfile > dl dd div.slideImage-track{
			display: flex;
			width: max-content;
			animation: slideImage 20s linear infinite;
		}
		div.companyProfile > dl dd figure{
			flex-shrink: 0;
			width: 1200px;
		}
		div.companyProfile > dl dd img{ width: 100%;}

		@keyframes slideImage{
			0%{
				transform: translateX(0);
			}
			100%{
				transform: translateX(-50%);
			}
		}
	}
	/* ======= SP以上 =======*/
	@media(min-width: 901px){
		div.companyProfile > dl dd figure:nth-child(n + 2){ display: none; }
	}



/*==============================*/
/* FAQ */
/*==============================*/
div.topFaq{
	width: min(900px,100%);
	margin: 0 auto;
}

div.topFaq dl{
	position: relative;
	border-bottom: 1px solid #252f69;
}
div.topFaq dl:first-child{ border-top: 1px solid #252f69;}

div.topFaq dl dt{
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 24px 80px 24px 4px;
	color: #000;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3em;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: .3s;
}
div.topFaq dl dt::before{
	position: absolute; top: 50%; right: 10px;
	content: "";
	width: 20px;
	height: 3px;
	background: #252f69;
	transform: translateY(-50%);
	transition: .3s;
}
div.topFaq dl dt::after{
	position: absolute; top: 50%; right: 18px;
	content: "";
	width: 3px;
	height: 20px;
	background: #252f69;
	transform: translateY(-50%);
	transition: .3s;
}

div.topFaq dl dt.active::after{
	opacity: 0;
	transform: translateY(-50%) rotate(90deg);
}


div.topFaq dl dd{
	overflow: hidden;
	max-height: 0;
	transition: max-height .3s ease;
}
div.topFaq dl dd div{
	padding: 24px 24px 24px 24px;
	background: #fff;
	opacity: 0;
	transition: opacity .25s ease;
}
div.topFaq dl dd.active{ max-height: 500px;}
div.topFaq dl dd.active div{ opacity: 1;}

div.topFaq dl dd div p{
	color: #18282b;
	font-size: 15px;
	line-height: 1.618em;
}

	/* ======= TB =======*/
	@media screen and (min-width: 768px) and (max-width: 1024px) {
	}
	/* ======= SP =======*/
	@media (max-width: 767px) {
		div.topFaq dl dt{
			padding: 20px 40px 20px 4px;
			font-size: 16px;
			font-weight: 600;
			line-height: 1.414em;
		}
		div.topFaq dl dd div{
			padding: 20px 20px 20px 20px;
		}
		div.topFaq dl dd div p{
			font-size: 14px;
			line-height: 1.618em;
		}
	}




