@charset "utf-8";

/*================================================================
# message
================================================================ */
.message .message__inner {
	display: grid;
	align-items: center;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 80px;
}

.message .message__text p {
	line-height: 2.5;
}

.message .message__catch {
	margin: 24px 0 0;
	font-family: var(--text-mincho);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.8;
	color: var(--primary);
	letter-spacing: 0.05em;
}

.message .message__media {
	position: relative;
	aspect-ratio: 4 / 5;
}

.message .message__media::before {
	width: 144px;
	height: 144px;
	opacity: 0.12;
	background: var(--primary);
	position: absolute;
	content: "";
	right: -40px;
	bottom: -40px;
	z-index: 0;
}

.message .message__media img {
	width: 100%;
	height: 100%;
	position: relative;
	display: block;
	object-fit: cover;
	z-index: 1;
	object-position: center center;
}

/*================================================================
# requirements
================================================================ */
.requirements .requirements__heading {
	text-align: center;
}

.requirements .requirements__heading .en {
	font-family: var(--text-en);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	color: var(--primary);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.requirements .requirements__heading h2 {
	margin-top: 16px;
	font-family: var(--text-mincho);
	font-size: 32px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.06em;
}

.requirements .requirements__heading h2::after {
	width: 48px;
	height: 2px;
	margin: 20px auto 0;
	background: var(--primary);
	content: "";
	display: block;
}

.requirements .requirements__list {
	margin: 64px auto 0;
	border-top: 1px solid var(--border03);
}

.requirements .requirements__list .item {
	border-bottom: 1px solid var(--border03);
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
}

.requirements .requirements__list dt {
	padding: 28px 32px;
	background: rgba(9, 80, 210, 0.04);
	font-family: var(--text-mincho);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.8;
	color: var(--primary);
	letter-spacing: 0.04em;
}

.requirements .requirements__list dd {
	padding: 28px 40px;
	background-color: var(--white);
	font-size: 14px;
	line-height: 2;
}

/*================================================================
# support
================================================================ */
.support .support__inner {
	display: grid;
	align-items: center;
	grid-template-columns: 360px minmax(0, 1fr);
	gap: 72px;
}

.support .support__media {
	position: relative;
	aspect-ratio: 4 / 5;
}

.support .support__media::before {
	width: calc(100% - 32px);
	height: calc(100% - 32px);
	border: 1px solid var(--border01);
	position: absolute;
	content: "";
	top: 32px;
	left: 32px;
}

.support .support__media img {
	width: 100%;
	height: 100%;
	position: relative;
	display: block;
	object-fit: cover;
	z-index: 1;
	object-position: center center;
}

.support .support__list {
	border-top: 1px solid var(--gray03);
}

.support .support__list li {
	padding: 20px 20px 20px 44px;
	border-bottom: 1px solid var(--gray03);
	position: relative;
	font-size: 14px;
	line-height: 1.8;
}

.support .support__list li::before {
	width: 8px;
	height: 8px;
	background: var(--primary);
	position: absolute;
	content: "";
	top: 29px;
	left: 20px;
}