@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&family=Shippori+Mincho+B1:wght@400;500;600;700&display=swap');
/*-----------------------------------
	root
-----------------------------------*/
:root {
  --mClr1:#77A16B;--mClr2:#E2BE5F;
  --tClr1:#2E2E2E;--tClr2:#393534;--tClr3:#FFFFFF;
  --bgClr1:#FFFFFF;--bgClr2:#E4ECE1;--bgClr3:#EEEEEE;
  --fEN:"Rubik",sans-serif;--fJA:"Shippori Mincho B1",serif;
}
/*-----------------------------------
	base
-----------------------------------*/
html {
    overflow-y: auto;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    font-size: 62.5%;
	overflow-x: hidden;
}
body {
	font: 500 1.6rem/1 var(--fJA);
	color: var(--tClr1);
	letter-spacing:0;
	background: #F9F9F9;
	margin:0 !important;
	width: 100%;
}
body.nav-open {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	overflow: hidden;
	height: 100%;
	width: 100%;
}
*, *:before, *:after {
	box-sizing: border-box;
}
.contents_inner{
	max-width: 1100px;
    width: 90%;
	margin: 0 auto;
}
img {
    max-width: 100%;
    height: auto;
}
a, a:link, a:visited {
	display: block;
	color: var(--tClr1);
	text-decoration:none;
    cursor: pointer;
	transition: all 0.5s;
}
a:hover {
	opacity: 0.6;
	text-decoration:none;
}
.tab{
	display: none;
}
.sp{
	display:none;
}
.pc{
	display:block;
}
@media screen and (max-width: 840px) {
	.pc{
		display:none;
	}	
	.sp{
		display:none;
	}
	.tab{
		display:block;
	}
}
@media screen and (max-width: 640px) {
	body {
		font-size: 1.3rem;
	}
	.pc{
        display:none;
    }
	.tab{
        display:none;
	}
    .sp{
        display:block;
    }
}
@media screen and (min-width: 641px) {
    a[href^="tel:"]{
        pointer-events: none;
    }
}
/*-----------------------------------
	header
-----------------------------------*/
header {
	position: fixed;
	width: 100%;
	background: var(--bgClr1);
	top: 0;
	left: 0;
	z-index: 999;
}
header .inner {
	width: min(1500px,100%);
	height: 90px;
	margin: 0 auto;
	display:flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 min(15px,1.25vw);
}
header #logo {
	width: min(196px,16.33vw);
	line-height: 0;
}
header #nav_menu > ul {
	display:flex;
	align-items: center;
	gap: min(30px,2.5vw);
}
header #nav_menu ul li {
	position: relative;
}
header #nav_menu > ul li a {
	font-size: min(16px,1.33vw);
	color: var(--tClr2);
	position: relative;
	text-box: trim-both cap alphabetic;
}
header #nav_menu ul li:not(.recruit,.contact) > a,
header #nav_menu ul li:not(.recruit,.contact) > span {
	padding-left: min(15px,1.25vw);
	height: 90px;
	display: flex;
	align-items: center;
}
header #nav_menu ul li.current > a,
header #nav_menu ul li.current > span,
header #nav_menu ul li:not(.recruit,.contact) > a:hover {
	color: var(--mClr1);
	opacity: 1;
}
header #nav_menu ul li:not(.recruit,.contact) > a::after,
header #nav_menu ul li:not(.recruit,.contact) > span::after {
	content: "";
	transition: all 0.5s;
}
header #nav_menu ul li.current > a::after,
header #nav_menu ul li.current > span::after,
header #nav_menu ul li:not(.recruit,.contact) > a:hover::after {
	width: 7px;
	height: 8px;
	background: var(--mClr1);
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	position: absolute;
	top: calc(50% - 4px);
	left: 0;
}
header #nav_menu ul li.has-child ul {
	position: absolute;
	left:0;
	top:90px;
	z-index: 4;
	background: var(--bgClr1);
	width:200px;
	visibility: hidden;
	opacity: 0;
	transition: all .3s;
	display: flex;
	flex-direction: column;
	gap: 30px 0;
	padding: 30px 15px;
}
header #nav_menu ul li.has-child:hover > ul,
header #nav_menu ul li:hover > ul,
header #nav_menu ul li.has-child:active > ul {
	visibility: visible;
	opacity: 1;
}
header #nav_menu ul li.has-child ul li a {
	height: auto;
}
header #nav_menu ul li.contact {
	margin-left: max(-15px,-1.25vw);
}
header #nav_menu ul li.recruit a,
header #nav_menu ul li.contact a {
	width: min(170px,14.16vw);
	border-radius: calc(1px/0);
	padding: min(20px,1.66vw) 0;
	color: #FFF;
	text-align: center;
}
header #nav_menu ul li.recruit a {
	background: var(--mClr1);
}
header #nav_menu ul li.contact a {
	background: var(--tClr2);
}
header .menu_btn_wrap {
    display: none;
}
@media screen and (max-width: 840px) {
	header .inner {
		height: 60px;
		padding: 0 15px;
	}
	header #logo {
		width: 180px;
		position: relative;
		z-index: 999;
	}
	header .menu_btn_wrap {
        display: block;
		width: 60px;
		height: 60px;
		cursor:pointer;
		background: var(--mClr1);
		position: absolute;
		top: 0;
		right: 0;
		z-index: 999;
	}
	header .menu_btn_wrap.active {
		background: var(--tClr2);
	}
	header .menu_btn_wrap .menu_btn {
		width: 30px;
		height: 20px;
		display: block;
		position: absolute;
		top: calc(50% - 10px);
		left: calc(50% - 15px);
		transition: all 0.3s;
		z-index:999;
	}
	header .menu_btn_wrap .menu_btn .lineh,
	header .menu_btn_wrap .menu_btn .linem,
	header .menu_btn_wrap .menu_btn .lineb {
		position:absolute;
		left: 0;
		width: 30px;
		height: 2px;
		background: #FFF;
		transition:all 0.3s;
	}
	header .menu_btn_wrap .menu_btn .lineh {
		top:0;
	}
	header .menu_btn_wrap .menu_btn .linem {
		top: calc(50% - 1px);
		opacity: 1;
	}
	header .menu_btn_wrap .menu_btn .lineb {
		bottom: 0;
	}
	header .menu_btn_wrap.active .menu_btn .lineh {
		transform:rotate(-135deg);
		top: 9px;
	}
	header .menu_btn_wrap.active .menu_btn .linem {
		opacity: 0;
	}
	header .menu_btn_wrap.active .menu_btn .lineb {
		transform:rotate(135deg);
		bottom: 9px;
	}	
	header #nav_menu {
		width: 100%;
		height: 100dvh;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		background: var(--bgClr3);
		position: fixed;
		top: 0;
		left: 0;
		padding: 80px 40px 50px;
		display:inline-block;
		visibility: hidden;
		z-index: -1;
		opacity: 0;
		transition: 0.3s;
	}
	header #nav_menu.toggle {
		visibility: visible;
		opacity: 1;
		z-index: 998;
	}
	header #nav_menu > ul {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0 30px;
	}
	header #nav_menu > ul li:not(.recruit,.contact) {
		width: 100%;
		border-bottom: 1px solid var(--bgClr1);
	}
	header #nav_menu > ul li a,
	header #nav_menu > ul li span {
		padding: 30px 0;
		font-size: 18px;
	}
	header #nav_menu > ul li:not(.recruit,.contact) a,
	header #nav_menu > ul li:not(.recruit,.contact) span {
		padding-left: 0;
	}
	header #nav_menu > ul li:not(.recruit,.contact) a::after {
		content: none;
	}
	header #nav_menu ul li.current > a,
	header #nav_menu ul li:not(.recruit,.contact) > a:hover {
		color: initial;
	}
	header #nav_menu > ul li.current a::after,
	header #nav_menu > ul li:not(.recruit,.contact) a:hover::after {
		display: none;
	}
	header #nav_menu ul li.has-child::before,
	header #nav_menu ul li.has-child::after {
		content: "";
		width: 20px;
		height: 2px;
		background: var(--mClr1);
		position: absolute;
		top: 44px;
		right: 20px;
		transition: all 0.3s;
	}
	header #nav_menu ul li.has-child::after {
		transform: rotate(90deg);
	}
	header #nav_menu ul li.has-child.active::after {
		transform: rotate(180deg);
	}
	header #nav_menu ul li.has-child ul {
		position: relative;
		left:0;
		top:0;
		width:100%;
		background: none;
		padding: 0 0 30px 15px;
		visibility:visible;
		opacity:1;
		display: none;
		transition:none;
	}
	header #nav_menu ul li.has-child ul li {
		border-bottom: none;
	}
	header #nav_menu ul li.has-child ul li:not(:last-child) {
		padding-bottom: 30px;
	}
	header #nav_menu ul li.has-child ul li a {
		padding: 0;
	}
	header #nav_menu ul li.contact {
		margin-left: 0;
	}
	header #nav_menu ul li.recruit,
	header #nav_menu ul li.contact {
		width: 190px;
		margin-top: 30px;
	}
	header #nav_menu ul li.recruit a,
	header #nav_menu ul li.contact a {
		width: 100%;
		padding: 20px 0;
		margin: 0 auto;
	}
}
/*-----------------------------------
	contents
-----------------------------------*/
#contents {
	padding-top: 90px;
}
@media screen and (max-width: 840px) {
	#contents {
		padding-top: 60px;
	}
}
/*-----------------------------------
	footer
-----------------------------------*/
footer #footer_wrap {
	background: var(--bgClr3);
	padding: 80px 0;
}
footer #footer_wrap .contents_inner {
	display:flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 50px 0;
}
footer #footer_wrap .details #footer_logo {
	width: 196px;
	margin-bottom: 45px;
}
footer #footer_wrap .details .address {
	line-height: 2;
	color: #333;
}
footer #footer_wrap nav ul {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 30px 40px;
}
footer #footer_wrap nav ul li:nth-child(1) {
	grid-area: 1 / 1 / 2 / 2;
}
footer #footer_wrap nav ul li:nth-child(2) {
	grid-area: 2 / 1 / 3 / 2;
}
footer #footer_wrap nav ul li:nth-child(3) {
	grid-area: 1 / 2 / 2 / 3;
}
footer #footer_wrap nav ul li:nth-child(4) {
	grid-area: 2 / 2 / 3 / 3;
}
footer #footer_wrap nav ul li:nth-child(5) {
	grid-area: 1 / 3 / 2 / 4;
}
footer #footer_wrap nav ul li:nth-child(6) {
	grid-area: 2 / 3 / 3 / 4;
}
footer #footer_wrap nav ul li a {
	color: #202020;
	padding: 0 0 0 12px;
	position: relative;
}
footer #footer_wrap nav ul li a::before {
	content: "";
	width: 7px;
	height: 8px;
	background: var(--mClr1);
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	position: absolute;
	top: calc(50% - 3px);
	left: 0;
}
footer .copyright {
	background: #80B07E;
	color: var(--tClr3);
	padding: 20px;
}
footer .copyright .contents_inner {
	display: flex;
	justify-content: space-between;
}
footer .copyright small {
	display: block;
	font: 1.4rem/1 var(--fEN);
}
footer .copyright ul {
	display: flex;
	gap: 0 40px;
}
footer .copyright ul li a {
	color: var(--tClr3);
	font-size: 1.4rem;
}
@media screen and (max-width: 640px) {
	footer #footer_wrap {
		padding: 40px 0;
	}
	footer #footer_wrap .contents_inner {
		flex-direction: column;
		align-items: center;
		gap: 30px 0;
	}
	footer #footer_wrap .details {
		display: contents;
	}
	footer #footer_wrap .details #footer_logo {
		margin-bottom: 0;
	}
	footer #footer_wrap .details .address {
		text-align: center;
		margin-top: -20px;
	}
	footer #footer_wrap nav {
		width: 100%;
	}
	footer #footer_wrap nav ul {
		display: block;
		border-top: 1px solid var(--bgClr1);
	}
	footer #footer_wrap nav ul li {
		border-bottom: 1px solid var(--bgClr1);
	}
	footer #footer_wrap nav ul li a {
		padding: 20px;
	}
	footer #footer_wrap nav ul li a::before {
		left: 8px;
	}
	footer .copyright .contents_inner {
		flex-direction: column-reverse;
		align-items: center;
		gap: 15px 0;
	}
	footer .copyright small {
		font-size: 1.2rem;
	}
	footer .copyright ul {
		gap: 0 20px;
	}
	footer .copyright ul li a {
		font-size: 1.2rem;
	}
}