/**
 * Twenty Sixteen の枠と旧デザインのスタイルを共存させるための調整
 * 必要に応じて追記・削除してください
 */

.site-inner {
	margin: 0 auto;
	max-width: 100%;
	padding: 0;
}

#content.site-content {
	padding: 0;
	/* 後続兄弟のため既定では手前に描画される。header より下に固定する */
	position: relative;
	z-index: 1;
}

.site-main {
	margin: 0;
}

/* 旧テーマは独自ヘッダー用。Twenty Sixteen 標準のヘッダーは子テーマ header.php で差し替え済みのため通常は非表示不要 */

/* float した .title の下に nav が潜らないようクリア */
header .primary_header .container::after {
	content: "";
	display: table;
	clear: both;
}

/*
 * global_nav 内の ul / .menu_icon がともに absolute だと nav の高さが 0 になり、
 * ハンバーガーが見えない・押せないことがある
 */
header .primary_header > nav.global_nav {
	display: block !important;
	clear: both;
	width: 100%;
	position: relative !important;
	overflow: visible !important;
	box-sizing: border-box;
}

@media (max-width: 979px) {
	header .primary_header > nav.global_nav {
		min-height: 56px;
	}
}

/*
 * グローバルナビが開いたとき、絶対配置の ul が #content の下に回りタップが届かない問題の対策
 * （.site-inner 内で #content が header より後ろの兄弟のため、重なりでコンテンツが上になる）
 */
.site-inner > header {
	position: relative;
	z-index: 100500;
}

header .primary_header,
header nav.global_nav {
	position: relative;
}

/* ドロップダウンの rotateX が効くよう親に perspective（旧テーマ想定） */
header .primary_header {
	perspective: 1200px;
}

/* SP ナビ: main.css の z-index:-1 を開いたときは確実に上書き */
header.menu_open .global_nav > ul {
	z-index: 10001 !important;
	pointer-events: auto !important;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}

/*
 * モバイル: 閉じたナビの ul は画面外まで重なるが、子の a は初期値が pointer-events:auto のため
 * 親の none だけではタップを奪い続ける。ul と全子孫を none にし、ハンバーガーだけ auto に戻す。
 * ul.sub-menu に auto !important が当たっていると閉じていても子が反応するため、980px 以下では menu_open 時のみ sub-menu に auto を付ける。
 */
@media (max-width: 979px) {
	header:not(.menu_open) .global_nav > ul,
	header:not(.menu_open) .global_nav > ul * {
		pointer-events: none !important;
	}

	header .global_nav .menu_icon,
	header .global_nav .menu_icon * {
		pointer-events: auto !important;
	}

	header.menu_open .global_nav > ul,
	header.menu_open .global_nav > ul * {
		pointer-events: auto !important;
	}

	/* 閉じたときはレイアウト上の高さも潰し、背後の本文へタップが届くようにする */
	header:not(.menu_open) .global_nav > ul {
		max-height: 0 !important;
		min-height: 0 !important;
		overflow: hidden !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		border-top-width: 0 !important;
	}

	header.menu_open .global_nav > ul {
		max-height: none !important;
		overflow: auto !important;
	}
}

/* 閉じているときもレイヤーを安定させる */
header .global_nav > ul {
	will-change: transform;
}

/* ハンバーガー: main.css 同様に nav 内で絶対配置（relative だと高さ 0 の nav で消える） */
header .global_nav .menu_icon {
	z-index: 2147483640;
	position: absolute !important;
	top: 50%;
	right: 5%;
	left: auto;
	bottom: auto;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

/* リンクがタップを受け取る（iOS 含む） */
header .global_nav > ul a,
header .global_nav > ul button {
	cursor: pointer;
	-webkit-tap-highlight-color: rgba(186, 145, 108, 0.35);
	touch-action: manipulation;
	position: relative;
	z-index: 2;
}

/* サブメニュー: デスクトップは従来どおり。モバイルは上記メディアクエリ内で menu_open 時のみ auto */
@media (min-width: 980px) {
	header .global_nav ul.sub-menu {
		pointer-events: auto !important;
		position: relative;
		z-index: 3;
	}
}

@media (max-width: 979px) {
	header.menu_open .global_nav ul.sub-menu {
		pointer-events: auto !important;
		position: relative;
		z-index: 3;
	}
}

/*
 * SP: 画面下固定の .footcontact を最前面（ヘッダーのハンバーガーより手前に）
 */
@media (max-width: 979px) {
	.footcontact {
		z-index: 2147483646 !important;
	}
}

/*
 * メニュー開閉中はタップをナビへ通すため pointer-events のみオフ（z-index は最前面のまま）
 */
.site-inner:has(header.menu_open) .footcontact,
body.shinkyu_menu_open .footcontact {
	pointer-events: none;
}

/* アンカーの代わりに button を使う（見た目は従来の CSS に合わせる） */
header .global_nav .menu_icon button.shinkyu-nav-toggle {
	position: relative;
	display: block;
	width: 20px;
	height: 20px;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	overflow: hidden;
	font: inherit;
	color: inherit;
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
}

header .global_nav .menu_icon button.shinkyu-nav-toggle:before,
header .global_nav .menu_icon button.shinkyu-nav-toggle:after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
	width: 100%;
	height: 4px;
	background: #ba916c;
	-webkit-transition: -webkit-transform 0.5s;
	transition: transform 0.5s;
}

header .global_nav .menu_icon button.shinkyu-nav-toggle:before {
	top: 0;
}

header .global_nav .menu_icon button.shinkyu-nav-toggle:after {
	bottom: 0;
}

header .global_nav .menu_icon button.shinkyu-nav-toggle span {
	position: absolute;
	top: 50%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	left: 0;
	right: 0;
	margin: auto;
	width: 100%;
	height: 4px;
	background: #ba916c;
	-webkit-transition: -webkit-transform 0.5s;
	transition: transform 0.5s;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
}

header .global_nav .menu_icon button.shinkyu-nav-toggle.close {
	background: none;
}

header .global_nav .menu_icon button.shinkyu-nav-toggle.close:before {
	top: 50%;
	-webkit-transform: translate(0, -50%) rotate(45deg);
	transform: translate(0, -50%) rotate(45deg);
}

header .global_nav .menu_icon button.shinkyu-nav-toggle.close:after {
	bottom: 50%;
	-webkit-transform: translate(0, 50%) rotate(-45deg);
	transform: translate(0, 50%) rotate(-45deg);
}

header .global_nav .menu_icon button.shinkyu-nav-toggle.close span {
	-webkit-transform: translate(100%, -50%);
	transform: translate(100%, -50%);
}
