@charset "utf-8";

/* CSS Document */

/* ============================================================================================================
	[drawer]
	@import"../css/test_line.css";
	 ------------------------------------------------------ ------------------------------------------------------
	[200605]　FFでリンクが効かない
	　『CSSでz-indexが効かない時の4つの原因とその対応方法』
	　マークアップを変更したくない場合・できない場合は、.content要素からpositionを削除することでこの問題を解決できます。
	　https://coliss.com/articles/build-websites/operation/css/4-reasons-z-index-isnt-working.html
============================================================================================================ */


.Drawer
{
	--border_color			: var(--w);
	--bg_color				: var(--bk);

	display: block;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 600;

	color: rgb(var(--w));
}
/*
	z-index: 100;
	position: absolute;
*/


/* [print] */
@media print {
	#Drawer
	{
		display: none;
		opacity: 0;
		width: 0;
		height: 0;
		overflow: hidden;
	}
}


/* ============================================================================================================
	スライドメニュー
	------------------------------------------------------
	CSSだけで簡単！ハンバーガーメニューの作り方（スマホ対応）
	https://saruwakakun.com/html-css/reference/nav-drawer
------------------------------------------------------------------------------------------------------------ */
#nav-drawer
{
	position: relative;
}
/*
	position: absolute;
*/

/*チェックボックス等は非表示に*/
.nav-unshown
{
	display: none;
}


#nav-close,
#nav-content
{
	position: fixed;
	left: 0;
	width: 100%;/*							外側に隙間を作る（閉じるカバーを表示）*/
	transition: .5s ease-in-out;/*			滑らかに表示*/
	-webkit-transform: translateX(200%);/*	右に隠しておく*/
	transform: translateX(200%);
}
/*
	height: 100vh;
	top: 0;
*/

/* 閉じる用の薄黒カバー(はじめは隠しておく) */
#nav-close
{
	display: none;
	top: 0;
	height: 100%;
	z-index: 99;
}

#nav-content
{
	height: 100vh;
	padding-bottom: 20vh;
	background: rgb(var(--bg_color) / 0.8);
	overflow: auto;
	z-index: 999;
}

/* チェックが入ったら表示 */
#nav-input:checked ~ #nav-close
{
	display: block;
	background-color: rgb(var(--bg_color) / 0.7);
}
/*
	opacity: .5;
*/

#nav-input:checked ~ #nav-close,
#nav-input:checked ~ #nav-content
{
	-webkit-transform: translateX(0%);/*中身を表示（左へスライド）*/
	transform: translateX(0%);/*	box-shadow: 6px 0 25px rgb(var(--bk) /  .15);*/
}


/* ============================================================================================================
	アニメーションメニュー
	------------------------------------------------------
	CSSで実装するハンバーガーメニュークリック時のエフェクト 10＋
	https://www.nxworld.net/tips/12-css-hamburger-menu-active-effect.html
------------------------------------------------------------------------------------------------------------ */
.Drawer .toggle
{
	display: block;
	position: absolute;
	top: 1em;
	right: 1em;

	width: var(--drawer_toggle_size);
	height: var(--drawer_toggle_size);

	z-index: 9999;
}

.Drawer .toggle .Btn
{
	aspect-ratio: 1 / 0.8;

	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;

	width: 100%;
	
	display: grid;
	align-content: space-between;
	gap: 0em;
	
	margin: 0;
	cursor: pointer;
	line-height: 1;
}

.Drawer .toggle .Btn>span
{
	width: 100%;
	height: 2px;

	background-color: rgb(var(--bg_color));
	border-radius: 100em;
}


#nav-input:checked ~ .toggle
{
}

#nav-input:checked ~ .toggle .Btn
{
	gap: 0;
	filter: invert(100%);
}
/*
*/

#nav-input:checked ~ .toggle .Btn>span
{
	opacity: 0;
}
/*
	filter: invert(100%);
*/

#nav-input:checked ~ .toggle .Btn>span:first-of-type,
#nav-input:checked ~ .toggle .Btn>span:last-of-type
{
	position: absolute;
	top: 50%;
}

#nav-input:checked ~ .toggle .Btn>span:first-of-type
{
	rotate: 45deg;
	opacity: 1.0;
}

#nav-input:checked ~ .toggle .Btn>span:last-of-type
{
	rotate: -45deg;
	opacity: 1.0;
}


.Drawer label.toggle
{
}

.Drawer label.toggle .ribbon
{
	padding: 0.5em;
}


.Drawer .toggle .Btn+b
{
	font-size: calc(var(--drawer_toggle_size) * 0.8);

	display: block;
}


/* ============================================================================================================
	custom
------------------------------------------------------------------------------------------------------------ */
.Drawer .List
{
	text-align: center;
	padding-left: var(--padding);
	padding-right: var(--padding);
}

.Drawer .List .Menu :where(a, .a, span:not(.Btn))
{
	display: block;
	display: inherit;
	color: inherit;
}

.Drawer .List .Menu :where(a, .a)
{
	padding: 1em 0;
}
/*
	padding: 1em var(--padding);
	line-height: 4em;
*/

.Drawer .List a
{
	width: 100%;
}

.Drawer .List :where(a, .a) .title
{
	display: flex;
	justify-content: space-between;
}

.Drawer .List .title br
{
	display: none;
}

.Drawer .List .title .nowrap
{
	white-space: normal;
	display: inline;
}

.Drawer .List a
{
}

.Drawer .List a:before
{
	border-color: rgb(var(--w) / 0.75);
}


.Drawer .List>.Wrap
{
	display: flex;
	flex-direction: column;
	gap: 5em;
	text-align: inherit;
	border-width: 0;
}
/*
	margin-bottom: 2em;
	padding-bottom: 20vh;
	margin-left: 2em;
	margin-right: 2em;
*/

.Drawer .List>.Wrap ul
{
	margin: 0em;
	text-align: inherit;

	gap: 0;
}

.Drawer .List>.Wrap ul li
{
	display: block;

	margin: 0em;

	border-color: rgb(var(--border_color) / 0.3);
	border-bottom-width: 1px;
	border-bottom-style: dotted;

	text-align: inherit;
}

.Drawer .List>.Wrap ul li:not(:last-of-type)
{
}

.Drawer .List>.Wrap ul li:not(:last-of-type):not(.Icon)
{
}
/*
	border-bottom-width: 1px;
*/

.Drawer .List>.Wrap>ul>li>.Wrap
{
}

.Drawer .List .Flex
{
	text-align: center;
}

.Drawer .List .Flex ul
{
	text-align: inherit;
}
/*
	border-top-width: 1px;
	border-bottom-width: 1px;
*/

.Drawer .List .Flex ul>li
{
	border-width: 0;
}

.Drawer .List .Flex ul>li:not(:last-of-type):not(.Icon)
{
	border-right-width: 1px;
}


/* ------------------------------------------------------
	親 */


/* ------------------------------------------------------
	子 */
.Drawer .List .Child
{
	text-align: left;
}
/*
	margin-left: 3em;
	margin-left: 1em;
	margin-bottom: 1em;
*/

.Drawer .List .Child :where(a, .a)
{
	padding: 0;
}

.Drawer .List .Child ul
{
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	width: 100%;
}
/*
	gap: 1em;
	padding: 1em;
	margin-left: 3em;
*/

.Drawer .List .Child ul>*
{
}
/*
	width: 100%;
*/

.Drawer .List>.Wrap .Child
{
}

.Drawer .List>.Wrap .Child li
{
}

.Drawer .List>.Wrap .Child li :where(a, .a)
{
	padding-top: 0.75em;
	padding-bottom: 0.75em;
}

.Drawer .List>.Wrap .Child li:not(:last-of-type)
{
	border-bottom-style: dotted;
	border-bottom-color: rgb(var(--border_color) / 0.7);
}

.Drawer .List .child_MenuOn
{
	background-color: rgb(var(--bg_color) / 0.2);
	font-weight: bold;
}


/* ------------------------------------------------------
	孫 */
.Drawer .List .Mago
{
	margin-left: 2em;
}

.Drawer .List .Mago ul
{
}

.Drawer .List .Mago ul li
{
}

.Drawer .List .Mago ul li:first-of-type
{
	border-top-width: 1px;
	border-top-style: dotted;
}


/* ------------------------------------------------------
	今のページ */
.Drawer .List .MenuOn
{
	background-color: rgb(var(--bg_color) / 0.2);
	font-weight: bold;
}

.Drawer .List .MenuOn .Btn:after
{
	opacity: 0;
}

.Drawer .List .MenuOn .Child a
{
}

.Drawer .List .MenuOn .Child .child_MenuOn
{
	background-color: transparent;
	font-weight: bold;
}


/* ------------------------------------------------------
	開け閉め */
.Drawer .Change
{
}

.Drawer .Change .details
{
	border-width: 0;
	padding: 0;
}

.Drawer .Change .details .summary
{
	padding: 0;
	align-items: center;
}

.Drawer .Change .details .summary a:before
{
	opacity: 0;
}
/*
.Drawer .Change .details .summary .Btn
{
	padding: 0;
	position: absolute;
	right: 0;
	width: 50%;
	height: calc((1em * 2) + 2em);
	z-index: 5;
}
*/

.Drawer .Change .details .summary .Btn>*:before,
.Drawer .Change .details .summary .Btn>*:after
{
	border-color: rgb(var(--border_color) / 0.75);
}
/*
	filter: invert(100%);
*/

.Drawer .Change .details .detail
{
	display: block;
	width: calc(100% - var(--change_btn_size));
	padding: 0;
}
/*
	margin-top: -1em;
*/


.Drawer .Change .details summary.summary .Btn
{
	position: absolute;
	right: 0;
	width: 50%;
	height: calc((1em * 2) + 2em);
	z-index: 5;
	padding-right: 0.75em;
}

.Drawer .Change .details summary.summary .Btn>*
{
	width: var(--change_btn_size);
}

.Drawer .Change details[open] .detail
{
}


/* ------------------------------------------------------
	↓<details>はanimationが効かないので、<input>で開け閉めする場合 */
.Drawer .Change .details input + .summary
{
	position: absolute;
	right: 0;
	width: 50%;
	height: calc((1em * 2) + 2em);
	padding: 0;
	padding-right: 0.75em;
	z-index: 5;
}

.Drawer .Change .details input + .summary+a:before
{
	opacity: 0;
}

.Drawer .Change .details input.switch:checked ~ label ~ .detail
{
	padding: 0;
}

/* 今のページ　※挙動を逆転させる */
.Drawer .Change .MenuOn .details input.switch
{
}

.Drawer .Change .MenuOn .details input.switch ~ .summary .Btn>*:before
{
	width: 0;
}

.Drawer .Change .MenuOn .details input.switch ~ .summary .Btn>*:after
{
	translate: -50% -50%;
	rotate: -90deg;
}

.Drawer .Change .MenuOn .details input.switch ~ label ~ .detail
{
	height: auto;
	opacity: 1;
}


.Drawer .Change .MenuOn .details input.switch:checked ~ .summary .Btn>*:before
{
	width: var(--change_btn_size);
}

.Drawer .Change .MenuOn .details input.switch:checked ~ .summary .Btn>*:after
{
	height: var(--change_btn_size);
	transform: translateX(-50%) translateY(-50%);
}

.Drawer .Change .MenuOn .details input.switch:checked ~ label ~ .detail
{
	opacity: 0;
	height: 0;
	overflow: hidden;
}


