/* ==================================================
	base
================================================== */

.main_content {
	line-height: 1.375;
}
.main_content img {
	height: auto;
}
.main_content.w_100vw {
	overflow-x: clip;
}



/* ----------------------------------------
	breadcrumbs, title
---------------------------------------- */

.page_title_area_aem {
	display: none;
}

@media screen and (max-width: 1023px) {
	.breadcrumbs.for_mobile {
		display: none;
	}
}

@media screen and (min-width: 1024px) {
	.breadcrumbs.for_pc {
		display: none;
	}
}



/* ----------------------------------------
	page_top
---------------------------------------- */

@media screen and (min-width: 1024px) {
	.page_top {
		padding: 0;
		border-top: none;
	}
	.page_top_text {
		display: none;
	}
}



/* ----------------------------------------
	p
---------------------------------------- */

.main_content div + p,
.main_content ul + p,
.main_content ol + p,
.main_content dl + p,
.main_content table + p,
.main_content img + p {
	margin-top: 1em;
}





/* ==================================================
	common
================================================== */

/* ----------------------------------------
	color
---------------------------------------- */

:root {
	--key-color: #4D52E5;
	--orange-bloom: #FF5050;
}

.fc_key { color: var(--key-color) !important; }
.fc_orange { color: var(--orange-bloom) !important; }



/* ----------------------------------------
	button
---------------------------------------- */

.main_content .button.critical {
	background: #4759F5;
}
.main_content .button.critical:hover {
	background: #3f4dd3;
}



/* ----------------------------------------
	cont_wrap
---------------------------------------- */

.cont_wrap {
	padding: 40px 20px;
}

@media screen and (min-width: 768px) {
	.cont_wrap {
		padding: 50px 30px;
	}
}

@media screen and (min-width: 1024px) {
	.cont_wrap {
		padding-top: 60px;
		padding-bottom: 60px;
	}
}





/* ==================================================
	local_navi
================================================== */

.local_navi {
	width: 100vw;
	padding: 0 20px;
	background: #fff;
}
.local_navi .cont {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 16px;
	max-width: 1220px;
	padding: 10px 0;
	margin: 0 auto;
}
.local_navi h2 {
	font-size: 20px;
	line-height: 1.3;
}
.local_navi .button {
	white-space: nowrap;
}

@media screen and (min-width: 768px) {
	.local_navi {
		padding: 0 30px;
	}
}

@media screen and (min-width: 1024px) {
	.local_navi .cont {
		min-height: 70px;
	}
}

/* 小さいデバイス用 */
@media screen and (max-width: 479px) {
	.local_navi .cont {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.local_navi h2 {
		font-size: 18px;
	}
	.local_navi .button {
		font-size: 13px;
		padding: .5em .8em;
		margin-left: auto;
	}
}





/* ==================================================
	main
================================================== */

.main {
	padding: 40px 20px;
	background: linear-gradient(135deg, rgb(255, 255, 255) 20%, rgb(219, 221, 255) 100%);
}
.main .cont {
	max-width: 910px;
}

@media screen and (min-width: 768px) {
	.main {
		padding: 60px 30px;
	}
}





/* ==================================================
	detail
================================================== */

.detail_table {
	width: 100%;
}
.detail_table th,
.detail_table td {
	vertical-align: middle;
	padding: 10px 5px;
	font-size: 14px;
	font-weight: normal;
	text-align: left;
	border-bottom: 1px solid #000;
}
.detail_table th {
	white-space: nowrap;
}
.detail_table a:link,
.detail_table a:visited {
	color: inherit;
	text-decoration: underline;
}
.detail_table a:hover {
	text-decoration: none;
}

@media screen and (min-width: 1024px) {
	.detail_table th,
	.detail_table td {
		font-size: 16px;
		padding-right: 16px;
		padding-left: 16px;
	}
}





/* ==================================================
	flow
================================================== */

.flow {
	background: #F8FAFF;
}
.flow_list {
	display: grid;
	gap: 50px;
	margin-top: 30px;
}
.flow_list > li:not(:last-child) {
	position: relative;
	padding: 15px;
	text-align: center;
	background: #fff;
	border: 1px solid #D9D9D9;
	border-radius: 16px;
}
.flow_list > li:not(:last-child)::after {
	content: url(images/flow_arrow.png);
	position: absolute;
	width: 48px;
	height: 20px;
}
.flow_list .step {
	font-size: 13px;
}
.flow_list .step span {
	display: block;
	font-size: 22px;
	line-height: 1;
}

@media screen and (max-width: 1023px) {
	.flow_list > li:not(:last-child)::after {
		top: calc(100% + 15px);
		left: 50%;
		transform: translateX(-50%);
	}
	.flow_list > li:last-child {
		max-width: max-content;
		margin: 0 auto;
	}
	.flow_list > li:not(:last-child) p br {
		display: none;
	}
}

@media screen and (min-width: 1024px) {
	.flow_list {
		grid-template-columns: 1fr 1fr 1fr 25%;
	}
	.flow_list > li:not(:last-child)::after {
			top: 50%;
			left: calc(100% + 3px);
			transform: translateY(-50%) rotate(-90deg);
	}
	.flow_list > li:last-child {
		align-self: center;
		padding-left: 10px;
	}
}





/* ==================================================
	services_wxp
================================================== */

.services_wxp {
	display: grid;
	gap: 30px 40px;
}
.services_wxp .media img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

@media screen and (min-width: 768px) {
	.services_wxp {
		grid-template-columns: 1fr 49.18032786885246%;
	}
	.services_wxp .cont {
		align-self: center;
	}
}
