@charset "utf-8";

/* ===============================================
   フッター（SP：390px 基準）
   =============================================== */
@media (max-width: 767.98px) {
	.cst-footer {
		padding: 50px 20px;
	}

	/* ロゴ・説明・SNS */
	.cst-footer__logo {
		margin-bottom: 0;
	}
	.cst-footer__logo img {
		height: 40px;
	}
	.cst-footer__desc {
		max-width: 260px;
		margin: 16px 0 0;
		font-size: 14px;
		line-height: 24px;
		color: rgba(255, 255, 255, .4);
	}
	.cst-footer__social {
		gap: 8px;
		padding-top: 20px;
	}

	/* メニュー：2列、Contact は全幅 */
	.cst-footer__cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 16px;
		margin-bottom: 32px;
	}
	.cst-footer__cols > :last-child {
		grid-column: 1 / -1;
	}
	.cst-footer__title {
		margin: 0 0 12px;
		font-size: 14px;
		line-height: 21px;
		color: rgba(255, 255, 255, .5);
	}
	.cst-footer__title a {
		color: rgba(255, 255, 255, .5);
	}
	.cst-footer__title--line {
		padding-bottom: 8px;
		border-bottom-color: rgba(255, 255, 255, .2);
	}
	.site-footer .cst-footer p.cst-footer__cat,
	.cst-footer p.cst-footer__cat {
		margin: 0 0 8px;
		font-size: 14px;
		line-height: 21px;
	}
	.cst-footer__cat a {
		color: rgba(255, 255, 255, .5);
	}
	.cst-footer__list li + li {
		margin-top: 8px;
	}
	.cst-footer__list a {
		font-size: 14px;
		line-height: 21px;
		color: rgba(255, 255, 255, .7);
	}
	.cst-footer__address {
		padding-top: 0;
		font-size: 13px;
		line-height: 23px;
		color: rgba(255, 255, 255, .7);
	}
	.cst-footer__address a {
		color: rgba(255, 255, 255, .7);
		text-decoration: underline;
	}

	/* 最下部：リンク → コピーライト */
	.cst-footer__bottom {
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: 8px;
		padding-top: 20px;
		border-top-color: rgba(255, 255, 255, .2);
		font-size: 12px;
		line-height: 18px;
		color: rgba(255, 255, 255, .5);
	}
	.cst-footer__bottom p:has(a) {
		font-size: 0;
	}
	.cst-footer__bottom a {
		margin-right: 16px;
		font-size: 12px;
		line-height: 18px;
		color: rgba(255, 255, 255, .5);
	}
}
