@charset "utf-8";

:root {
	--header-height: 6.4rem;
	--header-btn-bg: #fff;
	--header-menu-color: var(--brown_02);
	--header-bg: transparent;
	--header-border-color: #fff;
	--tel-color: #fff;
	--tel-icon-color: #fff;
	--logo-white-opacity: 1;
	--logo-opacity: 0;
}

.js_header_move {
	--header-menu-color: var(--brown_02);
	--header-bg: #fff !important;
	--logo-opacity: 1;
	--logo-white-opacity: 0;
	--tel-icon-color: var(--brown_02);
	--tel-color: var(--brown_02);
	--header-btn-bg: var(--brown_01);
	--header-menu-color: #fff;
	--header-border-color: var(--brown_01);
}

.header_on .l_header {
	--logo-white-opacity: 0 !important;
	--logo-opacity: 1 !important;
	--header-bg: #fff !important;
	--header-btn-bg: var(--brown_01);
	--header-menu-color: #fff;
	--header-border-color: var(--brown_01);
	--tel-icon-color: var(--brown_02);
	--tel-color: var(--brown_02);
}

.l_header_bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.1);
	z-index: 99;
	opacity: 0;
	pointer-events: none;
	transition: var(--default-transition);
}

.header_on.js_header_move .l_header_bg {
	opacity: 1;
	pointer-events: auto;
}

.underpage {}

/* frontpage */
.frontpage .l_header {}

/* header_move */
.frontpage.js_header_move .l_header {}

.frontpage.header_on .l_header {}

/*++++++++++++++++++++++++++++
l_header
++++++++++++++++++++++++++++*/
.l_header {
	position: fixed;
	top: 0;
	left: 0 !important;
	z-index: 100;
	transition: background 0.3s;
	width: 100%;
	display: flex;
	border-bottom: 1px solid var(--header-border-color);
}

.l_header_inner {
	width: 100%;
	position: relative;
	z-index: 101;
	align-items: center;
	display: flex;
	align-items: center;
	height: var(--header-height);
	background: var(--header-bg);
	transition: background 0.5s;
}

.l_header_top {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 0 0 1rem;
}

.l_header_logo {
	position: relative;
	z-index: 1000;
}

.l_header_logo a {
	display: flex;
	flex-direction: column;
	text-decoration: none;
}

.l_header_logo_img {
	width: 22rem;
	position: relative;
}

.l_header_logo_img:before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	-webkit-mask: url(../images/logo.svg) center / 100% no-repeat;
	mask: url(../images/logo.svg) center / 100% no-repeat;
	background: #fff;
	opacity: var(--logo-white-opacity);
	transition: var(--default-transition);
	filter: drop-shadow(0px 0px 0.78rem rgba(0, 0, 0, 0.25));
}

.l_header_logo_img img {
	opacity: var(--logo-opacity);
	transition: var(--default-transition);
}

.l_header_btn_wrap {
	position: fixed;
	z-index: 1000;
	width: 6.5rem;
	aspect-ratio: 1/1;
	cursor: pointer;
	right: 0;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding-bottom: 0;
	background: var(--header-btn-bg);
	transition: var(--default-transition);
	padding-top: 0.4rem;
}

.l_header_btn {
	display: flex;
	align-items: center;
	width: 4rem;
	aspect-ratio: 40/8;
	justify-content: center;
	position: relative;
	cursor: pointer;
}

.l_header_btn span {
	width: 100%;
	height: 100%;
	position: relative;
}

.l_header_btn span:before,
.l_header_btn span:after {
	transition: var(--default-transition);
	content: "";
	display: block;
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	z-index: 1;
	background: var(--header-menu-color);
}

.l_header_btn span:before {
	top: 0;
}

.l_header_btn span:after {
	bottom: 0;
}

.l_header_btn_txt {
	font-family: var(--font-en);
	color: var(--header-menu-color);
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-align: center;
	position: relative;
	font-size: 1.1rem;
	margin-top: 0.8rem;
}

.l_header_btn_txt span {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	transition: 0.5s;
}

.l_header_btn_txt em {
	opacity: 0;
	transition: 0.5s;
}

.l_header_tel {
	--icon-url: url(../images/icon_tel.svg);
	--icon-size: 2.4rem;
	position: absolute;
	right: 6.5rem;
	top: 0;
	width: 6.5rem;
	aspect-ratio: 1/1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.l_header_tel:before {
	content: '';
	display: block;
	position: relative;
	width: var(--icon-size);
	aspect-ratio: 1/1;
	z-index: 1;
	-webkit-mask: var(--icon-url) center / 100% no-repeat;
	mask: var(--icon-url) center / 100% no-repeat;
	background: var(--tel-icon-color);
}

.l_header_tel span {
	font-family: var(--font-en);
	line-height: 1.4;
	font-size: 1.1rem;
	letter-spacing: 0.08em;
	margin-top: 0.5rem;
	color: var(--tel-color);
}

.l_header_fixed {
	position: fixed;
	z-index: 100;
	left: 50%;
	top: 7.5rem;
	transform: translateX(-50%);
	width: calc(100% - 2rem);
	transition: opacity 0.3s ease-in;
	border-radius: 0.6rem;
	background: #fff;
	opacity: 0;
	pointer-events: none;
}

.l_header_fixed_inner {
	padding: 2rem 3rem;
}

.l_header_nav {
	width: 100%;
	margin-top: 0;
	margin-bottom: 0;
}

.list_parent {
	display: flex;
	flex-direction: column;
}

/*-----------------------------
	l_nav_lv01
-----------------------------*/
.l_nav_lv01 {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 4rem;
}

.l_nav_item_lv01 {
	position: relative;
	cursor: pointer;
}

.l_nav_item_lv01:last-of-type {
	border-bottom: 0;
}

.l_nav_ttl_lv01 {
	text-decoration: none;
	position: relative;
	padding: 0.8rem 0 0.8rem 1.8rem;
	display: flex;
	flex-direction: column;
	cursor: pointer;
	gap: 0.3rem;
	font-size: 1.5rem;
	line-height: 1.4;
	color: var(--brown_02);
}

.l_nav_ttl_lv01:before {
	content: '';
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	width: 1rem;
	height: 1px;
	background: var(--gold_01);
	z-index: 1;
}


/*++++++++++++++++++++++++++++
	状態系
	++++++++++++++++++++++++++++*/

/* header_on */
.header_on .l_header_btn span:before {
	top: 50%;
	transform: translateY(-50%) rotate(15deg);
}

.header_on .l_header_btn span:after {
	bottom: 50%;
	transform: translateY(50%) rotate(-15deg);
}

.header_on .l_header_btn em {
	opacity: 0;
}

.header_on .l_header_btn:before {
	opacity: 0;
}

.header_on .l_header_fixed {
	opacity: 1;
	pointer-events: auto;
}

.header_on .l_header_btn_txt span {
	opacity: 0;
}

.header_on .l_header_btn_txt em {
	opacity: 1;
}


@media screen and (min-width: 600px), print {
	:root {
		--header-height: 10rem;
	}

	.l_header_logo_img {
		width: 40rem;
	}

	.l_header_btn_wrap {
		width: 10rem;
		aspect-ratio: 1/1;
		padding-top: 0.4rem;
	}

	.l_header_btn {
		width: 5rem;
		aspect-ratio: 50/11;
	}

	.l_header_btn_txt {
		font-size: 1.5rem;
		margin-top: 1.5rem;
	}

	.l_header_top {
		padding: 0 12rem 0 2rem;
	}

	.l_header_content {
		display: flex;
		align-items: center;
	}

	.l_header_content_btn {
		border-radius: 0.6rem;
		border: 1px solid rgba(255, 255, 255, 0.7);
		background: var(--orange);
		text-decoration: none;
		display: flex;
		align-items: center;
		justify-content: center;
		height: 7rem;
		width: 15rem;
		overflow: hidden;
		font-weight: 700;
		color: #fff;
		--icon-url: url(../images/icon_web.svg);
		--icon-color: #fff;
		--icon-size: 2.8rem;
		position: relative;
		isolation: isolate;
		margin-left: 1rem;

		&:hover {
			opacity: 1;
			background: #DE6C19;
		}
	}

	.l_header_content_btn:before {
		content: '';
		display: block;
		position: absolute;
		bottom: 0;
		right: 0;
		z-index: -1;
		width: calc(100% - 1rem);
		height: 100%;
		background: linear-gradient(180deg, #DE6C19 0%, rgba(222, 108, 25, 0) 100%);
		-webkit-clip-path: polygon(100% 100%, 100% 0, 0 100%);
		clip-path: polygon(100% 100%, 100% 0, 0 100%);
		opacity: 0.5;
	}

	.l_header_content_line {
		--icon-url: url(../images/icon_line.svg);
		background: var(--line_green);
		&:hover {
			background: #00A344;
		}
	}

	.l_header_content_line:before {
		background: linear-gradient(180deg, #00A344 0%, rgba(0, 163, 68, 0) 100%);
	}

	.l_header_content_btn span {
		font-size: 1.7rem;
		letter-spacing: 0.08em;
		position: relative;
		padding-left: 3.4rem;
		font-weight: 700;
		line-height: 1.4;
		font-family: var(--font-maru);
	}

	.l_header_content_btn span:before {
		content: '';
		display: block;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: 0;
		width: var(--icon-size);
		aspect-ratio: 1/1;
		-webkit-mask: var(--icon-url) center / 100% no-repeat;
		mask: var(--icon-url) center / 100% no-repeat;
		background: var(--icon-color);
		z-index: 1;
	}


	.l_header_content_tel {
		--txt01-color: #fff;
		--txt02-color: var(--brown_01);
		--txt02-bg: #fff;
		--txt03-color: #fff;

		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-decoration: none;
		margin-right: 1rem;
	}

	.header_on .l_header{
		.l_header_content_tel {
			--txt01-color: var(--brown_01);
			--txt02-color: #fff;
			--txt02-bg: var(--brown_01);
			--txt03-color: var(--black);
		}
	}

	.js_header_move {
		.l_header_content_tel {
			--txt01-color: var(--brown_01);
			--txt02-color: #fff;
			--txt02-bg: var(--brown_01);
			--txt03-color: var(--black);
		}
	}

	.l_header_content_tel .txt01 {
		font-size: 1.5rem;
		letter-spacing: 0.08em;
		color: var(--txt01-color);
		line-height: 1.4;
		font-weight: 700;
		font-family: var(--font-maru);
	}

	.l_header_content_tel .txt02 {
		font-family: var(--font-en);
		gap: 1rem;
		display: flex;
		align-items: center;
	}

	.l_header_content_tel .txt02 span {
		background: var(--txt02-bg);
		color: #fff;
		font-size: 1.8rem;
		letter-spacing: 0.08em;
		line-height: 1.4;
		padding: 0.3rem 0.7rem;
		color: var(--txt02-color);
		border-radius: 0.5rem;
	}

	.l_header_content_tel .txt02 em {
		color: var(--txt03-color);
		font-size: 3rem;
		letter-spacing: 0.08em;
		line-height: 1.4;
	}

	.l_header_fixed {
		top: 11rem;
		left: auto;
		right: 1rem;
		transform: none;
		width: auto;
	}

	.l_header_fixed_inner {
		padding: 2rem 4rem;
	}

	.l_nav_ttl_lv01 {
		padding: 0.8rem 1.8rem 0.8rem 0;
		font-size: 1.8rem;
		
		&:before {
			width: 0rem;
			transition: 0.5s;
		}
		
		&:hover {
			opacity: 1;
			padding: 0.8rem 0 0.8rem 1.8rem;
			&:before {
				width: 1rem;
			}
		}
	}

}