@charset "utf-8";

/* -------------------------------------------------- */
/* PC*/
/* -------------------------------------------------- */
#inheritanceTop {
	padding-top: 40px;
	position: relative;
}

.inheritanceTopBg {
	position: absolute;
}

#inheritanceTopBg01 {
	top: 36%;
	left: 0;
}

#inheritanceTop .inner {
	position: relative;
	z-index: 1;
}

#inheritanceTopBox {
	margin-bottom: 30px;
	padding: 30px;
	font-weight: 700;
	font-family: "Zen Maru Gothic", serif;
	text-align: center;
	border: 2px solid #af79ac;
	border-radius: 20px;
}

#inheritanceTopBoxText01 {
	width: fit-content;
	margin-inline: auto;
	padding: 5px 20px;
	font-size: 2.2rem;
	color: #ffffff;
	background-color: #ab61a7;
	border-radius: 25px;
}

#inheritanceTopBoxText02 {
	font-size: 4rem;
	color: #ab61a7;
}

#inheritanceTopBoxText02 .textLg {
	margin-inline: 0.075em;
	font-size: 6.6rem;
	font-weight: 500;
	vertical-align: -4px;
}

#inheritanceTopBoxText03 {
	font-size: 2rem;
}

#inheritanceTopText {
	margin-bottom: 50px;
	font-size: 1.8rem;
	text-align: center;
	line-height: 1.89;
}

#inheritanceTopCase {
	margin-bottom: 80px;
	display: flex;
	align-items: center;
}

#inheritanceTopCaseImg {
	width: 50%;
	flex-shrink: 0;
	text-align: center;
}

#inheritanceTopCaseList {
	flex-grow: 1;
	padding-left: 30px;
	display: flex;
	flex-direction: column;
	row-gap: 15px;
}

#inheritanceTopCaseList li {
	padding: 15px 20px 15px 30px;
	position: relative;
	font-weight: 700;
	font-family: "Zen Maru Gothic", serif;
	background-color: #f8f8f8;
	border-radius: 60px;
}

#inheritanceTopCaseList li::before {
	content: "";
	width: 67px;
	height: 33px;
	position: absolute;
	left: -10px;
	bottom: 5px;
	background: url(../../img/inheritance/case_fukidashi.svg) no-repeat left center / contain;
	z-index: -1;
	display: none;
}

#inheritanceTopCta {
	padding: 40px;
	background-color: #fef290;
	border-radius: 20px;
}

#inheritanceTopCtaText01 {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap: 15px;
	font-size: 2.2rem;
	font-family: "Zen Maru Gothic", sans-serif;
}

#inheritanceTopCtaText01::before,
#inheritanceTopCtaText01::after {
	content: "";
	width: 1px;
	height: 1.3em;
	background-color: #333333;
}

#inheritanceTopCtaText01::before {
	transform: rotate(-26deg);
}

#inheritanceTopCtaText01::after {
	transform: rotate(26deg);
}

#inheritanceTopCtaText02 {
	margin-bottom: 10px;
	font-size: 3rem;
	font-weight: 700;
	font-family: "Zen Maru Gothic", sans-serif;
	letter-spacing: 0.05em;
	text-align: center;
}

#inheritanceTopCtaText02 .textColor {
	color: #ab61a7;
}

#inheritanceTopCtaText02 .textMd {
	font-size: 3.4rem;
}

#inheritanceTopCtaText02 .textLg {
	padding-inline: 0.05em;
	font-size: 5rem;
	letter-spacing: 0.025em;
	vertical-align: -2px;
}

#inheritanceTopCtaText03 {
	width: fit-content;
	margin-inline: auto;
	margin-bottom: 30px;
	padding: 5px 20px;
	font-size: 2.3rem;
	font-weight: 700;
	font-family: "Zen Maru Gothic", sans-serif;
	color: #ab61a7;
	background-color: #ffffff;
	border: 1px solid #af79ac;

}

/* 手続き
------------------------------------ */
#procedure {
	padding-top: 140px;
}

.procedureBlock {
	margin-bottom: 80px;
}

.procedureList {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
}

.procedureListItem {
	padding: 30px 25px 25px;
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 2;
	gap: 20px;
	border: 3px solid #d2d2d2;
	border-radius: 20px;
}

.procedureListImg {
	text-align: center;
}

.procedureListTitle {
	margin-bottom: 10px;
	font-size: 2rem;
	font-weight: 700;
}

.procedureListText {
	font-size: 1.6rem;
}

#procedureBottom {
	padding: 30px 50px 40px;
	background-color: #fbf4fd;
	border-radius: 20px;
}

#procedureBottomHead {
	margin-bottom: 10px;
	padding-left: 270px;
	position: relative;
	font-size: 2.2rem;
	font-weight: 700;
	font-family: "Zen Maru Gothic", sans-serif;
	line-height: 1.7;
}

#procedureBottomHead::after {
	content: "";
	width: 110px;
	height: 22px;
	margin-top: 10px;
	display: block;
	background: url(../../img/inheritance/procedure_deco_fukidashi.svg) no-repeat left center / contain;
}

#procedureBottomHead .textMd {
	font-size: 2.4rem;
	display: block;
}

#procedureBottomHead .textColor {
	position: relative;
	padding-bottom: 5px;
	color: #ab61a7;
}

#procedureBottomHead .textColor::before {
	content: "";
	width: 100%;
	height: 5px;
	position: absolute;
	bottom: 0;
	left: 0;
	background: url(../../img/inheritance/procedure_deco_wave.png) no-repeat center bottom / contain;
}

#procedureBottomLink {
	position: relative;
}

#procedureBottomLink::before {
	content: "";
	width: 120px;
	height: 150px;
	position: absolute;
	bottom: calc(100% - 36px);
	left: 120px;
	background: url(../../img/inheritance/procedure_deco_illust.png) no-repeat center center / contain;
	z-index: 1;
}

#procedureBottomLink a {
	padding: 30px 30px 30px 40px;
	display: flex;
	flex-direction: row-reverse;
	gap: 25px;
	background-color: #ffffff;
	border-radius: 20px;
}

#procedureBottomLinkImg {
	width: 31.6%;
	flex-shrink: 0;
}

#procedureBottomLinkImg img {
	width: 100%;
	border-radius: 15px;
}

#procedureBottomLinkContent {
	flex-grow: 1;
}

#procedureBottomLinkTitle {
	padding-bottom: 25px;
	margin-bottom: 25px;
	display: flex;
	align-items: center;
	gap: 20px;
	font-size: 2.8rem;
	font-weight: 700;
	font-family: "Zen Maru Gothic", serif;
	border-bottom: 1px solid #af79ac;
}

#procedureBottomLinkTitleLabel {
	width: 90px;
	height: 90px;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
	font-size: 1.6rem;
	color: #ab61a7;
	background-color: #ffffff;
	border: 1px solid #ab61a7;
	border-radius: 50%;
}

#procedureBottomLinkText {
	padding-right: 60px;
	position: relative;
}

#procedureBottomLinkText::after {
	content: "";
	width: 48px;
	height: 48px;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	background: url(../../img/common/icon_arrow_circle.svg) no-repeat center center / contain;
}

/* 流れ
------------------------------------ */
#flow {
	padding-top: 140px;
	position: relative;
}

.flowBg {
	position: absolute;
}

#flowBg01 {
	top: 6%;
	right: 0;
}

#flow .inner {
	position: relative;
	z-index: 1;
}

#flowList {
	display: flex;
	flex-direction: column;
	gap: 30px;
	counter-reset: number 0;
}

.flowListItem {
	padding: 20px 50px;
	min-height: 90px;
	position: relative;
	display: flex;
	align-items: center;
	gap: 25px;
	line-height: 1.3;
	background-color: #ffffff;
	border: 2px solid #dedcdb;
	border-radius: 15px;
}

.flowListItem::before {
	counter-increment: number 1;
	content: counter(number, decimal-leading-zero);
	flex-shrink: 0;
	font-size: 3rem;
	font-weight: 700;
	font-family: "Oswald", sans-serif;
	letter-spacing: 0.075em;
	color: #ab61a7;
}

.flowListItem:not(:last-child)::after {
	content: "";
	width: 38px;
	height: 16px;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	background: url(../../img/inheritance/flow_deco_arrow.svg) no-repeat center top / contain;
}

/* 料金について
------------------------------------ */
#price {
	padding-top: 140px;
	position: relative;
}

.priceBg {
	position: absolute;
}

#priceBg01 {
	top: 52%;
	left: 0;
}

#priceBg02 {
	top: 88%;
	right: 0;
}

#price .inner {
	position: relative;
	z-index: 1;
}

#pricePlan {
	margin-top: 150px;
	padding: 30px 50px 50px;
	background-color: #efe0ee;
	border-radius: 20px;
}

#pricePlanHead {
	margin-bottom: 30px;
	position: relative;
	text-align: center;
}

#pricePlanHeadImg {
	position: absolute;
	top: 50%;
	left: 5px;
	transform: translateY(-50%);
}

#pricePlanHeadTitle {
	margin-bottom: 10px;
	font-size: 3.4rem;
	font-weight: 700;
	font-family: "Zen Maru Gothic", sans-serif;
}

#pricePlanHeadText {
	font-size: 1.6rem;
}

.planBlock {
	padding: 20px 40px 30px;
	background-color: #ffffff;
	border-radius: 20px;
}

.planBlock + .planBlock {
	margin-top: 40px;
}

.planBlockHead {
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	font-weight: 700;
	font-family: "Zen Maru Gothic", sans-serif;
	color: #ab61a7;
}

.planBlockTitle {
	font-size: 2.8rem;
}

.planBlockPrice {
	margin-left: auto;
	font-size: 3rem;
}

.planBlockPrice .textLg {
	font-size: 4rem;
	font-weight: 500;
}

.planBlockContent {
	margin-bottom: 20px;
	padding: 15px 10px;
	background-color: #fef6b1;
}

.planBlockContentList {
	display: flex;
	justify-content: center;
	gap: 30px;
}

.planBlockContentList li {
	padding: 8px 20px;
	position: relative;
	font-size: 2rem;
	font-weight: 700;
	font-family: "Zen Maru Gothic", sans-serif;
	background-color: #ffffff;
	border-radius: 25px;
}

.planBlockContentList li:not(:last-child)::after {
	content: "＋";
	position: absolute;
	top: 50%;
	right: -26px;
	transform: translateY(-50%);
	font-size: 2.2rem;
}

.planBlockContentText {
	padding-top: 15px;
	font-size: 1.4rem;
	text-align: center;
}

.planBlockListWrap {
	display: flex;
	counter-reset: number 0;
	row-gap: 15px;
}

.planBlockList {
	padding-right: 30px;
	flex: 1;
	display: flex;
	flex-direction: column;
	row-gap: 15px;
}

.planBlockList li {
	padding-top: 5px;
	padding-left: 45px;
	position: relative;
}

.planBlockList li::before {
	counter-increment: number 1;
	content: counter(number);
	width: 35px;
	height: 35px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	font-size: 1.5rem;
	font-weight: 700;
	font-family: "Oswald", sans-serif;
	text-align: center;
	color: #ab61a7;
	border: 2px solid #efe0ee;
	border-radius: 50%;
}

/* よくある質問
------------------------------------ */
#faq {
	padding-top: 140px;
	padding-bottom: 40px;
}

#faq .inner {
	position: relative;
	z-index: 1;
}

/* ------------------------------------ */
/* ホバーエフェクト */
/* ------------------------------------ */
@media screen and (min-width: 1025px) {
	#procedureBottomLink a {
		transition: all 0.3s ease 0s;
	}

	#procedureBottomLink a:hover {
		opacity: 0.7;
	}
}

/* -------------------------------------------------- */
/* PC(調整) */
/* -------------------------------------------------- */
@media screen and (min-width: 1025px) and (max-width: 1280px) {
	#inheritanceTopCtaText01 {
		font-size: 2.1rem;
	}

	#procedureBottom {
		padding-inline: 30px;
	}

	#pricePlan {
		padding-inline: 30px;
	}
}

/* -------------------------------------------------- */
/* TAB&SP */
/* -------------------------------------------------- */
@media screen and (max-width: 1024px) {
	#inheritanceTopBg01 {
		width: 26.634vw;
	}

	#flowBg01 {
		width: 26.732vw;
	}

	#priceBg01,
	#priceBg02 {
		width: 26.732vw;
	}

	.planBlockHead {
		flex-direction: column;
		align-items: flex-start;
	}

	.planBlockListWrap {
		flex-direction: column;
	}
}


/* -------------------------------------------------- */
/* TAB(調整) */
/* -------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
	#inheritanceTopCaseImg {
		width: 40%;
	}

	.procedureList {
		gap: 15px;
	}

	.procedureListItem {
		padding: 30px 15px 15px;
	}

	#procedureBottom {
		padding-inline: 30px;
	}

	#procedureBottomHead {
		padding-left: 130px;
	}

	#procedureBottomLink::before {
		left: 0;
	}

	#pricePlan {
		padding-inline: 30px;
	}

	.planBlock {
		padding-inline: 25px;
	}

	.planBlockContentList {
		gap: 20px;
	}

	.planBlockContentList li {
		padding: 6px 10px;
		font-size: 1.6rem;
	}

	.planBlockContentList li:not(:last-child)::after {
		right: -18px;
		font-size: 1.6rem;
	}
}

/* -------------------------------------------------- */
/* SP(調整) */
/* -------------------------------------------------- */
@media screen and (max-width: 767px) {
	#inheritanceTopBox {
		padding: 20px;
		margin-bottom: 20px;
	}

	#inheritanceTopBoxText01 {
		font-size: 1.6rem;
		border-radius: 50px;
	}

	#inheritanceTopBoxText02 {
		font-size: 3rem;
	}

	#inheritanceTopBoxText02 .textLg {
		font-size: 5.4rem;
	}

	#inheritanceTopBoxText03 {
		font-size: 1.6rem;
		text-align: justify;
	}

	#inheritanceTopText {
		margin-bottom: 30px;
		font-size: 1.6rem;
		text-align: justify;
	}

	#inheritanceTopCase {
		margin-bottom: 50px;
		flex-direction: column;
		row-gap: 20px;
	}

	#inheritanceTopCaseImg {
		width: 80%;
	}

	#inheritanceTopCaseList {
		padding-left: 0;
		row-gap: 10px;
	}

	#inheritanceTopCaseList li {
		padding: 15px;
		font-size: 1.4rem;
	}

	#inheritanceTopCaseList li::before {
		content: none;
	}

	#inheritanceTopCta {
		padding: 30px 20px;
	}

	#inheritanceTopCtaText01 {
		margin-bottom: 20px;
		font-size: 1.5rem;
		text-align: center;
	}

	#inheritanceTopCtaText02 {
		font-size: 2.4rem;
	}

	#inheritanceTopCtaText02 .textMd {
		font-size: 3rem;
	}

	#inheritanceTopCtaText02 .textLg {
		font-size: 4.5rem;
		line-height: 1.3;
	}

	#inheritanceTopCtaText03 {
		font-size: 1.7rem;
		text-align: center;
	}

	/* 手続き
	------------------------------------ */
	#procedure {
		padding-top: 80px;
	}

	.procedureBlock {
		margin-bottom: 60px;
	}

	.procedureList {
		grid-template-columns: auto;
		gap: 15px;
	}

	.procedureListItem {
		padding: 20px 30px;
		display: flex;
		align-items: center;
		border-width: 2px;
	}

	.procedureListImg {
		width: 75px;
		height: 60px;
		flex-shrink: 0;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.procedureListImg img {
		max-height: 100%;
	}

	.procedureListTitle {
		font-size: 1.8rem;
	}

	.procedureListText {
		font-size: 1.5rem;
	}

	#procedureBottom {
		padding: 20px;
	}

	#procedureBottomHead {
		width: fit-content;
		margin-inline: auto;
		margin-bottom: 10px;
		padding-left: 100px;
		font-size: 1.5rem;
	}

	#procedureBottomHead::after {
		width: 80px;
		height: 16px;
	}

	#procedureBottomHead > span:nth-child(2) {
		display: block;
	}

	#procedureBottomHead .textMd {
		margin-bottom: 15px;
		margin-left: -90px;
		font-size: 1.9rem;
	}

	#procedureBottomHead .textColor::before {
		height: 4px;
	}

	#procedureBottomLink::before {
		width: 80px;
		height: 100px;
		bottom: calc(100% - 24px);
		left: calc(50% - 135px);
	}

	#procedureBottomLink a {
		padding: 20px;
		flex-direction: column;
	}

	#procedureBottomLinkImg {
		width: 100%;
	}

	#procedureBottomLinkTitle {
		margin-bottom: 20px;
		padding-bottom: 20px;
		font-size: 2.2rem;
		line-height: 1.3;
		gap: 5px;
	}

	#procedureBottomLinkTitleLabel {
		width: 60px;
		height: 60px;
		margin-right: 10px;
		display: flex;
		font-size: 1.2rem;
	}

	#procedureBottomLinkText {
		padding-right: 40px;
		font-size: 1.5rem;
	}

	#procedureBottomLinkText::after {
		width: 36px;
		height: 36px;
	}

	/* 流れ
	------------------------------------ */
	#flow {
		padding-top: 80px;
	}

	.flowListItem {
		padding: 15px 25px;
		gap: 20px;
		text-align: justify;
	}

	.flowListItem::before {
		font-size: 2.8rem;
	}

	/* 料金について
	------------------------------------ */
	#price {
		padding-top: 80px;
	}

	#price .heading01 {
		margin-bottom: 50px;
	}

	#pricePlan {
		margin-top: 60px;
		padding: 30px 20px;
	}

	#pricePlanHead {
		margin-bottom: 20px;
	}

	#pricePlanHeadImg {
		width: 80px;
		top: 25px;
		left: 50%;
		transform: translateX(-145px);
	}

	#pricePlanHeadTitle {
		width: fit-content;
		margin-inline: auto;
		padding-left: 90px;
		font-size: 2.2rem;
		text-align: left;
	}

	#pricePlanHeadText {
		font-size: 1.2rem;
	}

	.planBlock {
		padding: 20px;
	}

	.planBlockTitle {
		font-size: 1.9rem;
	}

	.planBlockPrice {
		font-size: 1.9rem;
	}

	.planBlockPrice .textLg {
		font-size: 2.5rem;
	}

	.planBlockContentList {
		flex-direction: column;
	}

	.planBlockContentList li {
		font-size: 1.5rem;
		text-align: center;
	}

	.planBlockContentList li:not(:last-child)::after {
		top: auto;
		right: 0;
		bottom: -26px;
		left: 50%;
		transform: translateX(-50%);
		font-size: 1.6rem;
	}

	.planBlockContentText {
		font-size: 1.3rem;
		text-align: left;
	}

	.planBlockList {
		padding-right: 0;
	}

	.planBlockList li {
		padding-top: 0;
		padding-left: 40px;
		font-size: 1.5rem;
	}

	.planBlockList li::before {
		width: 30px;
		height: 30px;
		top: 50%;
		transform: translateY(-50%);
		font-size: 1.4rem;
	}

	/* よくある質問
	------------------------------------ */
	#faq {
		padding-top: 80px;
		padding-bottom: 0;
	}
}