.retirement-key-answer {
	margin: 30px 0 42px;
	padding: 25px 28px;
	border: 0;
	border-radius: 22px;
	background: linear-gradient(135deg, #edf6f2, #f8fbf9);
}

.retirement-key-answer small {
	display: block;
	margin-bottom: 10px;
	color: #6f9388;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .16em;
}

.content-page .content-shell .retirement-key-answer p {
	margin: 0;
	color: #315f65;
	font-size: 17px;
	line-height: 2;
}

.retirement-contract-alert {
	margin: -12px 0 44px;
	padding: 28px 30px;
	border: 1px solid rgba(165, 104, 88, .22);
	border-radius: 22px;
	background: linear-gradient(135deg, #fff9f6, #fbf2ee);
	box-shadow: 0 12px 34px rgba(113, 79, 70, .07);
}

.retirement-contract-alert small {
	display: block;
	margin-bottom: 9px;
	color: #a56858;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
}

.content-page .content-shell .retirement-contract-alert .retirement-contract-title {
	margin: 0 0 15px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #7b5046;
	font-size: 22px !important;
	font-family: var(--font-serif);
	font-weight: 600;
	line-height: 1.6;
}

.content-page .content-shell .retirement-contract-alert p {
	margin: 0 0 10px;
	color: #715f5a;
	font-size: 15px;
	line-height: 1.95;
}

.content-page .content-shell .retirement-contract-alert p:last-child {
	margin-bottom: 0;
}

.content-page .content-shell .retirement-early-support-link {
	margin: 30px 0 0;
	padding: 20px 22px;
	background: rgba(95, 145, 174, .09);
	border-radius: 18px;
	color: #587485;
}

.retirement-early-support-link a {
	color: #315f83;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: rgba(49, 95, 131, .35);
	text-underline-offset: 4px;
}

.retirement-clinic-support {
	margin: 46px 0;
	padding: 38px;
	border: 1px solid rgba(49, 95, 101, .14);
	border-radius: 28px;
	background: linear-gradient(145deg, #f5faf7, #eef6f3);
}

.retirement-clinic-support header small {
	display: block;
	margin-bottom: 10px;
	color: #6d958a;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .16em;
}

.retirement-clinic-support header h2 {
	margin: 0 0 18px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #315f65;
	font-size: 27px !important;
	line-height: 1.65;
}

.retirement-clinic-support > div {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 26px 0;
}

.retirement-clinic-support article {
	position: relative;
	padding: 23px 22px 22px 60px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .82);
}

.retirement-clinic-support article b {
	position: absolute;
	top: 23px;
	left: 20px;
	color: #86a89d;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
}

.retirement-clinic-support article h3,
.retirement-clinic-detail h3 {
	margin: 0 0 9px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #315f65;
	font-size: 17px !important;
	line-height: 1.6;
}

.content-page .content-shell .retirement-clinic-support article p,
.content-page .content-shell .retirement-clinic-detail article p {
	margin: 0;
	color: #607983;
	font-size: 14px;
	line-height: 1.85;
}

.content-page .content-shell .retirement-support-note {
	margin: 0;
	padding-top: 21px;
	border-top: 1px solid rgba(49, 95, 101, .12);
	font-size: 14px;
	line-height: 1.9;
}

.retirement-term-grid,
.retirement-clinic-detail {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 13px;
	margin: 28px 0 42px;
}

.retirement-term-grid article,
.retirement-clinic-detail article {
	min-width: 0;
	padding: 24px;
	border: 1px solid rgba(49, 95, 101, .1);
	border-radius: 20px;
	background: rgba(255, 255, 255, .8);
}

.retirement-term-grid small,
.retirement-clinic-detail small {
	display: block;
	margin-bottom: 10px;
	color: #779b90;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .13em;
}

.retirement-term-grid h3 {
	margin: 0 0 11px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #315f65;
	font-size: 17px !important;
	line-height: 1.65;
}

.content-page .content-shell .retirement-term-grid p {
	margin: 0;
	color: #607983;
	font-size: 14px;
	line-height: 1.85;
}

.retirement-requirement-list,
.retirement-step-list {
	display: grid;
	gap: 12px;
	margin: 28px 0 40px;
	padding: 0 !important;
	list-style: none !important;
}

.retirement-requirement-list > article,
.retirement-step-list > article {
	padding: 22px 24px;
	border: 1px solid rgba(49, 95, 101, .1);
	border-radius: 18px;
	background: rgba(255, 255, 255, .8);
}

.retirement-requirement-list > article {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 18px;
	align-items: start;
}

.retirement-step-list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.retirement-step-list > article {
	display: flex;
	min-width: 0;
	min-height: 190px;
	flex-direction: column;
}

.retirement-requirement-number {
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 50%;
	background: #e5f1ed;
	color: #356d67;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
}

.retirement-step-kicker {
	display: block;
	margin-bottom: 9px;
	color: #8ca59e;
	font-size: 8px;
	font-weight: 600;
	letter-spacing: .15em;
	line-height: 1.4;
}

.retirement-list-copy {
	min-width: 0;
}

.retirement-requirement-list h3,
.retirement-step-list h3 {
	margin: 0 0 9px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #315f65;
	font-family: inherit;
	font-size: 16px !important;
	font-weight: 700;
	line-height: 1.65;
}

.retirement-requirement-list h3::before,
.retirement-step-list h3::before {
	display: none !important;
}

.content-page .content-shell .retirement-requirement-list p,
.content-page .content-shell .retirement-step-list p {
	margin: 0;
	color: #607983;
	font-size: 14px;
	line-height: 1.8;
}

.retirement-important-note {
	margin: 30px 0 44px;
	padding: 24px 26px;
	border: 1px solid rgba(183, 145, 87, .18);
	border-radius: 20px;
	background: #fbf7ed;
}

.retirement-important-note small {
	display: block;
	margin-bottom: 8px;
	color: #a17c45;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
}

.content-page .content-shell .retirement-important-note p {
	margin: 0;
	color: #6d6254;
	font-size: 15px;
	line-height: 1.95;
}

.retirement-path {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: stretch;
	gap: 10px;
	margin: 30px 0 44px;
}

.retirement-path article {
	position: relative;
	padding: 24px 21px;
	border-radius: 20px;
	background: #f0f7f4;
}

.retirement-path > i {
	align-self: center;
	color: #8aaba0;
	font-size: 19px;
	font-style: normal;
}

.retirement-path article b {
	display: block;
	margin-bottom: 18px;
	color: #97b4aa;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 24px;
}

.retirement-path article small {
	display: block;
	margin-bottom: 7px;
	color: #78988f;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: .1em;
}

.retirement-path h3 {
	margin: 0 0 10px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #315f65;
	font-size: 17px !important;
}

.content-page .content-shell .retirement-path p {
	margin: 0;
	color: #607983;
	font-size: 13px;
	line-height: 1.8;
}

.retirement-comparison {
	display: grid;
	gap: 1px;
	margin: 28px 0 42px;
	overflow: hidden;
	border: 1px solid rgba(49, 95, 101, .12);
	border-radius: 18px;
	background: rgba(49, 95, 101, .1);
}

.retirement-comparison > div {
	display: grid;
	grid-template-columns: minmax(160px, .8fr) minmax(0, 1.7fr) minmax(140px, .8fr);
	background: rgba(255, 255, 255, .92);
}

.retirement-comparison > div > * {
	padding: 16px 17px;
	color: #5e7680;
	font-size: 14px;
	line-height: 1.75;
}

.retirement-comparison .is-head {
	background: #e8f2ee;
}

.retirement-comparison .is-head span,
.retirement-comparison strong {
	color: #315f65;
	font-weight: 700;
}

.retirement-warning-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 28px 0 42px;
}

.retirement-warning-list article {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 16px 17px;
	border-radius: 15px;
	background: #fbf5f2;
}

.retirement-warning-list b {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	border-radius: 50%;
	background: #f1ddd6;
	color: #a56858;
	font-family: Georgia, "Times New Roman", serif;
}

.content-page .content-shell .retirement-warning-list p {
	margin: 0;
	color: #715f5a;
	font-size: 14px;
	line-height: 1.75;
}

.retirement-clinic-detail {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.retirement-boundary-note {
	margin: 31px 0 45px;
	padding: 29px 30px;
	border: 1px solid rgba(49, 95, 101, .12);
	border-radius: 22px;
	background: #f8faf9;
}

.retirement-boundary-note h3 {
	margin: 0 0 16px !important;
	padding: 0 !important;
	border: 0 !important;
	color: #315f65;
	font-size: 19px !important;
}

.retirement-boundary-note ul {
	margin-bottom: 17px;
}

.content-page .content-shell .retirement-boundary-note p {
	margin: 0;
	padding-top: 17px;
	border-top: 1px solid rgba(49, 95, 101, .1);
	font-size: 14px;
	line-height: 1.9;
}

.retirement-faq {
	display: grid;
	gap: 12px;
	margin: 28px 0 44px;
}

.retirement-faq details {
	overflow: hidden;
	margin: 0 !important;
	border: 1px solid rgba(49, 95, 101, .11);
	border-radius: 18px;
	background: #fff;
}

.retirement-faq summary {
	position: relative;
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	align-items: center;
	gap: 14px;
	padding: 19px 50px 19px 20px;
	color: #315f65;
	font-weight: 700;
	line-height: 1.75;
	cursor: pointer;
	list-style: none;
}

.retirement-faq summary::-webkit-details-marker {
	display: none;
}

.retirement-faq summary::after {
	position: absolute;
	top: 50%;
	right: 20px;
	color: #789b91;
	font-size: 20px;
	font-weight: 400;
	content: "＋";
	transform: translateY(-50%);
}

.retirement-faq details[open] summary::after {
	content: "−";
}

.retirement-faq summary span,
.retirement-faq details > div > b {
	display: grid;
	width: 36px;
	aspect-ratio: 1;
	place-items: center;
	border-radius: 50%;
	background: #e5f1ed;
	color: #356d67;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
}

.retirement-faq details > div {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 14px;
	margin: 0 !important;
	padding: 20px 20px 22px;
	border-top: 1px solid rgba(49, 95, 101, .1);
}

.retirement-faq details > div > b {
	background: #f5f0e6;
	color: #92784d;
}

.content-page .content-shell .retirement-faq details p {
	margin: 1px 0 0 !important;
	padding: 0;
	color: #607983;
	font-size: 15px;
	line-height: 1.9;
}

@media (max-width: 820px) {
	.retirement-term-grid {
		grid-template-columns: 1fr;
	}

	.retirement-path {
		grid-template-columns: 1fr;
	}

	.retirement-path > i {
		justify-self: center;
		transform: rotate(90deg);
	}
}

@media (max-width: 720px) {
	.retirement-key-answer,
	.retirement-contract-alert,
	.retirement-important-note,
	.retirement-boundary-note {
		padding: 22px 19px;
		border-radius: 18px;
	}

	.retirement-clinic-support {
		padding: 28px 19px;
		border-radius: 22px;
	}

	.retirement-clinic-support header h2 {
		font-size: 24px !important;
	}

	.retirement-clinic-support > div,
	.retirement-warning-list,
	.retirement-clinic-detail {
		grid-template-columns: 1fr;
	}

	.retirement-clinic-support article {
		padding: 21px 19px 20px 55px;
	}

	.retirement-requirement-list > article {
		grid-template-columns: 52px minmax(0, 1fr);
		gap: 12px;
		padding: 16px 15px;
	}

	.retirement-step-list {
		grid-template-columns: 1fr;
	}

	.retirement-step-list > article {
		min-height: 0;
		padding: 20px 18px;
	}

	.retirement-faq summary {
		grid-template-columns: 38px minmax(0, 1fr);
		gap: 11px;
		padding: 18px 46px 18px 17px;
		font-size: 15px;
	}

	.retirement-faq details > div {
		grid-template-columns: 38px minmax(0, 1fr);
		gap: 11px;
		padding: 18px 17px 20px;
	}

	.retirement-faq summary span,
	.retirement-faq details > div > b {
		width: 34px;
		font-size: 17px;
	}

	.retirement-comparison {
		gap: 10px;
		overflow: visible;
		border: 0;
		background: transparent;
	}

	.retirement-comparison .is-head {
		display: none;
	}

	.retirement-comparison > div {
		grid-template-columns: 1fr;
		padding: 17px;
		border: 1px solid rgba(49, 95, 101, .11);
		border-radius: 16px;
	}

	.retirement-comparison > div > * {
		padding: 4px 0;
	}

	.retirement-comparison > div > span:last-child::before {
		content: "申請先：";
		font-weight: 700;
	}
}
