@charset 'UTF-8';
@use './global' as *;

/* Offcanvas
--------------------------------------------- */

// data-stateにする。
.offcanvas {
	position: fixed;
	top: 0;
	right: 0;
	z-index: var(--z-index);
	visibility: hidden;
	transition: visibility var(--transition-duration) ease-in-out;
	max-width: var(--offcanvas-width);
	width: 100%;
	height: 100%;

	&.is-active {
		visibility: visible;
		transition: none;
	}
}

// アドミンバー対応
.admin-bar .offcanvas {
	top: 32px;
	@media (max-width: 782px) {
		top: 46px;
	}
}


.offcanvas__panel {
	position: absolute;
	top: 0;
	right: 0;
	transform: translate(100%, 0);
	transition: transform var(--transition-duration);
	width: 100%;
	height: 100vh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	background-color: #ddd;
	z-index: var(--z-index);
}

.offcanvas__header {
	display: flex;
	padding-block: 1rem;
}

// .offcanvas__title {
// 	flex: 1;
// 	font-size: var(--mobile-menu-title-font-size, var(--h3-font-size));
// }

.offcanvas__close {
	--hamburger-bar-size: 24px;
	cursor: pointer;
}


.offcanvas__content {
	height: 100%;
	overflow-y: scroll;
	padding: 2vmin 4vmin;
	background: #fff;
}

// モーダルタイプ.
.offcanvas.offcanvas--has-overlay {
	// transition: background-color var(--transition-duration), visibility 0s var(--transition-duration);
	max-width: none;
	background-color: rgba($color: #000000, $alpha: 0);
	cursor: pointer;

	.offcanvas__panel {
		max-width: var(--offcanvas-width);
		cursor: auto;
	}

	&.is-active {
		transition: background-color var(--transition-duration);
		background: var(--offcanvas-overlay-color, rgba(0,0,0,.6));
	}
}

.offcanvas__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


// 右展開
.offcanvas.is-active .offcanvas__panel {
	transform: translate(0, 0);
}

// 左展開.
.offcanvas.offcanvas--left {
	right: auto;
	left: 0;
}

.offcanvas--left {
	.offcanvas__panel {
		right: auto;
		left: 0;
	}

	&:not(.is-active) .offcanvas__panel {
		transform: translate(-100%, 0);
	}

	.offcanvas__close {
		order: 2;
	}
}


.offcanvas__nav {
	.menu-item {
		border-bottom: 1px solid #ddd;
	}
	.sub-menu > .menu-item {
		border-style: dotted;
		&:last-child {
			border: 0;
		}
	}
}
