/* 追従ヘッダー（z-index: 200）と重なった際はフッターを前面に出す */
.l-footer {
	position: relative;
	z-index: 300;
	background: var(--color-primary);
	color: #fff;
}

.l-footer__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 40px;
	max-width: var(--container-max-wide);
	margin: 0 auto;
	padding: 80px 64px;
}

.l-footer__brand {
	flex: 0 0 auto;
	width: min(320px, 100%);
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.l-footer__logo img {
	max-width: 200px;
	height: auto;
}

.l-footer__company-name {
	margin: 0 0 16px;
	font-size: var(--fs-base);
	font-weight: var(--font-weight-bold);
}

.l-footer__company-address {
	margin: 0;
	font-size: var(--fs-sm);
	line-height: var(--line-height-body);
}

.l-footer__sns {
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
	display: flex;
	gap: 12px;
}

/* タップ領域 44px を確保しつつ、32px アイコンの見た目の位置は変えない */
.l-footer__sns a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: -6px;
	color: #fff;
	text-decoration: none;
}

.l-footer__sns svg {
	transition: scale var(--motion-duration-hover) var(--motion-ease);
}

@media (hover: hover) {
	.l-footer__sns a:hover svg {
		scale: 1.06;
	}
}

.l-footer__sns a:focus-visible svg {
	scale: 1.06;
}

.l-footer__sns--foot {
	display: none;
}

.l-footer__nav {
	flex: 0 1 auto;
	display: flex;
	gap: 64px;
	min-width: 0;
}

.l-footer__nav-col {
	flex: 0 0 auto;
}

.l-footer__menu,
.l-footer__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.l-footer .l-drawer__menu a,
.l-footer__menu > li.is-services > .sub-menu > li.menu-item-has-children > .l-drawer__row > a {
	font-size: var(--fs-sm);
}

/* Desktop: 通常のリスト表示。ドロワー由来のアコーディオン装飾を打ち消す */
@media (min-width: 768px) {
	.l-footer__menu > li + li {
		margin-top: 20px;
	}

	.l-footer__menu > li > a,
	.l-footer__menu > li > .l-drawer__row > a {
		font-weight: var(--font-weight-medium);
	}

	/* sub-menu: ul に左縦線を1本、li はインデントのみ */
	.l-footer__menu .sub-menu {
		margin-top: 12px;
		padding-left: 16px;
		border-left: 1px solid var(--color-divider-on-primary);
	}

	.l-footer__menu .sub-menu li {
		padding: 6px 0;
	}

	/* 「事業内容」（.is-services）の Lv2 は見出し扱い、Lv3 の UL に縦線 */
	.l-footer__menu > li.is-services > .sub-menu {
		border-left: none;
		padding-left: 0;
	}

	.l-footer__menu > li.is-services > .sub-menu > li.menu-item-has-children {
		margin-top: 16px;
	}

	.l-footer__menu > li.is-services > .sub-menu > li.menu-item-has-children > .l-drawer__row > a {
		padding: 0;
		color: var(--color-primary-light);
		font-weight: var(--font-weight-bold);
		text-align: left;
	}

	/* drawer.css 由来のアコーディオン用装飾を Desktop フッターでは無効化 */
	.l-footer .l-drawer__menu > li,
	.l-footer .l-drawer__menu .sub-menu li {
		border-top: none;
	}

	.l-footer .l-drawer__menu a {
		padding: 0;
		text-align: left;
	}

	.l-footer .l-drawer__menu .sub-menu {
		max-height: none;
		overflow: visible;
	}

	.l-footer .l-drawer__submenu-toggle {
		display: none;
	}

	.l-footer .l-drawer__row {
		position: static;
	}

	.l-footer .l-drawer__menu .menu-item-has-children > .l-drawer__row > a {
		cursor: pointer;
	}
}

/* 下部バー */
.l-footer__bottom {
	background: #fff;
	color: var(--color-primary);
}

.l-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
	max-width: var(--container-max-wide);
	margin: 0 auto;
	padding: 20px 64px;
	font-size: var(--fs-sm);
}

.l-footer__legal {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 16px;
}

.l-footer__legal a {
	color: var(--color-primary);
	text-decoration: none;
}

.l-footer__copyright {
	margin: 0;
}

/* SP: 単列 + drawer.css のアコーディオン見た目をそのまま適用 */
@media (max-width: 767px) {
	.l-footer__inner {
		flex-direction: column;
		gap: 40px;
		padding: 60px 20px;
	}

	.l-footer__bottom-inner {
		flex-direction: column;
		justify-content: center;
		text-align: center;
		gap: 8px;
		padding: 20px;
	}

	.l-footer__nav {
		flex-direction: column;
		gap: 0;
	}

	.l-footer__nav-col {
		width: 100%;
	}

	/* カラム間で白線が欠けるのを補う（2列目以降の先頭 li に上線を戻す） */
	.l-footer__nav-col + .l-footer__nav-col .l-drawer__menu > li:first-child {
		border-top: 1px solid #fff;
	}

	.l-footer__sns--brand {
		display: none;
	}

	.l-footer__sns--foot {
		display: flex;
		justify-content: center;
		margin: 0;
	}
}

/* メニューリンク：hover で下線が現れる（ドロワー共通の余白・ブロック表示を崩さないため text-decoration で描く） */
.l-footer__menu a,
.l-footer__legal a {
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 4px;
	transition: text-decoration-color var(--motion-duration-hover) var(--motion-ease);
}

@media (hover: hover) {
	.l-footer__menu a:hover,
	.l-footer__legal a:hover {
		text-decoration-color: currentColor;
	}
}

.l-footer__menu a:focus-visible,
.l-footer__legal a:focus-visible {
	text-decoration-color: currentColor;
}

/* 開閉用の見出しリンクは遷移しないので下線を出さない */
.l-footer__menu .menu-item-has-children > .l-drawer__row > a {
	text-decoration: none;
}
