@charset "utf-8";
/************
	HEADER
**************/
header#top {
	width: 100%;
	height: 120px;
	background: #fff;
	display: flex;
	flex-wrap: wrap;
	position: relative;
	z-index: 1000;
	.site_title {
		width: 100%;
		height: 30px;
		display: flex;
		align-items: center;
		justify-content: center;
		color: #fff;
		background: var(--base-color01);
		text-align: center;
		line-height: 1.0;
		font-size: .8rem;
	}
}
.header_wrap {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	margin: 15px 20px;
}
.header_logo {
	width: fit-content;
	height: 50px;
	a {
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		flex-direction: column;
		img {
			height: min(60%, 30px);
		}
		p {
			font-size: 1rem;
			font-weight: 600;
		}
	}
}

.header_link {
	display: flex;
	justify-content: flex-end;
	flex-grow: 1;
}
.header_tel {
	width: min(100%,300px);
	height: 50px;
	flex-shrink: 0;
	a.tel_link {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		justify-content: space-between;
		width: 100%;
		height: 100%;
		.tel_number {
			display: flex;
			font-size: 2.25rem;
			line-height: 0.9;
			font-weight: 600;
		}
		.tel_number::before {
			content: "";
			display: block;
			width: fit-content;
			height: .75em;
			aspect-ratio: 41/30;
			margin-top: 2px;
			margin-right: 5px;
			line-height: 1.0;
			background: url(../img/svg/icn_tel_bk.svg) no-repeat center center / contain;
		}
		.open_time {
			font-size: .8em;
			line-height: 1.0;
		}
	}
}
.header_contact {
	width: min(100%,200px);
	height: 50px;
	margin-left: 40px;
	flex-shrink: 0;
	display: flex;
	a {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		text-align: center;
		width: 100%;
		height: 100%;
		padding: .65rem;
		line-height: 1.0;
		border-radius: 16px;
		color: #fff;
		position: relative;
		z-index: 1;
		overflow: hidden;
		background: var(--base-color02);
	}
	a::after {
		content: "";
		width: 150%;
		height: 100%;
		position: absolute;
		left: -100%;
		top: 0;
		transition: all 0.5s ease;
		z-index: -1;
		background: linear-gradient(45deg,var(--base-color01) 80%, var(--base-color02) 80%);
	}
	a::before {
		content: "";
		display: block;
		width: fit-content;
		height: 1em;
		aspect-ratio: 1/1;
		margin-right: 5px;
		background: url(../img/svg/icn_mail_wh.svg) no-repeat center center / contain;
	}
	a:hover::after {
		left: 0;
	}
}


#global-nav {
	height: 40px;
	width: 100%;
	background: var(--base-color01);
}
.menu-button, .dropdown-toggle {
		cursor: pointer;
		user-select: none;
}
#menu-toggle,
#sub-menu-toggle,
#sub-menu-toggle02,
#sub-menu-toggle03,
.submenu01,
.submenu02 { display: none;}

@media (min-width: 1024px) {
	.nav-menu {
		display: flex;
		justify-content: center;
		padding-left: 20px;
		padding-right: 20px;
		width: min(1200px, 100%);
		height: 100%;
		margin: auto;
	}
	.nav-menu > li {
		position: relative;
		height: 100%;
		width: calc(100% / 8);
		z-index: 99;
	}
	.nav-menu > li > a {
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		font-size: .9rem;
		color: #fff;
	}
	.nav-menu > li > a:hover {
		color: var(--base-color01);
		background: #fff;
	}
	#global-nav .has-submenu:hover > .submenu01,
	#global-nav .has-submenu:hover > .submenu02 {
		display: block grid;
	}
	.submenu01 {
		position: absolute;
		top: 100%;
		left: 0;
		width: 200px;
		padding: 5px;
		border-radius: 0 0 4px 4px;
		background: var(--base-color01);
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
		li a {
			display: block;
			width: 100%;
			padding: 1rem;
			line-height: 1.0;
			color: #fff;
		}
		li:not(:last-of-type) {
			padding-bottom: 5px;
			border-bottom: 1px dotted var(--base-color03);
			margin-bottom: 5px;
		}
		li a:hover {
			color:var(--base-color01);
			background: #fff;
		}
	}
	.submenu02 {
		position: absolute;
		top: 100%;
		left: 0;
		width: 745px;
		padding: 5px;
		border-radius: 0 0 4px 4px;
		background: var(--base-color01);
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
		translate: -42.5% 0;
		grid-template-columns: repeat(4, 1fr);
		gap: 5px;
		li a:hover {
			opacity: .9;
		}
	}
}
@media (max-width: 1023.98px) {
	header#top {
		width: 100%;
		height: 80px;
		position: fixed;
		top: 0;
		left: 0;
		.header_wrap {
			margin-top: 10px;
		}
	}
	.overlay {
		position: fixed;
		inset: 0;
		background: rgba(0,0,0,0.5);
		opacity: 0;
		pointer-events: none;
		transition: 0.4s;
		z-index: 999;
		margin-top: 80px;
	}
	#menu-toggle:checked ~ .overlay {
		opacity: 1;
		pointer-events: auto;
	}
	.menu-button {
		width: 40px;
		height: 30px;
		position: fixed;
		top: 20px;
		right: 30px;
		cursor: pointer;
		z-index: 10000;
		display: inline-block;
	}
	.menu-button span {
		display: block;
		height: 4px;
		margin: 6px 0;
		background: var(--base-color01);
		border-radius: 4px;
		transition: 0.4s;
	}
	#menu-toggle:checked + .menu-button span:nth-child(1) { transform: translateY(10px) rotate(45deg);}
	#menu-toggle:checked + .menu-button span:nth-child(2) { opacity: 0;}
	#menu-toggle:checked + .menu-button span:nth-child(3) { transform: translateY(-10px) rotate(-45deg);}
	#menu-toggle:checked ~ .nav-menu {
		display: block;
	}
	#global-nav {
		position: fixed;
		top: 80px;
		right: -360px;
		width: 360px;
		height: calc(100% - 80px - 50px);
		background: var(--base-color01);
		box-shadow: 2px 0 8px rgba(0,0,0,0.2);
		transition: right 0.4s ease;
		z-index: 9999;
		overflow-y: scroll;
		padding: 10px 10px var(--cont-margin30);
	}
	#menu-toggle:checked ~ #global-nav {
		right: 0;
	}
	#sub-menu-toggle:checked ~ .submenu01,
	#sub-menu-toggle02:checked ~ .submenu01 {
		display: block;
	}
	#sub-menu-toggle03:checked ~ .submenu02 {
		display: grid;
	}
	.dropdown-toggle {
		display: block;
		width: 40px;
		height: 1.5em;
		background: var(--base-color04);
		text-align: center;
		font-weight: bold;
		border-radius: 16px;
		margin-right: var(--cont-margin20);
	}
	.dropdown-toggle::after {
		content: '+';
		display: block;
		margin-top: -2px;
		color: #fff;
	}
	#sub-menu-toggle:checked ~ .dropdown-toggle::after,
	#sub-menu-toggle02:checked ~ .dropdown-toggle::after,
	#sub-menu-toggle03:checked ~ .dropdown-toggle::after {
		content: '−';
		display: block;
		margin-top: -2px;
		color: #fff;
	}
	.nav-menu {
		> li {
			width: 100%;
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			justify-content: space-between;
			background: #fff;
			> a {
				display: block;
				padding: .75rem var(--cont-margin20);
				width: calc(100% - 100px);
			}
		}
		> li:not(:last-of-type) {
			border-bottom: 1px dotted #ccc;
		}
	}
	.nav-menu {
		.submenu01 {
			width: 100%;
			li {
				width: 100%;
				height: auto;
				background: var(--base-color03);
				a {
					display: block;
					width: 100%;
					padding: .75rem var(--cont-margin20);
				}
			}
			li:not(:last-of-type) {
				border-bottom: 1px dotted #fff;
			}
		}
		.submenu02 {
			grid-template-columns: repeat(2, 1fr);
			gap: 5px;
			padding: 5px;
			background: var(--base-color03);
		}
	}
}