@charset "UTF-8";

.mv-area {
	position: relative;
	width: 100%;
	height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	background-image: url(../img/service/main_bk.jpg);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	overflow: hidden;
}

.mv-area .mv-area-scroll {
	position: absolute;
	bottom: 40px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 14px;
}

@media screen and (max-width: 420px) {
	.mv-area .mv-area-scroll {
		bottom: 25px;
		gap: 10px;
	}
}

.mv-area .mv-area-scroll-text {
	writing-mode: vertical-rl;
	font-family: Outfit !important;
	font-size: 11px;
	letter-spacing: 0.3em;
	color: #ffffff;
}

@media screen and (max-width: 420px) {
	.mv-area .mv-area-scroll-text {
		font-size: 10px;
	}
}

.mv-area .mv-area-scroll-line {
	position: relative;
	width: 2px;
	height: clamp(40px, 15vh, 100px);
	background: #ffffff;
}

@media screen and (max-width: 420px) {
	.mv-area .mv-area-scroll-line {
		height: 80px;
	}
}

.mv-area .mv-area-scroll-dot {
	position: absolute;
	left: 50%;
	top: 0;
	width: 8px;
	height: 8px;
	margin-left: -4px;
	border-radius: 50%;
	background: #ffffff;
	animation: dotMove 2.4s ease-in-out infinite;
}

@media screen and (max-width: 420px) {
	.mv-area .mv-area-scroll-dot {
		width: 7px;
		height: 7px;
	}
}

@keyframes dotMove {
	0% {
		top: 0%;
		opacity: 0;
	}

	15% {
		opacity: 1;
	}

	85% {
		opacity: 1;
	}

	100% {
		top: 92%;
		opacity: 0;
	}
}

.service-area {
	width: 100%;
	display: grid;
	grid-template-columns: 18% 20% auto 55.9895833333%;
	grid-template-rows: auto repeat(5, auto) auto;
	background-color: #f2f2f2;
}

@media screen and (max-width: 800px) {
	.service-area {
		width: 100%;
		display: block;
		grid-column: auto;
	}
}

.service-area .tab-icon {
	position: relative;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #9babcf;
	transition: background 0.2s ease;
}

.service-area .tab-icon::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 0 5px 8px;
	border-color: transparent transparent transparent #fff;
	transform: translate(-35%, -50%);
}

@media screen and (max-width: 800px) {
	.service-area .tab-icon::before {
		display: none;
	}
}

.service-area .icon-line {
	display: none;
}

@media screen and (max-width: 800px) {
	.service-area .icon-line {
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		width: 10px;
		height: 1px;
		background: #fff;
		transform: translate(-50%, -50%);
	}
}

.service-area .icon-vert {
	transform: translate(-50%, -50%) rotate(90deg);
	transition: transform 0.25s ease;
}

.service-area .panel-inner-bg {
	background-size: cover;
	background-position: center;
	height: 100%;
	overflow: hidden;
}

.service-area .panel-content {
	width: 80%;
	height: 100%;
	box-sizing: border-box;
	padding: 100px 0 100px 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	margin: 0 auto;
}

@media screen and (max-width: 800px) {
	.service-area .panel-content {
		padding: 100px 0;
	}
}

.service-area .panel-title {
	margin: 0 0 20px 0;
	font-size: 24px;
	color: #ffffff;
}

.service-area .panel-txt {
	margin: 0 0 40px 0;
	font-size: 16px;
	color: #ffffff;
	line-height: 2;
}

.service-area .photo {
	width: 65.1162790698%;
	margin: 0 auto;
}

.service-area .item-checkbox {
	display: none;
}

.service-area .item-header {
	grid-column: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 20px 10px 20px 10px;
	font-size: clamp(14px, 1.0416666667vw, 20px);
	color: #9babcf;
	cursor: pointer;
	border-bottom: 1px solid #4461a7;
	transition: color 0.2s ease;
	box-sizing: border-box;
	min-height: 60px;
}

@media screen and (max-width: 800px) {
	.service-area .item-header {
		grid-column: auto;
		padding: 20px;
		font-size: 20px;
	}
}

.service-area .item:has(.item-checkbox:checked) .item-header {
	color: #0c308e;
}

.service-area .item:has(.item-checkbox:checked) .item-header .tab-icon {
	background: #0c308e;
}

.service-area .item-header:hover {
	color: #0c308e;
}

.service-area .item-header:hover .tab-icon {
	background: #0c308e;
}

.service-area {
	/* 背景グラデーション(項目ごと) */
}

.service-area .item-box > .item:nth-child(1) .panel-inner-bg {
	background-image: url(../img/service/lineup_bk_1.jpg);
}

.service-area .item-box > .item:nth-child(2) .panel-inner-bg {
	background-image: url(../img/service/lineup_bk_2.jpg);
}

.service-area .item-box > .item:nth-child(3) .panel-inner-bg {
	background-image: url(../img/service/lineup_bk_3.jpg);
}

.service-area .item-box > .item:nth-child(4) .panel-inner-bg {
	background-image: url(../img/service/lineup_bk_4.jpg);
}

.service-area .item-box > .item:nth-child(5) .panel-inner-bg {
	background-image: url(../img/service/lineup_bk_5.jpg);
}

.service-area .tab-title {
	grid-column: 2;
	padding: 100px 0 50px 0;
}

@media screen and (max-width: 800px) {
	.service-area .tab-title {
		width: 100%;
		grid-column: auto;
		display: flex;
		justify-content: center;
	}
}

.service-area .tab-title .contents-title-set {
	--slash-color: #0c308e;
}

.service-area .tab-title .contents-title-set h2 {
	color: #0c308e;
}

.service-area .tab-row,
.service-area .item-box,
.service-area .item {
	display: contents;
}

@media screen and (max-width: 800px) {

	.service-area .tab-row,
	.service-area .item-box,
	.service-area .item {
		display: block;
	}
}

@media screen and (max-width: 800px) {
	.service-area .item-box {
		position: static;
		width: 100%;
	}
}

.service-area .item-box > .item:first-child .item-header {
	border-top: 1px solid #4461a7;
}

@media screen and (max-width: 800px) {
	.service-area .item-box::after {
		content: "";
		display: block;
		height: 92px;
	}
}

.service-area .tab-bottom-space {
	grid-column: 2;
	height: 100px;
}

@media screen and (max-width: 800px) {
	.service-area .tab-bottom-space {
		display: none;
	}
}

.service-area .item-panel-wrap {
	grid-column: 4;
	grid-row: 1/-1;
	contain: size;
	overflow: hidden;
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
}

@media screen and (max-width: 800px) {
	.service-area .item-panel-wrap {
		grid-column: auto;
		grid-row: auto;
		position: static;
		width: 100%;
		min-height: 0;
		contain: none;
		opacity: 1;
		pointer-events: auto;
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows 0.3s ease;
	}
}

.service-area .item:has(.item-checkbox:checked) .item-panel-wrap {
	opacity: 1;
	pointer-events: auto;
	z-index: 1;
}

@media screen and (max-width: 800px) {
	.service-area .item:has(.item-checkbox:checked) .item-panel-wrap {
		grid-template-rows: 1fr;
		z-index: auto;
	}
}

@media screen and (max-width: 800px) {
	.service-area .item:has(.item-checkbox:checked) .icon-vert {
		transform: translate(-50%, -50%) rotate(0deg);
		/* + → - */
	}
}

.solution-title-area {
	width: 72.9166666667%;
	margin: 150px auto;
}

@media screen and (max-width: 800px) {
	.solution-title-area {
		width: 80%;
		margin: 60px auto;
	}
}

.solution-title-area .contents-title-set {
	--slash-color: #0c308e;
}

.solution-title-area .contents-title-set h2 {
	color: #0c308e;
}

.solution-title-area .solution-area-title {
	font-size: clamp(19px, 1.1458333333vw, 22px);
	color: #0c308e;
	margin: 85px 0 30px 0;
}

.solution-title-area .solution-area-txt {
	font-size: clamp(14px, 0.8333333333vw, 16px);
}

.solution-area {
	display: flex;
	flex-direction: column;
	gap: 200px;
	margin-bottom: 200px;
}

@media screen and (max-width: 800px) {
	.solution-area {
		gap: 100px;
	}
}

.solution-area .solution-grid {
	display: grid;
	align-items: stretch;
	background: #fff;
	grid-template-columns: 12.5% auto 7.2916666667% 4.1666666667% 38.3333333333%;
	grid-template-areas: "gap2 contents gap1 number photo";
}

.solution-area .solution-grid:nth-child(odd) {
	grid-template-columns: 38.3333333333% 4.1666666667% 7.2916666667% auto 12.5%;
	grid-template-areas: "photo number gap1 contents gap2";
}

@media screen and (max-width: 800px) {

	.solution-area .solution-grid:nth-child(odd),
	.solution-area .solution-grid:nth-child(even) {
		grid-template-columns: 80% 20%;
		grid-template-areas: "number number" "contents contents" "photo  gap";
		row-gap: 10px;
	}
}

.solution-area .solution-grid .photo {
	width: 100%;
	grid-area: photo;
	aspect-ratio: 743/927;
	overflow: hidden;
	min-width: 0;
}

.solution-area .solution-grid .photo > lk-bgwiper {
	width: 100%;
	height: 100%;
}

.solution-area .solution-grid .photo > lk-bgwiper > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.solution-area .solution-grid .number {
	grid-area: number;
	min-width: 0;
}

.solution-area .solution-grid .number .number-area {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .number .number-area {
		width: 80%;
		flex-direction: row;
		margin: 0 auto;
	}
}

.solution-area .solution-grid .number .number-area .num {
	font-size: clamp(24px, 1.3541666667vw, 26px);
	font-family: Outfit !important;
	font-weight: 400;
	color: #0c308e;
	transform: rotate(90deg);
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .number .number-area .num {
		font-size: 24px;
		transform: none;
	}
}

.solution-area .solution-grid .number .number-area .line {
	width: 1px;
	height: 300px;
	background: #0c308e;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .number .number-area .line {
		width: auto;
		height: 1px;
		flex: 1;
	}
}

.solution-area .solution-grid .contents {
	grid-area: contents;
	min-width: 0;
}

.solution-area .solution-grid .contents .solution-contents-area {
	width: 100%;
	padding-top: 70px;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .contents .solution-contents-area {
		width: 80%;
		margin: 0 auto;
		padding-top: 50px;
		padding-bottom: 70px;
	}
}

.solution-area .solution-grid .contents .solution-contents-area h3 {
	display: flex;
	flex-direction: column;
	margin: 0;
}

.solution-area .solution-grid .contents .solution-contents-area h3 .title-en {
	font-size: 14px;
	font-family: Outfit !important;
	font-weight: 400;
	color: #0c308e;
}

.solution-area .solution-grid .contents .solution-contents-area h3 .title-jp {
	font-size: clamp(28px, 1.5625vw, 30px);
	font-weight: 400;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .contents .solution-contents-area h3 .title-jp {
		font-size: 28px;
	}
}

.solution-area .solution-grid .contents .solution-contents-area .solution-txt01 {
	font-size: clamp(14px, 0.8333333333vw, 16px);
	padding: 25px 0 50px 0;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .contents .solution-contents-area .solution-txt01 {
		font-size: 14px;
	}
}

.solution-area .solution-grid .contents .solution-contents-area h4 {
	width: 100%;
	display: flex;
	align-items: center;
	margin: 0;
	font-size: clamp(22px, 1.25vw, 24px);
	font-weight: 400;
	color: #0c308e;
	min-width: 0;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .contents .solution-contents-area h4 {
		font-size: 22px;
	}
}

.solution-area .solution-grid .contents .solution-contents-area h4::after {
	content: "";
	flex: 1 1 auto;
	height: 3px;
	background: #0c308e;
	margin-left: 20px;
	min-width: 20px;
}

.solution-area .solution-grid .contents .solution-contents-area ul.solution-list {
	margin: 25px 0 50px 0;
	display: flex;
	flex-direction: column;
}

.solution-area .solution-grid .contents .solution-contents-area ul.solution-list > li {
	display: flex;
	align-items: baseline;
	font-size: clamp(14px, 0.8333333333vw, 14px);
	color: #212121;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .contents .solution-contents-area ul.solution-list > li {
		font-size: 14px;
	}
}

.solution-area .solution-grid .contents .solution-contents-area ul.solution-list > li::before {
	content: "●";
	flex-shrink: 0;
	width: 1.2em;
}

.solution-area .solution-grid .contents .solution-contents-area .feature-area {
	margin-top: 20px;
}

.solution-area .solution-grid .contents .solution-contents-area .feature-area .feature-title {
	font-size: clamp(18px, 1.0416666667vw, 20px);
	color: #0c308e;
	margin: 0 0 10px;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .contents .solution-contents-area .feature-area .feature-title {
		font-size: 18px;
	}
}

.solution-area .solution-grid .contents .solution-contents-area .feature-area .feature-desc {
	font-size: clamp(14px, 0.8333333333vw, 16px);
	margin: 0 0 20px;
}

@media screen and (max-width: 800px) {
	.solution-area .solution-grid .contents .solution-contents-area .feature-area .feature-desc {
		font-size: 14px;
	}
}

.solution-area .solution-grid .contents .solution-contents-area .feature-area .feature-desc:last-child {
	margin-bottom: 0;
}

.rd-area {
	width: 100%;
	background-color: #ffffff;
	color: #212121;
	padding: 100px 0 70px 0;
	transition: background-color 0.6s ease, color 0.6s ease;
}

.rd-area .rd-inner {
	width: 72.9166666667%;
	margin: 0 auto;
}

@media screen and (max-width: 800px) {
	.rd-area .rd-inner {
		width: 80%;
	}
}

.rd-area .rd-inner .rd-txt {
	font-size: clamp(14px, 0.8333333333vw, 16px);
	margin: 40px 0;
}

@media screen and (max-width: 800px) {
	.rd-area .rd-inner .rd-txt {
		font-size: 22px;
	}
}

.rd-area .rd-inner .rd-box {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-bottom: 100px;
}

@media screen and (max-width: 800px) {
	.rd-area .rd-inner .rd-box {
		display: flex;
		flex-direction: column;
		gap: 60px;
	}
}

.rd-area .rd-inner .rd-box .rd-box-item {
	width: calc((100% - 80px) / 3);
}

@media screen and (max-width: 800px) {
	.rd-area .rd-inner .rd-box .rd-box-item {
		width: 100%;
	}
}

.rd-area .rd-inner .rd-box .rd-box-item p {
	font-size: 16px;
	margin-top: 5px;
}

.rd-area .rd-inner .rd-caption {
	font-size: 14px;
}

.rd-area.lk-scrolled {
	background-color: #212121;
	color: #ffffff;
}

.rd-area.lk-scrolled h2 span {
	color: #ffffff;
}

lk-bgwiper:not(:defined) {
	display: none;
}
