/**
 * クリニックパターン 1 フッター (LP-fixed: 完全再現デザインのためブランド色は
 * ハードコード。#fff / navy 等のテーマ共通色のみ素の値を使用)。
 *
 * footer-clinic-pattern-1.php 専用。footer テンプレート = clinic-pattern-1
 * 選択時のみ enqueue される。
 */

.cp1-footer {
	--cp1f-navy: #2B4857;
	--cp1f-blue: #0066c9;
	--cp1f-teal: #0fc9c4;
	--cp1f-muted: #a7b4cc;
	--cp1f-line: rgba(255, 255, 255, 0.14);

	background: var(--cp1f-navy);
	color: #fff;
	font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont,
		"Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

.cp1-footer a {
	color: inherit;
	text-decoration: none;
}

.cp1-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 72px 42px 28px;
}

.cp1-footer__body {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 48px;
}

.cp1-footer__logo img {
	max-width: 260px;
	max-height: 64px;
	width: auto;
	height: auto;
	display: block;
}

.cp1-footer__logo-text {
	font-size: 22px;
	font-weight: 800;
}

.cp1-footer__catchcopy {
	margin: 18px 0 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--cp1f-muted);
	letter-spacing: 0.04em;
}

.cp1-footer__address {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.9;
	color: var(--cp1f-muted);
}

.cp1-footer__tel {
	display: inline-block;
	margin-top: 10px;
	font-family: Montserrat, sans-serif;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.cp1-footer__sns {
	display: flex;
	gap: 14px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.cp1-footer__sns a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--cp1f-line);
	border-radius: 50%;
	transition: background 0.2s, border-color 0.2s;
}

.cp1-footer__sns a:hover {
	background: var(--cp1f-teal);
	border-color: var(--cp1f-teal);
}

.cp1-footer__menus {
	display: grid;
	grid-template-columns: repeat(2, auto);
	gap: 12px 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cp1-footer__menus a {
	font-size: 14px;
	font-weight: 500;
	color: var(--cp1f-muted);
	transition: color 0.2s;
}

.cp1-footer__menus a:hover {
	color: #fff;
}

.cp1-footer__bottom {
	margin-top: 48px;
	padding-top: 22px;
	border-top: 1px solid var(--cp1f-line);
	text-align: center;
}

.cp1-footer__copyright {
	margin: 0;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--cp1f-muted);
}

/* ============ SP スクロール追従 固定 CTA ============ */
.cp1-footer__sticky-cta {
	display: none;
}

@media (max-width: 768px) {
	.cp1-footer__inner {
		padding: 48px 24px 24px;
	}

	.cp1-footer__body {
		flex-direction: column;
		gap: 32px;
	}

	.cp1-footer__menus {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.cp1-footer__sticky-cta {
		position: fixed;
		left: 10px;
		right: 10px;
		bottom: calc(10px + env(safe-area-inset-bottom));
		z-index: 100;
		height: 62px;
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
		overflow: hidden;
		border-radius: 12px;
		box-shadow: 0 8px 22px rgba(10, 35, 80, 0.13);
		opacity: 0;
		transform: translateY(16px);
		pointer-events: none;
		transition: opacity 0.25s ease, transform 0.25s ease;
	}

	.cp1-footer__sticky-cta.is-visible {
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}

	.cp1-footer__sticky-phone,
	.cp1-footer__sticky-web {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		color: #fff;
		font-size: 15px;
		font-weight: 800;
		letter-spacing: 0.04em;
	}

	.cp1-footer__sticky-phone {
		background: #0066c9;
	}

	.cp1-footer__sticky-web {
		background: #0fc9c4;
	}

	.cp1-footer__sticky-phone svg,
	.cp1-footer__sticky-web svg {
		width: 20px;
		height: 20px;
	}

	/* 固定バーの高さ分、ページ下部に余白を確保して内容が隠れないようにする */
	body:has(.cp1-footer__sticky-cta) {
		padding-bottom: calc(86px + env(safe-area-inset-bottom));
	}
}
