/*
 * 共通ヘッダー/フッター(グローバルメニュー)専用レイヤー。
 * gas-kaishu本体のCSS(p-/c-/l-系)ともmonooki-kaishu本体のCSS(mk-系)とも
 * 衝突しないよう、splp-nav-* / splp-foot-* という独自プレフィックスのみを使う。
 */

:root {
	--splp-navy: #0f2a4a;
	--splp-blue: #0f3975;
	--splp-orange: #f47b12;
	--splp-line: #dfe6ee;
}

.splp-nav-header {
	position: sticky;
	top: 0;
	z-index: 500;
	background: #fff;
	border-bottom: 1px solid var(--splp-line);
}

.splp-nav-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 12px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.splp-nav-brand {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--splp-navy);
	text-decoration: none;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.3;
	min-width: 0;
}

.splp-nav-brand small {
	display: block;
	font-weight: 500;
	font-size: 11px;
	color: #667;
	white-space: nowrap;
}

.splp-nav-list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.splp-nav-list a {
	color: var(--splp-navy);
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
}

.splp-nav-list a:hover {
	text-decoration: underline;
}

.splp-nav-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.splp-nav-tel {
	color: var(--splp-navy);
	text-decoration: none;
	font-weight: 700;
	font-size: 15px;
	white-space: nowrap;
}

.splp-nav-cta {
	display: inline-block;
	background: var(--splp-orange);
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	font-size: 13px;
	padding: 9px 16px;
	border-radius: 999px;
	white-space: nowrap;
}

.splp-nav-toggle {
	display: none;
	width: 40px;
	height: 40px;
	border: none;
	background: transparent;
	position: relative;
	cursor: pointer;
}

.splp-nav-toggle span,
.splp-nav-toggle span::before,
.splp-nav-toggle span::after {
	position: absolute;
	left: 8px;
	width: 24px;
	height: 2px;
	background: var(--splp-navy);
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.splp-nav-toggle span {
	top: 19px;
}

.splp-nav-toggle span::before {
	content: "";
	top: -7px;
}

.splp-nav-toggle span::after {
	content: "";
	top: 7px;
}

.splp-nav-toggle.is-open span {
	background: transparent;
}

.splp-nav-toggle.is-open span::before {
	transform: translateY(7px) rotate(45deg);
}

.splp-nav-toggle.is-open span::after {
	transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 900px) {
	.splp-nav-list {
		display: none;
		width: 100%;
		flex-direction: column;
		gap: 0;
		order: 3;
	}

	.splp-nav-list.is-open {
		display: flex;
	}

	.splp-nav-list a {
		display: block;
		padding: 12px 4px;
		border-top: 1px solid var(--splp-line);
	}

	.splp-nav-inner {
		flex-wrap: wrap;
		padding: 10px 14px;
	}

	.splp-nav-toggle {
		display: block;
	}

	/* ブランド名のタグライン(小文字の説明文)はモバイルでは非表示にし、
	   電話番号・CTAボタン・ハンバーガーの3点が確実に収まる幅を確保する */
	.splp-nav-brand small {
		display: none;
	}

	.splp-nav-brand {
		font-size: 14px;
	}

	.splp-nav-actions {
		gap: 8px;
	}
}

@media (max-width: 480px) {
	.splp-nav-cta {
		padding: 8px 10px;
		font-size: 11.5px;
	}

	.splp-nav-brand {
		font-size: 12.5px;
	}

	/* さらに狭い画面では電話番号のテキストを隠し、アイコンのみのタップ領域にする
	   (電話番号自体はハンバーガーメニュー内やCTA遷移先でも確認できる) */
	.splp-nav-tel-text {
		display: none;
	}

	.splp-nav-tel {
		font-size: 0;
	}

	.splp-nav-tel::before {
		content: "";
		display: inline-block;
		width: 20px;
		height: 20px;
		background: var(--splp-navy);
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.4c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.3 1L6.6 10.8Z'/%3E%3C/svg%3E") no-repeat center / contain;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.4.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.4c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.3 1L6.6 10.8Z'/%3E%3C/svg%3E") no-repeat center / contain;
	}
}

/* ---------- Footer ---------- */

.splp-foot {
	background: var(--splp-navy);
	color: #cdd8e6;
	padding: 48px 20px 24px;
	margin-top: 0;
}

.splp-foot-inner {
	max-width: 1200px;
	margin: 0 auto;
}

.splp-foot-grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 32px;
	padding-bottom: 32px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

@media (max-width: 720px) {
	.splp-foot-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

.splp-foot-brand {
	color: #fff;
	font-weight: 700;
	font-size: 16px;
	text-decoration: none;
	display: inline-block;
	margin-bottom: 10px;
}

.splp-foot p {
	font-size: 13px;
	line-height: 1.8;
	margin: 0;
}

.splp-foot h2 {
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 10px;
}

.splp-foot-services {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.splp-foot-services a {
	color: #cdd8e6;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
}

.splp-foot-services a:hover {
	text-decoration: underline;
}

.splp-foot-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.splp-foot-list a {
	color: #cdd8e6;
	text-decoration: none;
	font-size: 13px;
}

.splp-foot-list a:hover {
	text-decoration: underline;
}

.splp-foot-bottom {
	padding-top: 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	font-size: 12px;
	color: #9aabc2;
}

.splp-foot-bottom-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.splp-foot-bottom-nav a {
	color: #9aabc2;
	text-decoration: none;
}

.splp-foot-bottom-nav a:hover {
	text-decoration: underline;
}
