/* footer
---------------------------*/

.footer {
	background: var(--green);
	border-radius: 40px 40px 0 0;
	margin-top: 80px;
	position: relative;

	.btn-lg__photo {
		padding: 11px 10.5px;
	}

	.btn-lg {
		a {
			justify-content: space-between;
		}
	}

	@media (max-width: 1023px) {
		margin-top: 40px;
		border-radius: 16px 16px 0 0;

		.btn-lg__photo {
			padding: 9px 8.5px;
		}
	}
}

.footer__map {
	transition: .3s;
	position: relative;

	&::before {
		position: absolute;
		bottom: -1px;
		left: 0;
		transform: scaleX(1);
		transform-origin: center left;
		width: 80%;
		height: 1px;
		background-color: var(--gray);
		content: '';
		transition: transform .3s ease;
	}

	&::after {
		position: absolute;
		bottom: -1px;
		left: 0;
		transform: scaleX(0);
		transform-origin: center left;
		width: 80%;
		height: 1px;
		background-color: #fff;
		content: '';
		transition: transform .3s ease;
	}

	&:hover {
		color: #fff;

		&::after {
			transform: scaleX(1);
		}
	}
}

.footer__logo {
	a {
		display: inline-block;

		&:hover {
			filter: brightness(90%);
		}
	}
}

@media (max-width: 767px) {
	.footer__logo {
		width: 154px;
		height: auto;
	}
}

.footer-nav__sp {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: var(--z-index-footer-menu);
}

.footer-nav__sp--ul {
	display: flex;
	align-items: center;
	border-radius: 8px 8px 0 0;
	border: 1px solid var(--green-200);
	background: var(--green);
	margin: 0 6px;
	position: relative;
	padding: 0 52px 0 8px;
}

.footer-nav__sp--li a {
	color: #fff;
	font-size: 11px;
	display: inline-block;
	padding: 24px 6px;
	width: 100%;
	text-align: center;
}

.footer-nav__sp--li:not(:last-child) {
	width: calc(100% / 4);
}

.footer-nav__sp--li:not(:nth-last-child(-n + 2)) a {
	position: relative;
}

.footer-nav__sp--li:not(:nth-last-child(-n + 2)) a:before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	width: 1px;
	height: 12px;
	background: var(--green-200);
}

@media (max-width: 767px) {
	.footer-button {
		z-index: 50;
		height: 6.5rem;
		width: 6.5rem;
		cursor: pointer;
		border-radius: 0 0 0 1.25rem;
		background: var(--green);
		position: absolute;
		top: 0;
		right: 0;
	}

	.footer-lines {
		position: relative;
		margin-left: auto;
		margin-right: auto;
		width: 40px;
		-webkit-transition-duration: 300ms;
		transition-duration: 300ms;

		.line {
			display: block;
			height: 1px;
			background-color: #fff;
			-webkit-transition-duration: 300ms;
			transition-duration: 300ms;
		}
	}

	.footer-lines .line:nth-child(1) {
		width: 100%;
	}

	.footer-lines .line:nth-child(2) {
		margin-top: 8px;
	}

	.footer-lines.active .line:nth-child(2) {
		margin-top: -1px;
		width: 100%;
	}

	.footer-lines.rotate .line {
		top: 0px;
		bottom: 0px;
		width: 100%;
	}

	.footer-lines.rotate .line:nth-child(1) {
		--tw-rotate: 25deg;
		-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
		transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
	}

	.footer-lines.rotate .line:nth-child(2) {
		--tw-rotate: -25deg;
		-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
		transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
	}

	/* spナビメニュー */
	.footer-nv-menu {
		inset: 0px;
		padding-top: 0px !important;
		position: fixed;
		top: 0px;
		right: 0px;
		/* z-index: var(--z-index-humberger); */
		height: 100%;
		width: 100%;
		transform: translateX(100%);
		background: var(--green);
		-webkit-transition-duration: 500ms;
		transition-duration: 500ms;
	}

	.footer-nv-menu.active {
		transform: translateX(0);
	}

	.footer-button {
		background: var(--green-300);
		border-radius: 4px;
		width: 2.75rem;
		height: 2.75rem;
	}

	.footer-lines {
		width: 24px;
	}

	.footer-button {
		top: auto;
		bottom: 10px;
		right: 8px;
	}

	.footer__ttl {
		max-width: 250px;
		width: 100%;
	}
}

/* footerナビメニュー
---------------------------*/
.footer-nv-menu__box {
	border-bottom: 1px solid var(--green-750);

	&:first-of-type {
		border-top: 1px solid var(--green-750);
	}

	a {
		display: block;
		padding: 4px 0;
	}

	font-size: .875rem;

	summary {
		display: flex;
		justify-content: space-between;
		align-items: center;
		position: relative;
		padding: 1.25rem 3em 1rem 0;
		cursor: pointer;

		&::-webkit-details-marker {
			display: none;
		}

		&::after {
			content: '';
			transition: transform .3s;
			position: absolute;
			right: 1em;
			width: 17px;
			height: 17px;
			margin-left: 10px;
			background: url(../../images/icons/icon-plus.webp) no-repeat center /contain;
		}
	}

	ul {
		transform: translateY(-10px);
		opacity: 0;
		margin: 0;
		padding: 0 0 24px;
		transition: transform .5s, opacity .5s;
	}

	&[open] {
		summary {
			&::after {
				background: url(../../images/icons/icon_minus.webp) no-repeat center /contain;
			}
		}

		ul {
			transform: none;
			opacity: 1;
		}
	}
}

.footer-nv-menu__wrap {
	height: calc(100svh - 360px);
	overflow-y: scroll;

	a {
		&:hover {
			color: #fff;
		}
	}
}


/* オーバーレイの基本スタイル */
#menu-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.4);
	/* 半透明の黒 */
	z-index: 5;
	/* メニューよりも後ろに表示 */
	display: none;
	/* デフォルトは非表示 */
}

/* オーバーレイを表示するクラス */
#menu-overlay.active {
	display: block;
}
