/*===============================================================================
***既存スタイル
================================================================================*/
#footer {
	--c-footer: var(--c-light);
	--c-footer_bgc: var(--c-main);
}
.l-footer__widgetArea,
.w-footer__box {
	padding: 0;
}
/* フッター前CTAの上下マージンを削除 */
.w-beforeFooter {
	margin: unset;
}
/* 幅広レイアウトに対応する為に必要 */
.w-footer__box {
	max-width: 100%;
}

/*===============================================================================
***マイフッター
================================================================================*/
.myFooter {
	color: var(--c-footer);
}
/* リンクアニメーション */
.myFooter a[href] {
	transition: var(--ani-t--normal);
}
.myFooter a[href]:is(:hover, :focus) {
	opacity: .7;
}

/* 背景色 */
.myFooter__bgc {
	position: relative;
	padding: var(--g-sec--lg) 0;
}
.myFooter__bgc::before {
	position: absolute;
	top: 0;
	left: calc(50% - 50vw);
	content: "";
	width: 100vw;
	height: 100%;
	background: var(--c-footer_bgc);
	z-index: -1000;
}
.myFooter__bgc::after {
	position: absolute;
	content: "";
	bottom: 0;
	left: calc(50% - 50vw);
	width: 100vw;
	height: 100%;
	max-height: 6rem;
	clip-path: polygon(0 0, 100% 100%, 0 100%);
	background: var(--c-blue-normal);
	z-index: -999;
}
@media (min-width: 768px) {
    .myFooter__bgc::after {
        max-height: 20rem;
    }
}

/* カラム */
.myFooter__flex {
	--count: 1;
	--gap: var(--g-sec--sm);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--gap);
}
@media (min-width: 960px) {
	.myFooter__flex {
		--count: 2;
		flex-wrap: nowrap;
	}
}

/*===============================
* info
* =================================*/
.myFtr-info {
	width: calc((100% - var(--gap) * (var(--count) - 1)) / var(--count));
}
.myFtr-info__logo {
	display: block;
	font-family: var(--ff-m);
	font-weight: var(--fw-lg);
	font-size: clamp(1.5rem, .76vw + 1.31rem, 2rem);
	margin-bottom: var(--g-sec--xs);
}
.myFtr-info__textArea {
	margin-bottom: var(--g-sec--xs);
	font-weight: var(--fw-md);
}
.myFtr-info__textArea p:not(:last-of-type) {
	margin-bottom: clamp(1rem, .38vw + .91rem, 1.25rem);
}
.myFtr-info__address {
	display: flex;
	flex-direction: column;
}
.myFtr-info__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 480 / 270;
	object-fit: cover;
}
@media (min-width: 960px) {
	.myFtr-info {
		max-width: 30rem;
	}
}

/*===============================
* mainNav
* =================================*/
.myFtr-mainNav__content {
	width: 100%;
}
.myFtr-mainNav {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin-bottom: 2.5rem;
}
.myFtr-mainNav__list {
	--count: 1;
	--gap: clamp(1.25rem, .76vw + 1.06rem, 1.75rem);
	display: flex;
	gap: var(--gap);
	flex-direction: column;
}
.myFtr-mainNav__list > li {
	position: relative;
	padding-bottom: 1.25rem;
	border-bottom: 1px dotted var(--c-blue-normal);
}
.myFtr-mainNav__list > li::before {
	position: absolute;
	content: "";
	width: .75rem;
	height: .75rem;
	background: var(--c-act01);
	border-radius: 100px;
	top: .375rem;
}
.myFtr-mainNav__list > li > a {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	margin-left: 1.25rem;
	font-weight: var(--fw-md);
	transition: var(--ani-t--normal) ease-out;
}
.myFtr-mainNav__list > li > a::before {
	content: attr(title);
	color: var(--c-light);
	line-height: 100%;
	font-size: 1.5rem;
	font-weight: var(--fw-lg);
}
.myFtr-mainNav__list > li > a:is(:hover, :focus) {
	opacity: .7;
}
@media (min-width: 960px) {
	.myFtr-mainNav__content {
		max-width: 30rem;
	}
	.myFtr-mainNav {
		flex-direction: unset;
		justify-content: space-between;
		margin-bottom: 1.75rem;
	}
	.myFtr-mainNav__list {
		max-width: 12.5rem;
		height: 100%;
	}
	.myFtr-mainNav__list > li {
		padding-bottom: unset;
		border-bottom: unset;
	}
}

/* サブメニュー */
.sub-menu {
	margin-top: 1rem;
	margin-left: 1.25rem;
}
.sub-menu > li:not(:last-of-type) {
	margin-bottom: 1rem;
}
.sub-menu > li > a {
	position: relative;
	display: block;
	font-size: 1rem;
	padding-left: .75rem;
}
.sub-menu > li > a::before {
	position: absolute;
	content: "";
	width: .5rem;
	height: 1px;
	background: var(--c-light);
	top: 50%;
	transform: translateY(-50%);
	left: 0;
}
@media (min-width: 960px) {
	.sub-menu {
		margin-top: .5rem;
	}
	.sub-menu > li:not(:last-of-type) {
		margin-bottom: .5rem;
	}
}

/*===============================
* bottomNav
* =================================*/
.myFtr-bottomNav {
	width: 100%;
}
.myFtr-bottomNav > ul {
	display: flex;
	gap: var(--g-16);
	justify-content: center;
}
.myFtr-bottomNav > ul:not(:last-of-type) {
	position: relative;
}
.myFtr-bottomNav > ul:not(:last-of-type)::before {
	position: absolute;
	top: 50%;
	right: -0.5em;
	transform: translate(50%, -50%);
	content: "";
	width: 0.5px;
	height: 0.75em;
	background: var(--c-dark);
}

/*===============================================================================
***ボタン
================================================================================*/
.myFooter__btn {
	text-align: center;
}
@media (min-width: 960px) {
	.myFooter__btn {
		text-align: left;
	}
}

/*===============================================================================
***コピーライト
================================================================================*/
.l-footer__foot {
	background: var(--c-light);
	padding: 1rem 0;
}