/*
 * CIS Base — layout.css
 * 全体レイアウト（内側コンテナ・ヘッダー・フッター・セクション余白）。
 */

/* 内側の最大幅コンテナ。全幅セクションの中で使う。 */
.l-inner {
	width: 100%;
	max-width: var(--cis-inner-max);
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* ===== ヘッダー ===== */
.p-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent);
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--wp--preset--color--border);
	transition: transform 0.4s var(--cis-ease);
}
/* スクロールダウンで隠す */
.p-header.is-hidden {
	transform: translateY(-100%);
}
.p-header__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: var(--cis-header-h);
}
.p-header__logo {
	display: inline-flex;
	align-items: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: 1.35rem;
	letter-spacing: 0.04em;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}
.p-header__logo img {
	height: 40px;
	width: auto;
}
.p-header__right {
	gap: 1.25rem;
}

/* コア Navigation ブロック（.p-header__nav）のトップレベル項目 */
.p-header__nav {
	--wp--style--block-gap: 1.5rem;
}
.p-header__nav .wp-block-navigation-item__content {
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--wp--preset--color--contrast);
	position: relative;
	padding-block: 0.35rem;
}
/* 下線ホバー（トップレベルのリンクのみ） */
.p-header__nav > ul > li:not(.has-child) > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--cis-ease);
}
.p-header__nav > ul > li:not(.has-child) > .wp-block-navigation-item__content:hover::after {
	transform: scaleX(1);
}
/* サブメニュー（ドロップダウン）の見た目 */
.p-header__nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md, 14px);
	box-shadow: var(--cis-shadow-md);
	padding: 0.5rem;
	min-width: 220px;
}

/* 検索アイコンボタン */
.p-header__search .wp-block-search__button {
	background: var(--wp--preset--color--surface-2);
	color: var(--wp--preset--color--contrast);
	border: 0;
	border-radius: 50%;
	width: 40px;
	height: 40px;
	padding: 0;
	display: grid;
	place-items: center;
}
.p-header__search .wp-block-search__button:hover {
	background: var(--wp--preset--color--accent);
	color: #fff;
}

/* ===== メイン ===== */
.site-main {
	display: block;
}

/* セクションの縦リズム */
.l-section {
	padding-block: var(--wp--preset--spacing--60);
}
.l-section + .l-section {
	padding-top: 0;
}

/* ===== フッター ===== */
.p-footer {
	margin-top: var(--wp--preset--spacing--70);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding-block: var(--wp--preset--spacing--60);
}
.p-footer a {
	color: var(--wp--preset--color--base);
}
.p-footer__grid {
	display: grid;
	grid-template-columns: 1.2fr 2fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
.p-footer__logo {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: 1.6rem;
	letter-spacing: 0.04em;
}
.p-footer__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.75rem;
}
.p-footer__bottom {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.7);
}

/* ===== レスポンシブ ===== */
@media (max-width: 1023px) {
	/* コア Navigation のモバイルオーバーレイ（overlayMenu:mobile）を装飾 */
	.p-header__nav .wp-block-navigation__responsive-container.is-menu-open {
		padding-top: calc(var(--cis-header-h) + 1rem);
	}
	.p-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-size: 1.1rem;
		padding-block: 0.75rem;
	}
	.p-footer__grid {
		grid-template-columns: 1fr;
	}
}
