/**
 * ノートPC幅（〜1600px）でも SP ハンバーガーを使う
 */

@media (max-width: 1600px) {
	html.is-spnav-open,
	body.is-spnav-open {
		overflow: hidden;
		touch-action: none;
	}

	.header .logo .br_sp { display: block; }
	.header .logo .br_pc { display: none; }
	.header .gnav_item.br_sp { display: flex; }
	.header .gnav_item.br_pc { display: none; }

	.header .logo {
		width: 50px;
		height: auto;
		padding-left: 10px;
	}

	.gnav { margin-left: auto; }
	.gnav_list { display: flex; align-items: stretch; }

	.gnav_btn {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 64px;
		height: 64px;
		padding-top: 0;
		gap: 4px;
		font-size: 11px;
		color: #fff;
		box-sizing: border-box;
		text-align: center;
	}

	.gnav_ico {
		display: block;
		width: 26px;
		height: 26px;
		margin: 0;
		object-fit: contain;
		flex-shrink: 0;
	}

	.gnav_txt {
		display: block;
		line-height: 1.2;
		white-space: nowrap;
	}

	body.is-spnav-open .header {
		z-index: 100001;
		min-height: 0;
		height: 0;
		overflow: visible;
		background: transparent;
		box-shadow: none;
		pointer-events: none;
	}

	body.is-spnav-open .header .logo,
	body.is-spnav-open .header .acnav,
	body.is-spnav-open .header .pcnav,
	body.is-spnav-open .header .gnav_item.header-legacy {
		display: none !important;
	}

	body.is-spnav-open .header .gnav,
	body.is-spnav-open .header .gnav_list,
	body.is-spnav-open .header .gnav_item.br_sp {
		pointer-events: auto;
	}

	body.is-spnav-open .header .gnav_item.br_sp {
		position: static;
		width: 0;
		height: 0;
		overflow: visible;
	}

	body.is-spnav-open .header .gnav_list {
		justify-content: flex-end;
	}

	.nav_btn {
		position: relative;
		display: flex;
		width: 64px;
		height: 64px;
		font-size: 13px;
		background-color: #189F83;
		box-sizing: border-box;
		text-align: center;
		justify-content: center;
		cursor: pointer;
		transition: all 400ms;
		z-index: 999999;
	}

	.nav_btn.open {
		position: fixed;
		top: 0;
		right: 0;
		z-index: 100002;
	}

	.nav_bar {
		position: absolute;
		height: 2px;
		background: #fff;
		border-radius: 1px;
		transition: all 400ms;
	}

	.nav_bar:nth-child(1) { top: 15px; width: 30px; }
	.nav_bar:nth-child(2) { top: 23px; width: 30px; }
	.nav_bar:nth-child(3) { top: 31px; width: 30px; }

	.nav_btntxt::after {
		content: "MENU";
		position: absolute;
		top: 48px;
		left: 50%;
		transform: translateY(-50%) translateX(-50%);
		margin: auto;
		color: #fff;
		font-size: 11px;
	}

	.nav_btn.open .nav_bar:nth-child(1) {
		top: 23px;
		width: 30px;
		transform: rotate(-45deg);
	}

	.nav_btn.open .nav_bar:nth-child(2),
	.nav_btn.open .nav_bar:nth-child(3) {
		top: 23px;
		width: 30px;
		transform: rotate(45deg);
	}

	.nav_btn.open .nav_btntxt::after { content: "CLOSE"; }

	.spnav {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		height: 100dvh;
		background: #fff;
		font-size: 18px;
		box-sizing: border-box;
		z-index: 99990;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	.spnav.open {
		display: block;
		overflow-y: scroll;
		touch-action: pan-y;
	}

	.spnav_list {
		margin: 0;
		padding: 74px 10px 100px;
		text-align: center;
		box-sizing: border-box;
	}

	.spnav_item { width: 100%; height: auto; margin-top: 10px; }
	.spnav_item-line { margin-top: 20px; }

	.spnav_link {
		display: inline-block;
		color: #189F83;
		border-bottom: 1px solid #189F83;
		padding: 0 10px;
		white-space: nowrap;
	}

	.spnav_link--parent {
		font: inherit;
		background: transparent;
		border: none;
		border-bottom: 1px solid #189F83;
		cursor: pointer;
		width: auto;
	}

	.spnav_item--open .spnav_caret { transform: rotate(180deg); }

	.spnav_caret {
		display: inline-block;
		margin-left: 4px;
		font-size: 10px;
		vertical-align: middle;
		transition: transform 0.2s ease;
	}

	.spnav_panel {
		padding: 8px 0 12px;
		text-align: left;
		max-width: 320px;
		margin: 0 auto;
	}

	.spnav_sublist { list-style: none; margin: 0; padding: 0; }
	.spnav_subitem { margin: 6px 0; }

	.spnav_link--child {
		font-size: 15px;
		border-bottom: none;
		padding: 4px 10px;
		display: block;
	}

	.spnav_section_label {
		margin: 12px 10px 4px;
		font-size: 15px;
		font-weight: bold;
		color: #189F83;
		text-align: center;
	}

	.spnav_img { width: 200px; margin: 40px auto 0 auto; }
}
