/* --------------------------------------------------------------------------------------
	「年金保険」の特徴
--------------------------------------------------------------------------------------- */

.features {
	margin-top: 68px;
	padding-bottom: 19.333vw;
}

.features h2 {
	font-size: 3.2rem;
	font-weight: var(--Bold);
}

.features h3 {
	display: inline-block;
	font-family: var(--font-corporate);
	font-size: 4.4rem;
	font-weight: var(--Bold);
	letter-spacing: 1px;
	margin-left: -22px;
	position: relative;
	z-index: 0;
}

.features h3::after {
	background: url(../images/deco_ttl.svg) no-repeat;
	background-size: 100% auto;
	bottom: -14px;
	content: '';
	display: block;
	height: 52px;
	left: 0;
	position: absolute;
	width: 404px;
	z-index: -1;
}

.features h3 span {
	display: inline-block;
	margin-left: -22px;
}

.features ol {
	display: inline-block;
	margin-left: auto;
	margin-right: auto;
	margin-top: 40px;
	min-width: 660px;
	text-align: left;
}

.features ol li {
	border-bottom: 2px dashed var(--color-gray);
	font-size: 2.6rem;
	font-weight: var(--Bold);
	min-height: 85px;
	padding-bottom: 18px;
	padding-left: 87px;
	padding-top: 13px;
}

.features ol li:nth-of-type(n+2) { margin-top: 16px; }

.features ol li:last-of-type {
	border-bottom: none;
	min-height: 68px;
	padding-bottom: 0;
}

.features h4 {
	background-color: var(--color-coral-blue);
	color: #fff;
	font-family: var(--font-corporate);
	font-size: 3.2rem;
	font-weight: var(--Bold);
	margin: 32px auto 60px;
	max-width: 660px;
	padding: 2px 0 4px;
	position: relative;
}

.features h4::after {
	background: url(../images/image_sp.png) no-repeat;
	background-size: 100% auto;
	content: '';
	display: block;
	height: 121px;
	position: absolute;
	right: -25px;
	top: -38px;
	width: 83px;
}

.features h4 span { font-size: 4rem; }

.features-details {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 61px;
	margin-top: 64px;
}

.features-details section {
	background-color: #fff;
	padding: 48px;
	width: 48.8%;
}

.features-details section h5 {
	font-size: 2.6rem;
	font-weight: var(--Bold);
	line-height: 1.4;
	min-height: 68px;
	padding-left: 32px;
	text-align: center;
}

.features-details section > .image { margin-top: 24px; }

.features-details section > p { margin-top: 16px; }

.features-details section:last-of-type {
	margin-top: 25px;
	text-align: center;
	width: 100%;
}

.features-details section .image-column {
	display: flex;
	justify-content: center;
}

.features-details section .image-column .image { max-width: 440px; }

.features-details section .image-column .text {
	margin-left: 20px;
	text-align: left;
	width: 49%;
}

.features-details section .image-column .text p { font-size: 1.8rem; }

.features-details section .image-column .text p:nth-of-type(n+2) { margin-top: 20px; }

.features-details section .image-column .text p span {
	display: inline-block;
	font-size: 2.4rem;
	font-weight: var(--Bold);
	position: relative;
	z-index: 0;
}

.features-details section .image-column .text p span::after {
	background-color: #fff07f;
	bottom: 0;
	content: '';
	display: block;
	height: 12px;
	position: absolute;
	width: 100%;
	z-index: -1;
}

.features-details section:last-of-type .note {
	display: inline-block;
	margin: 10px auto 24px;
}

.modal-point {
	background-color: #fff;
	border-radius: 12px;
	left: 50%;
	margin-top: 50px;
	opacity: 0;
	overflow: hidden;
	padding: 48px 42px;
	position: absolute;
	top: 50px;
	transform: translateX(-50%);
	z-index: -1111;
}

.modal-point .close {
	background: url(../images/btn_close.svg) no-repeat;
	cursor: pointer;
	height: 52px;
	position: absolute;
	right: -18px;
	top: -8px;
	width: 52px;
}

.modal-point article:nth-of-type(n+2) { margin-top: 20px; }

.modal-point article h5 {
	font-size: 2.2rem;
	font-weight: var(--Bold);
}

.modal-point article ul { margin-top: 10px; }

.modal-point .details {
	display: flex;
	justify-content: space-between;
	margin-bottom: 38px;
	margin-top: 26px;
}

.modal-point .details section {
	display: flex;
	flex-direction: column;
	max-width: 430px;
}

.modal-point .details section:nth-of-type(2) { max-width: 446px; }

.modal-point .details section h5 {
	align-items: center;
	display: flex;
	font-size: 1.8rem;
	font-weight: var(--Bold);
	justify-content: center;
	min-height: 54px;
	text-align: center;
}

.modal-point .details section .diagram { margin: 14px 0 20px; }

.modal-overlay {
	background-color: var(--bg-modal);
	height: 100%;
	left: 0;
	opacity: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: -1111;
}

.modal-overlay.fadeIn,
.modal.fadeIn {
	max-height: inherit;
	opacity: 1;
	overflow: inherit;
	transition: all .5s ease-in-out;
}

.modal-point .accordion section {
	font-size: 1.9rem;
	margin-top: 22px;
}

.modal-point .accordion .note-large,
.modal-point .accordion .text { margin-top: 24px; }

.modal-point .accordion .text {
	font-size: 1.9rem;
	margin-left: 21px;
}

@media (max-width: 768px) {

	.features {
		margin: 10.933vw 5.333vw 0;
		padding-bottom: 23.6vw;
	}

	.features h2 { font-size: 5.333vw; }
	.features h3 { font-size: 7.467vw; }

	.features h3 span { margin-left: -3.667vw; }

	.features h3::after {
		height: 8.8vw;
		left: 3.333vw;
		width: 64.333vw;
	}

	.features ol {
		margin-top: 5.333vw;
		min-width: inherit;
	}

	.features ol li {
		font-size: 4.267vw;
		min-height: 13.333vw;
		padding-bottom: 5.333vw;
		padding-left: 14.333vw;
		padding-top: 2.333vw;
	}

	.features ol li:nth-of-type(n+2) { margin-top: 5.333vw; }
	.features ol li:last-of-type { padding-top: 0; }

	.features h4 {
		font-size: 4.8vw;
		margin-bottom: 9.333vw;
		margin-top: 5.333vw;
		padding-left: 7.333vw;
		text-align: left;
	}

	.features h4::after {
		height: 22.533vw;
		right: 1.333vw;
		top: -12.333vw;
		width: 15.333vw;
	}

	.features h4 span { font-size: 6.4vw; }

	.features-details {
		display: block;
		margin-bottom: 9.333vw;
		margin-top: 10.667vw;
	}

	.features-details section {
		padding: 6.4vw 5.333vw 5.6vw;
		width: auto;
	}

	.features-details section:nth-of-type(n+2),
	.features-details section:last-of-type { margin-top: 5.333vw; }

	.features-details section h5 {
		align-items: center;
		display: flex;
		font-size: 4.8vw;
		justify-content: center;
		min-height: 11.2vw;
		padding-left: 11.2vw;
	}

	.features-details section > .image { margin-top: 2.667vw; }

	.features-details section > p { margin-top: 4.267vw; }

	.features-details section .image-column {
		display: block;
		margin-top: 4.267vw;
	}

	.features-details section .image-column .text {
		margin-left: 0;
		margin-top: 4.267vw;
		width: auto;
	}

	.features-details section .image-column .text p { font-size: 3.733vw; }
	.features-details section .image-column .text p:nth-of-type(n+2) { margin-top: 3.733vw; }

	.features-details section .image-column .text p span { font-size: 4.8vw; }
	.features-details section .image-column .text p span::after { height: 2.133vw; }

	.features-details section:last-of-type .note {
		text-align: left;
	}

	.modal-point {
		border-radius: 1.6vw;
		padding: 6.4vw 5.6vw;
		width: 89.067vw;
	}

	.modal-point .close {
		background-size: 100% auto;
		height: 8.533vw;
		right: -2.667vw;
		top: -2.667vw;
		width: 8.533vw;
	}

	.modal-point article h5 { font-size: 3.733vw; }
	.modal-point article ul { margin-top: 1.6vw; }

	.modal-point .details {
		display: block;
		margin-bottom: 4.267vw;
		margin-top: 4.8vw;
	}

	.modal-point .details section h5 {
		font-size: 3.533vw;
		min-height: inherit;
	}

	.modal-point .details section .diagram {
		margin-bottom: 2.933vw;
		margin-top: 1.6vw;
	}

	.modal-point .details section:nth-of-type(2) { margin-top: 6.4vw; }

	.modal-point .accordion section {
		font-size: 3.2vw;
		margin-top: 3.733vw;
	}

	.modal-point .accordion .note-large,
	.modal-point .accordion .text { margin-top: 2.667vw; }

	.modal-point .accordion .text {
		font-size: 3.2vw;
		margin-left: 0;
	}
}

/* --------------------------------------------------------------------------------------
	「年金保険」の特徴
--------------------------------------------------------------------------------------- */

.simulation { position: relative; }

.simulation::before {
	background: url(../images/bg_cloud_01.png) no-repeat center top;
	background-size: 100% auto;
	content: '';
	height: 14.633vw;
	left: 0;
	position: absolute;
	top: -14.333vw;
	width: 100%;
}

.simulation > h2 {
	background-color: var(--color-coral-blue);
	border-radius: 100vw;
	color: #fff;
	font-size: 2.6rem;
	font-weight: var(--Bold);
	margin: 0 auto -74px;
	max-width: 537px;
	padding: 2px 0 4px;
	position: relative;
	top: -74px;
}

.simulation > h2 strong {
	display: inline-block;
	margin-left: 38px;
	position: relative;
}

.simulation > h2 strong::before {
	background: url(../images/icon_megaphone.svg) no-repeat;
	background-size: 100% auto;
	content: '';
	display: block;
	height: 61px;
	left: -68px;
	position: absolute;
	top: -27px;
	width: 71px;
}

.simulation > h3 {
	display: inline-block;
	font-family: var(--font-corporate);
	font-size: 4.4rem;
	font-weight: var(--Bold);
	letter-spacing: 1px;
	margin-top: 54px;
	position: relative;
	z-index: 2;
}

.simulation > h3::after {
	background: url(../images/deco_ttl_blue.svg) no-repeat;
	background-size: 100% auto;
	bottom: -14px;
	content: '';
	display: block;
	height: 52px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 404px;
	z-index: -1;
}

.simulation .tab-wrap {
	margin-top: 72px;
	position: relative;
}

.simulation .tab-wrap::before {
	background: url(../images/simulation_bg.png) no-repeat;
	background-size: 100% auto;
	content: '';
	display: block;
	height: 150px;
	left: 74px;
	position: absolute;
	top: -170px;
	width: 886px;
}

.simulation .tab-wrap .tab-nav {
	border-bottom: 2px solid var(--color-coral-blue);
	display: flex;
}

.simulation .tab-wrap .tab-nav li { width: 100%; }
.simulation .tab-wrap .tab-nav li:nth-of-type(n+2) { margin-left: 8px; }

.simulation .tab-wrap .tab-nav li input { display: none; }

.simulation .tab-wrap .tab-nav li label {
	border: 2px solid var(--color-coral-blue);
	border-bottom: none;
	border-radius: 16px 16px 0 0;
	color: var(--color-coral-blue);
	cursor: pointer;
	display: block;
	font-size: 2rem;
	font-weight: var(--Bold);
	padding: 14px 0;
	text-align: center;
}

.simulation .tab-wrap .tab-nav li input:checked + label {
	background-color: var(--color-coral-blue);
	color: #fff;
}

.simulation .tab-wrap .tab-content {
	background-color: var(--color-sky-blue);
	display: none;
	padding: 36px 48px 32px;
}

.simulation .tab-wrap:has(.tab-nav li:nth-of-type(1) input[type='radio']:checked) .tab-content:nth-of-type(1),
.simulation .tab-wrap:has(.tab-nav li:nth-of-type(2) input[type='radio']:checked) .tab-content:nth-of-type(2),
.simulation .tab-wrap:has(.tab-nav li:nth-of-type(3) input[type='radio']:checked) .tab-content:nth-of-type(3){ display: block; }

.simulation .tab-wrap .tab-content .tab-head {
	margin-bottom: 16px;
	text-align: center;
}

.simulation .tab-wrap .tab-content .tab-head dt {
	font-size: 2rem;
	font-weight: var(--Bold);
}

.simulation .tab-wrap .tab-content .tab-head dd {
	font-size: 2.6rem;
	font-weight: var(--Bold);
}

.simulation .tab-wrap .tab-content .tab-head dd strong {
	display: inline-block;
	font-size: 4.8rem;
	position: relative;
}

.simulation .tab-wrap .tab-content .tab-head dd strong::after {
	content: '※1';
	font-size: 1.2rem;
	position: absolute;
	right: -29px;
	top: 13px;
}

.simulation .tab-wrap .tab-content .tab-details {
	display: flex;
	justify-content: space-between;
}

.simulation .tab-wrap .tab-content .tab-details section {
	background-color: #fff;
	max-width: 446px;
	padding: 12px 16px;
	text-align: center;
	width: 100%;
}

.simulation .tab-wrap .tab-content .tab-details section h4 {
	border-bottom: 1px dashed var(--color-gray);
	font-size: 1.9rem;
	font-weight: var(--Bold);
	padding-bottom: 12px;
}

.simulation .tab-wrap .tab-content .tab-details section h5 {
	font-size: 1.9rem;
	font-weight: var(--Bold);
	margin-top: 8px;
}

.simulation .tab-wrap .tab-content .tab-details section .before-after {
	display: flex;
	justify-content: space-between;
}

.simulation .tab-wrap .tab-content .tab-details section .before-after dt {
	font-size: 1.9rem;
	font-weight: var(--Bold);
}

.simulation .tab-wrap .tab-content .tab-details section .before-after .price {
	align-items: flex-end;
	display: flex;
	font-size: 2.1rem;
	font-weight: var(--Medium);
	justify-content: center;
	min-height: 46px;
	position: relative;
}

.simulation .tab-wrap .tab-content .tab-details section .before-after .before .price::after {
	background: url(../images/icon_tab_arrow.svg) no-repeat;
	content: '';
	display: block;
	height: 43px;
	position: absolute;
	right: -36px;
	top: 10px;
	width: 39px;
}

.simulation .tab-wrap .tab-content .tab-details section .before-after .rate,
.simulation .tab-wrap .tab-content .tab-details section .before-after .text {
	font-size: 1.5rem;
	font-weight: var(--Medium);
}

.simulation .tab-wrap .tab-content .tab-details section .before-after .before .rate { margin-top: 11px; }

.simulation .tab-wrap .tab-content .tab-details section .before-after .text { margin-top: 3px; }
.simulation .tab-wrap .tab-content .tab-details section .before-after .before .text { margin-top: 6px; }

.simulation .tab-wrap .tab-content .tab-details section .before-after .rate .note-text {
	font-size: 1.1rem;
	font-weight: var(--Regular);
}

.simulation .tab-wrap .tab-content .tab-details section .before-after .after .price {
	font-size: 2.4rem;
	font-weight: var(--Bold);
}

.simulation .tab-wrap .tab-content .tab-details section .before-after .after .price strong {
	font-size: 4.2rem;
	line-height: 1;
}

.simulation .tab-wrap .tab-content .tab-details section .before-after .after .rate { font-weight: var(--Bold); }
.simulation .tab-wrap .tab-content .tab-details section .before-after .after .rate .rate-text { font-size: 1.8rem; }
.simulation .tab-wrap .tab-content .tab-details section .before-after .after .rate strong { font-size: 2.4rem; }

.simulation .tab-wrap .tab-content details,
.simulation .tab-wrap .tab-content details .tab-details { margin-top: 24px; }
.simulation .tab-wrap .tab-content details summary { margin: auto; }

.simulation .tab-wrap .note { margin-top: 24px; }
.simulation .tab-wrap .note-num {
	margin-bottom: 56px;
	margin-top: 6px;
}

@media (max-width: 768px) {

	.simulation { padding-top: 4vw; }

	.simulation::before {
		background-image: url(../images/bg_cloud_01_sp.png);
		height: 14.133vw;
		top: -14.033vw;
	}

	.simulation > h2 {
		font-size: 4.8vw;
		margin-bottom: 0;
		max-width: 89.333vw;
		top: auto;
	}

	.simulation > h2 strong::before {
		height: 12.533vw;
		left: -15.333vw;
		top: -7.033vw;
		width: 14.533vw;
	}

	.simulation > h3 {
		font-size: 7.467vw;
		letter-spacing: -.1px;
		line-height: 1.3;
		margin-top: 5.6vw;
	}

	.simulation > h3::after {
		bottom: -2.667vw;
		height: 8.8vw;
		width: 67.333vw;
	}

	.simulation .tab-wrap {
		margin: 6.933vw 5.333vw 0;
		z-index: 2;
	}

	.simulation .tab-wrap::before {
		background-image: url(../images/simulation_bg_sp.png);
		height: 26.267vw;
		left: -5.333vw;
		top: -27.467vw;
		width: calc(100% + 10.667vw);
	}

	.simulation .tab-wrap .tab-nav li:nth-of-type(n+2) { margin-left: 1.067vw; }

	.simulation .tab-wrap .tab-nav li label {
		border-radius: 2.133vw 2.133vw 0 0;
		font-size: 3.733vw;
		padding: 2.133vw;
	}

	.simulation .tab-wrap .tab-content { padding: 5.6vw 5.333vw 6.4vw; }
	.simulation .tab-wrap .tab-content .tab-head { margin-bottom: 4.267vw; }
	.simulation .tab-wrap .tab-content .tab-head dt { font-size: 3.467vw; }
	.simulation .tab-wrap .tab-content .tab-head dd { font-size: 4.267vw; }
	.simulation .tab-wrap .tab-content .tab-head dd strong { font-size: 8.533vw; }

	.simulation .tab-wrap .tab-content .tab-head dd strong::after {
		font-size: 2vw;
		right: -3.667vw;
		top: 2.333vw;
	}

	.simulation .tab-wrap .tab-content .tab-details { display: block; }

	.simulation .tab-wrap .tab-content .tab-details section { padding: 1.867vw 2.933vw 2.4vw; }
	.simulation .tab-wrap .tab-content .tab-details section:nth-of-type(2) { margin-top: 2.667vw; }

	.simulation .tab-wrap .tab-content .tab-details section h4 {
		font-size: 3.467vw;
		padding-bottom: 1.6vw;
	}

	.simulation .tab-wrap .tab-content .tab-details section h5 {
		font-size: 3.467vw;
		margin-top: 1.067vw;
	}

	.simulation .tab-wrap .tab-content .tab-details section .before-after { margin-top: .8vw; }

	.simulation .tab-wrap .tab-content .tab-details section .before-after dt { font-size: 3.467vw; }

	.simulation .tab-wrap .tab-content .tab-details section .before-after .price {
		font-size: 3.733vw;
		min-height: 8.333vw;
	}

	.simulation .tab-wrap .tab-content .tab-details section .before-after .before .price::after {
		background-position: right center;
		background-size: cover;
		height: 7.6vw;
		right: -4.667vw;
		top: 1.433vw;
		width: 6.667vw;
	}

	.simulation .tab-wrap .tab-content .tab-details section .before-after .before .rate { margin-top: 1.633vw; }

	.simulation .tab-wrap .tab-content .tab-details section .before-after .rate,
	.simulation .tab-wrap .tab-content .tab-details section .before-after .text { font-size: 2.667vw; }

	.simulation .tab-wrap .tab-content .tab-details section .before-after .rate .note-text { font-size: 2.133vw; }

	.simulation .tab-wrap .tab-content .tab-details section .before-after .after .price { font-size: 4.267vw; }
	.simulation .tab-wrap .tab-content .tab-details section .before-after .after .price strong { font-size: 7.467vw; }
	.simulation .tab-wrap .tab-content .tab-details section .before-after .after .rate .rate-text { font-size: 3.2vw; }
	.simulation .tab-wrap .tab-content .tab-details section .before-after .after .rate strong { font-size: 4.267vw; }

	.simulation .tab-wrap .tab-content details { margin-top: 7.2vw; }
	.simulation .tab-wrap .tab-content details .tab-details { margin-top: 4.267vw; }

	.simulation .tab-wrap .note { margin-top: 5.6vw; }

	.simulation .tab-wrap .note-num {
		margin-bottom: 8.533vw;
		margin-top: 1.067vw;
	}
}

/* --------------------------------------------------------------------------------------
	3つのポイント
--------------------------------------------------------------------------------------- */

.point-3 {
	margin-top: 80px;
	padding-bottom: 13.333vw;
	text-align: center;
}

.point-3 h3 {
	font-size: 3.2rem;
	font-weight: var(--Bold);
	margin-left: auto;
	margin-right: auto;
}

.point-3 h3 span {
	position: relative;
	z-index: 1;
}

.point-3 h3 strong {
	display: inline-block;
	font-family: var(--font-corporate);
	font-size: 4.4rem;
	font-weight: var(--Bold);
	letter-spacing: 1px;
	position: relative;
	z-index: 0;
}

.point-3 h3 strong::after {
	background: url(../images/deco_ttl_blue.svg) no-repeat;
	background-size: 100% auto;
	bottom: -14px;
	content: '';
	display: block;
	height: 39px;
	left: -52px;
	position: absolute;
	width: 291px;
	z-index: -1;
}

.point-3 details { margin-top: 40px; }

.point-3 details article { margin-top: 48px; }

.point-3 details article h4 {
	color: var(--color-coral-blue);
	display: inline-block;
	font-family: var(--font-corporate);
	font-size: 3.6rem;
	font-weight: var(--Bold);
	min-height: 88px;
	position: relative;
}

.point-3 details article h4::after {
	color: #c2ebf7;
	content: '？';
	font-size: 7rem;
	line-height: 1;
	position: absolute;
	right: -78px;
	top: -3px;
	transform: rotate(43deg);
}

.point-3 details article h4 span {
	color: #fff;
	font-size: 3.8rem;
	height: 88px;
	left: -127px;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 103px;
}

.point-3 details article h4 span::after {
	background: url(../images/point_balloon.png) no-repeat;
	background-size: 100% auto;
	content: '';
	display: block;
	height: 100%;
	left: 6px;
	position: absolute;
	top: -18px;
	width: 100%;
	z-index: -1;
}

.point-3 details article h4 span::before {
	content: 'ポイント';
	display: block;
	font-size: 2.2rem;
}

.point-3 details article .diagram { margin-top: 30px; }

.point-3 details article .head-text { font-size: 2rem; }

.point-3 details article .small-text {
	font-size: 1.4rem;
	margin-top: 14px;
}

.point-3 details article details summary { margin: auto; }

.point-3 details article details .accordion { margin-top: 20px; }

.point-3 details article details .accordion h5 {
	font-size: 2.6rem;
	font-weight: var(--Bold);
	text-align: center;
}

.point-3 details article details .accordion ul { text-align: left; }
.point-3 details article details .accordion .note-num { margin-top: 20px; }
.point-3 details article details .accordion .note { margin-top: 10px; }

.point-3 details article .second-life {
	display: flex;
	justify-content: space-between;
}

.point-3 details article .second-life section {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	max-width: 488px;
	padding-top: 31px;
	position: relative;
}

.point-3 details article .second-life section h5 {
	font-size: 2.6rem;
	font-weight: var(--Bold);
	position: absolute;
	text-align: center;
	top: 0;
	width: 100%;
}

.point-3 details article .second-life section h5 span { font-size: 2rem; }

.point-3 details article .second-life section dl { margin-top: 16px; }

.point-3 details article .second-life section dt {
	font-size: 2rem;
	font-weight: var(--Bold);
	min-height: 30px;
}

.point-3 details article .second-life section dd {
	font-size: 1.4rem;
	margin-top: 16px;
	text-align: left;
}

@media (max-width: 768px) {

	.point-3 {
		margin: 14.667vw 5.333vw 0;
		padding-bottom: 8.533vw;
	}

	.point-3 h3 { font-size: 5.333vw; }
	.point-3 h3 span { letter-spacing: .5px; }
	.point-3 h3 strong { font-size: 7.467vw; }

	.point-3 h3 strong::after {
		height: 8.8vw;
		width: 67.333vw;
	}

	.point-3 details article { margin-top: 6.133vw; }
	.point-3 details article:nth-of-type(n+2) { margin-top: 10.667vw; }

	.point-3 details article h4 {
		display: block;
		font-size: 6.4vw;
		line-height: 1.3;
		min-height: 14.933vw;
		padding-left: 20.333vw;
	}

	.point-3 details article h4::after { display: none; }

	.point-3 details article:nth-of-type(2) h4 { padding-right: 11.333vw; }

	.point-3 details article:nth-of-type(2) h4::after {
		display: block;
		right: -1.667vw;
		transform: rotate(37deg);
	}

	.point-3 details article h4 span {
		font-size: 6.4vw;
		height: 14.933vw;
		left: 0;
		width: 17.2vw;
	}

	.point-3 details article:nth-of-type(n+2) h4 span { top: 11.033vw; }

	.point-3 details article h4 span::before { font-size: 3.733vw; }

	.point-3 details article h4 span::after {
		left: 1.333vw;
		top: -3.033vw;
	}

	.point-3 details article h4 b {
		font-size: 3.6vw;
		margin-top: 0;
		position: relative;
		top: -1.267vw;
	}

	.point-3 details article .diagram { margin-top: 0; }

	.point-3 details article > .text {
		font-size: 3.2vw;
		margin-top: 4.267vw;
		text-align: left;
	}

	.point-3 details article > .text .note { margin-top: 1.333vw; }

	.point-3 details article .head-text {
		font-size: 3.733vw;
		margin-bottom: 6.133vw;
		margin-top: 4.267vw;
	}

	.point-3 details article .small-text {
		font-size: 3.2vw;
		margin-top: 4.8vw;
		text-align: left;
	}

	.point-3 details details { margin-top: 4vw; }
	.point-3 details article details .accordion { margin-top: 4.8vw; }

	.point-3 details article details .accordion h5 { font-size: 4.267vw; }

	.point-3 details article .scroll-table { margin-top: 5.6vw; }

	.point-3 details article .scroll-table div img { max-width: 160vw; }
	.point-3 details article details .accordion .note-num { margin-top: 3.2vw; }

	.point-3 details article .second-life {
		display: block;
		margin-top: 4vw;
	}

	.point-3 details article .second-life section { padding-top: 0; }
	.point-3 details article .second-life section:nth-of-type(n+2) { margin-top: 4.8vw; }

	.point-3 details article .second-life section h5 {
		font-size: 4.8vw;
		position: relative;
	}

	.point-3 details article .second-life section h5 span { font-size: 3.733vw; }

	.point-3 details article .second-life section .diagram { margin-top: 4.267vw; }
	.point-3 details article .second-life section dl { margin-top: 3.2vw; }

	.point-3 details article .second-life section dt {
		font-size: 4.267vw;
		min-height: inherit;
	}

	.point-3 details article .second-life section dd {
		font-feature-settings: 'palt';
		font-size: 3.2vw;
		margin-top: 3.2vw;
	}
}

/* --------------------------------------------------------------------------------------
	こんな方におすすめ
--------------------------------------------------------------------------------------- */

.osusume {
	background-color: var(--color-sky-blue);
	margin-top: 64px;
	position: relative;
	z-index: 0;
}

.osusume::before,
.osusume::after {
	background-size: 100% auto !important;
	content: '';
	left: 0;
	position: absolute;
	width: 100%;
	z-index: -1;
}

.osusume::before {
	background: url(../images/bg_cloud_02.png) no-repeat center top;
	height: 14.633vw;
	top: -14.333vw;
}

.osusume::after {
	background: url(../images/bg_cloud_03.png) no-repeat center bottom;
	bottom: -8.333vw;
	height: 20.633vw;
}

.osusume > h2 {
	display: inline-block;
	font-family: var(--font-corporate);
	font-size: 4.4rem;
	font-weight: var(--Bold);
	position: relative;
	top: -86px;
	z-index: 0;
}

.osusume > h2::after {
	background: url(../images/deco_ttl.svg) no-repeat;
	background-size: 100% auto;
	bottom: -22px;
	content: '';
	display: block;
	height: 52px;
	left: -42px;
	position: absolute;
	width: 404px;
	z-index: -1;
}

.osusume > .text {
	font-size: 2rem;
	margin-bottom: 10px;
	margin-top: -35px;
}

.osusume .details {
	margin: 28px auto 60px;
	max-width: 664px;
}

.osusume .details h3 {
	background-color: var(--color-coral-blue);
	border-radius: 12px 12px 0 0;
	color: #fff;
	font-size: 2.6rem;
	font-weight: var(--Bold);
	padding: 8px 0;
}

.osusume .details > div {
	background-color: #fff;
	border-radius: 0 0 12px 12px;
	padding: 32px;
}

.osusume .details ul {
	display: inline-block;
	margin: auto;
	min-width: 474px;
	text-align: left;
}

.osusume .details li {
	border-bottom: 2px dashed #666;
	font-size: 2rem;
	font-weight: var(--Bold);
	margin-top: 15px;
	padding-bottom: 15px;
	padding-left: 32px;
	position: relative;
}

.osusume .details li:first-of-type { margin-top: 0; }
.osusume .details li:last-of-type {
	border-bottom: none;
	padding-bottom: 0;
}

.osusume .details li::before {
	background-color: var(--color-coral-blue);
	border-radius: 100vw;
	content: '';
	display: block;
	height: 20px;
	left: 0;
	position: absolute;
	top: 6px;
	width: 20px;
}

.osusume .satisfaction { margin-top: 62px; }

.osusume .satisfaction h4 {
	font-size: 2.8rem;
	font-weight: var(--Bold);
}

.osusume .satisfaction h4 span { font-size: 2.2rem; }

.osusume .satisfaction dl {
	align-items: baseline;
	display: flex;
	justify-content: center;
	margin-top: 14px;
}

.osusume .satisfaction dt { font-size: 1.9rem; }

.osusume .satisfaction dd {
	font-size: 3.8rem;
	font-weight: var(--Bold);
}

.osusume .satisfaction dd strong {
	color: var(--color-coral-blue);
	font-size: 6.4rem;
	line-height: 1;
}

.osusume .satisfaction p { font-size: 1.9rem; }

.osusume .satisfaction .text {
	font-weight: var(--Bold);
	margin-top: 22px;
}

@media (max-width: 768px) {

	.osusume::before {
		background-image: url(../images/bg_cloud_02_sp.png);
		height: 15.467vw;
		top: -15.167vw;
	}

	.osusume::after {
		background-image: url(../images/bg_cloud_03_sp.png);
		bottom: -25vw;
		height: 25.2vw;
	}

	.osusume > h2 {
		font-size: 7.467vw;
		top: auto;
	}

	.osusume > h2::after {
		bottom: -2.667vw;
		height: 8.8vw;
		left: -4.667vw;
		width: 67.333vw;
	}

	.osusume > .text {
		font-size: 3.733vw;
		margin-bottom: 3.2vw;
		margin-top: 7.2vw;
	}

	.osusume > .diagram { margin-left: 3.867vw; }

	.osusume .details { margin: 5.6vw 5.333vw 10.267vw; }

	.osusume .details h3 {
		border-radius: 1.6vw 1.6vw 0 0;
		font-size: 4.267vw;
		padding: 1.333vw;
	}

	.osusume .details > div { padding: 4.267vw 5.067vw; }

	.osusume .details ul {
		display: block;
		min-width: inherit;
	}

	.osusume .details li {
		font-size: 3.733vw;
		margin-top: 2.333vw;
		padding-bottom: 2.333vw;
		padding-left: 5.333vw;
	}

	.osusume .details li::before {
		height: 3.2vw;
		width: 3.2vw;
	}

	.osusume .satisfaction { margin-top: 10.133vw; }
	.osusume .satisfaction h4 { font-size: 4.8vw; }
	.osusume .satisfaction h4 span { font-size: 3.733vw; }
	.osusume .satisfaction dt { font-size: 3.2vw; }
	.osusume .satisfaction dd { font-size: 6.4vw; }
	.osusume .satisfaction dd strong { font-size: 10.667vw; }
	.osusume .satisfaction p { font-size: 3.2vw; }

	.osusume .satisfaction .text {
		font-size: 3.2vw;
		margin-top: 3.733vw;
	}
}

/* --------------------------------------------------------------------------------------
	よくあるご質問
--------------------------------------------------------------------------------------- */

.faq {
	margin-bottom: 80px;
	margin-top: 14.333vw;
}

.faq h2 {
	font-family: var(--font-corporate);
	font-size: 4.4rem;
	font-weight: var(--Bold);
	margin-bottom: 30px;
	text-align: center;
}

.faq .acc-plus-btn {
	border-bottom: none;
	padding-left: 48px;
}

.faq .acc-plus-btn::before {
	background: url(../images/icon_q.svg) no-repeat;
	background-size: 100% auto;
	content: '';
	display: block;
	height: 30px;
	left: 0;
	position: absolute;
	width: 30px;
}

.faq .accordion {
	background: url(../images/icon_a.svg) no-repeat;
	background-size: 30px auto;
	padding-bottom: 18px;
	padding-left: 48px;
}

.faq .accordion > h3,
.faq .accordion > p { font-size: 1.8rem; }

.faq .accordion > h3 { margin-bottom: 28px ;}

.faq .accordion table { width: 100%; }

.faq .accordion th {
	background-color: #fef7e3;
	border: 1px solid #c1c1c1;
	padding: 16px 0;
	text-align: center;
	vertical-align: middle;
}

.faq .accordion td {
	border: 1px solid #c1c1c1;
	padding: 16px 0;
	text-align: center;
	vertical-align: middle;
}

.faq .accordion tr:first-of-type th:first-of-type {
	background-color: transparent;
	border: none;
}

.faq .accordion > p:not(:first-child) { margin-top: 24px; }

.faq .accordion ol { counter-reset: number 0; }

.faq .accordion ol li {
	border: 2px solid #c1c1c1;
	font-size: 2rem;
	font-weight: var(--Bold);
	padding: 18px 24px 18px 125px;
	position: relative;
}

.faq .accordion ol li::after {
	background-color: #c1c1c1;
	bottom: -32px;
	clip-path: polygon(50% 100%, 0 0, 100% 0);
	content: '';
	display: block;
	height: 18px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 36px;
}

.faq .accordion ol li::before {
	color: var(--color-coral-blue);
	content: 'STEP' counter(number);
	counter-increment: number 1;
	font-family: var(--font-noto-Sans);
	font-size: 1.6rem;
	font-weight: var(--Bold);
	left: 40px;
	position: absolute;
	top: 20px;
}

.faq .accordion ol li:nth-of-type(n+2) { margin-top: 40px; }

.faq .accordion ol li span {
	font-size: 1.6rem;
	font-weight: var(--Regular);
}

.faq .accordion .comp { margin-top: 54px; }

.faq .accordion .comp h4 {
	font-size: 2.4rem;
	font-weight: var(--Bold);
	margin-bottom: 32px;
	text-align: center;
}

.faq .accordion .comp p { font-size: 1.4rem; }

.faq .accordion .comp ul { margin-top: 6px; }

@media (max-width: 768px) {

	.faq {
		margin: 33.8vw 5.333vw 13.333vw;
		text-align: center;
	}

	.faq h2 {
		display: inline-block;
		font-size: 7.467vw;
		margin-bottom: 7.733vw;
		margin-left: auto;
		margin-right: auto;
		position: relative;
	}

	.faq h2::after {
		background: url(../images/deco_ttl_blue.svg) no-repeat;
		background-size: 100% auto;
		bottom: -14px;
		content: '';
		display: block;
		height: 8.8vw;
		left: -10.667vw;
		position: absolute;
		width: 67.333vw;
		z-index: -1;
	}

	.faq details { text-align: left; }

	.faq .acc-plus-btn {
		font-size: 3.733vw;
		padding-left: 6.667vw;
		padding-right: 6.667vw;
	}

	.faq .acc-plus-btn::before {
		height: 5.067vw;
		top: 4.333vw;
		width: 5.067vw;
	}

	.faq .accordion {
		background-size: 5.067vw auto;
		padding-left: 6.667vw;
	}

	.faq .accordion > h3,
	.faq .accordion > p { font-size: 3.467vw; }

	.faq .accordion > h3 { margin-bottom: 2.133vw; }

	.faq .accordion table { font-size: 2.8vw; }

	.faq .accordion th,
	.faq .accordion td {
		padding: 1.6vw 1.067vw;
		vertical-align: middle;
	}

	.faq .accordion > p:not(:first-child) { margin-top: 4.267vw; }

	.faq .accordion ol li {
		font-size: 3.733vw;
		padding: 2.4vw 3.2vw 2.4vw 20.267vw;
	}

	.faq .accordion ol li::before {
		font-size: 3.2vw;
		left: 4.8vw;
		top: 50%;
		transform: translateY(-50%);
	}

	.faq .accordion ol li span { font-size: 3.2vw; }

	.faq .accordion .comp { margin-top: 13.333vw; }

	.faq .accordion .comp h4 {
		font-size: 4.8vw;
		margin-bottom: 5.6vw;
	}

}

/* --------------------------------------------------------------------------------------
	年金保険は日本生命で！
--------------------------------------------------------------------------------------- */

.closing {
	background-color: #f1f1ef;
	padding-bottom: 42px;
	padding-top: 72px;
}

.closing h2 {
	font-size: 3.6rem;
	font-weight: var(--Bold);
	margin-bottom: 56px;
}

.closing .at {
	background: url(../images/icon_warning.svg) no-repeat center top;
	background-size: 62px auto;
	margin-top: 64px;
	padding-top: 84px;
	text-align: left;
}

.closing .at a {
	display: inline-block;
	margin-right: 8px;
	padding-right: 25px;
	position: relative;
	text-decoration: underline;
}

.closing .at a::after {
	background: url(../images/icon_blank.svg) no-repeat;
	background-size: 100%;
	content: '';
	display: block;
	height: 25px;
	position: absolute;
	right: 0;
	top: 0;
	width: 24px;
}

@media (max-width: 768px) {

	.closing { padding: 10.667vw 5.333vw 10.133vw; }

	.closing h2 {
		font-size: 6.4vw;
		margin-bottom: 10.133vw;
	}

	.closing .at {
		background-size: 10.267vw auto;
		font-size: 3.2vw;
		margin-top: 7.467vw;
		padding-top: 13.867vw;
	}

	.closing .at a {
		display: inline;
		padding-right: 0;
	}

	.closing .at a::after {
		display: inline-block;
		height: 4vw;
		margin-left: .333vw;
		position: relative;
		vertical-align: middle;
		width: 4vw;
	}
}