/*
 * WIM — Footer
 *
 * ダーク背景のサイトマップ + LINE 友だち追加 CTA + SNS + コピーライト。
 *
 * @package WIM
 */

.wim-footer {
	background-color: var(--wim-bg-dark-tech);
	color: var(--wim-ink-inverse);
	padding: var(--wim-space-10) 0 var(--wim-space-7);
	margin-top: var(--wim-space-10);
}

.wim-footer__inner {
	max-width: var(--wim-container-max);
	margin: 0 auto;
	padding: 0 var(--wim-gutter);
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: var(--wim-space-8);
}

@media (max-width: 1023px) {
	.wim-footer__inner {
		grid-template-columns: 1fr 1fr;
		gap: var(--wim-space-7);
	}
}
@media (max-width: 600px) {
	.wim-footer__inner {
		grid-template-columns: 1fr;
		gap: var(--wim-space-6);
	}
}

.wim-footer__col {
	min-width: 0;
}

.wim-footer__eyebrow {
	font-family: var(--wim-font-sans);
	font-size: var(--wim-fs-meta);
	letter-spacing: var(--wim-ls-meta);
	text-transform: uppercase;
	color: var(--wim-accent-cyan);
	margin: 0 0 var(--wim-space-3);
}

.wim-footer__title {
	font-family: var(--wim-font-serif);
	font-size: var(--wim-fs-h5);
	font-weight: var(--wim-weight-bold);
	color: var(--wim-ink-inverse);
	margin: 0 0 var(--wim-space-4);
}

/* ---- Brand block ---- */
.wim-footer__brand {
	display: flex;
	flex-direction: column;
	gap: var(--wim-space-2);
	text-decoration: none;
	color: var(--wim-ink-inverse);
	margin-bottom: var(--wim-space-5);
}
.wim-footer__brand-name {
	font-family: var(--wim-font-serif);
	font-size: 28px;
	font-weight: var(--wim-weight-bold);
	letter-spacing: 0.06em;
}
.wim-footer__brand-tagline {
	font-family: var(--wim-font-sans);
	font-size: var(--wim-fs-caption);
	color: var(--wim-on-dark-low);
}

.wim-footer__lead {
	font-size: var(--wim-fs-body);
	line-height: var(--wim-lh-body);
	color: var(--wim-on-dark-muted);
	margin: 0 0 var(--wim-space-5);
}

/* ---- LINE CTA ---- */
.wim-footer__line-cta {
	display: inline-flex;
	align-items: center;
	gap: var(--wim-space-3);
	padding: var(--wim-space-3) var(--wim-space-5);
	background-color: var(--wim-line-brand); /* LINE official green */
	color: var(--wim-on-dark);
	font-family: var(--wim-font-sans);
	font-weight: var(--wim-weight-medium);
	font-size: 14px;
	text-decoration: none;
	border-radius: var(--wim-radius-pill);
	transition: background-color var(--wim-dur-base) var(--wim-ease),
				transform var(--wim-dur-base) var(--wim-ease),
				box-shadow var(--wim-dur-base) var(--wim-ease);
}
.wim-footer__line-cta:hover,
.wim-footer__line-cta:focus-visible {
	background-color: var(--wim-line-brand-dark);
	color: var(--wim-on-dark);
	transform: translateY(-1px);
	box-shadow: var(--wim-line-brand-shadow);
}
.wim-footer__line-cta-icon {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

/* ---- Sitemap menu ---- */
.wim-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wim-space-3);
}
.wim-footer__menu li {
	margin: 0;
}
.wim-footer__menu li + li {
	margin-top: 0;
}
.wim-footer__menu a {
	font-family: var(--wim-font-sans);
	font-size: 14px;
	color: var(--wim-on-dark-mid);
	text-decoration: none;
	transition: color var(--wim-dur-base) var(--wim-ease);
}
.wim-footer__menu a:hover,
.wim-footer__menu a:focus-visible {
	color: var(--wim-accent-cyan);
}

/* ---- Social ---- */
.wim-footer__social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wim-space-3);
}
.wim-footer__social li { margin: 0; }
.wim-footer__social li + li { margin-top: 0; }

.wim-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--wim-line-on-dark-strong);
	border-radius: var(--wim-radius-pill);
	color: var(--wim-on-dark-soft);
	text-decoration: none;
	font-family: var(--wim-font-serif);
	font-weight: var(--wim-weight-bold);
	font-size: 14px;
	transition: border-color var(--wim-dur-base) var(--wim-ease),
				color var(--wim-dur-base) var(--wim-ease),
				background-color var(--wim-dur-base) var(--wim-ease);
}
.wim-footer__social-link:hover,
.wim-footer__social-link:focus-visible {
	border-color: var(--wim-accent-cyan);
	color: var(--wim-accent-cyan);
	background-color: var(--wim-cyan-soft-bg);
}

/* ---- Bottom bar ---- */
.wim-footer__bottom {
	max-width: var(--wim-container-max);
	margin: var(--wim-space-8) auto 0;
	padding: var(--wim-space-5) var(--wim-gutter) 0;
	border-top: 1px solid var(--wim-line-on-dark-soft);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--wim-space-4);
}

.wim-footer__copyright {
	margin: 0;
	font-size: var(--wim-fs-meta);
	color: var(--wim-on-dark-faint);
	letter-spacing: 0.04em;
}

.wim-footer__legal {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var(--wim-space-5);
}
.wim-footer__legal li { margin: 0; }
.wim-footer__legal li + li { margin-top: 0; }
.wim-footer__legal a {
	font-family: var(--wim-font-sans);
	font-size: var(--wim-fs-meta);
	letter-spacing: var(--wim-ls-meta);
	text-transform: uppercase;
	color: var(--wim-on-dark-low);
	text-decoration: none;
}
.wim-footer__legal a:hover,
.wim-footer__legal a:focus-visible {
	color: var(--wim-accent-cyan);
}
