
@charset "UTF-8";

/* ------------------------------
 #gnav common
------------------------------ */

#header{
	width: 100%;
	z-index: 1000;
	position: fixed;
	transition: 0.5s;
}


body:not(#home) #header { 
    background-color: var(--color-main);
}

#home #header{
	background-color: transparent
}

/* スクロールしたらヘッダーカラー変更 */
#home #header.headerColorScroll {
  background-color: var(--color-main);
  transition: background-color 0.4s ease-out;
}


.header_title{
	color: #f1eee7;
	width: 100%;
}



	
.header_logo p,
.header_logo h1{
	font-size: 10px;
	color: #f1eee7;
	display: inline-block;
	line-height: 1em
}
	
	
.header_logo a{display: block}


#gnav a{text-decoration: none;display: block;}


@media screen and (max-width: 768px) {
	.header_title{
		display: flex;
		justify-content: space-between;
		align-items: center;
		height: 60px;
		z-index: 1000;
		width: 100%;
		transition: .3s;
	}
	
	.header_logo{
		width: calc(100% - 70px);
		padding-left: 10px;
	}
	.header_logo p,
	.header_logo h1{font-size: 9px;padding: 5px 0 0}
	
	.header_logo > div{
		display: flex;
		align-items: center;
		margin-bottom: 5px
	}
	
	.header_logo img{
		height: 22px;
		width: auto}
	.header_nav{padding-right: 20px}
}	



@media print, screen and (min-width: 769px) {

	.header_logo a.recruit_spbtn{display: none}
	.header_title{
		display: flex;
		justify-content: space-between;
		flex-wrap:wrap;
		align-items: center;
		height: 80px;
		top: 0;
		left: 0;
		z-index: 200;
		width: 100%;
		transition: .3s;
	}
	
	.header_logo{padding-left: 2%;width: 360px}
	
	.header_nav{
		display: flex;
		align-items: center;
		width: calc(100% - 400px);
		justify-content: flex-end;
		padding-right: 20px
	}
	
}




/* ------------------------------
 トピックスメニュー
------------------------------ */

button.js-button-megaMenu,
button.p-megaMenu__open {
  background: none;
  border: none;
  color: inherit;
  font-size: inherit;
  margin: 0;
  padding: 0;
}



.l-header {
  background: rgb(29, 33, 19);
  width: 100%;
}

.l-header + * {
  margin-top: 60px;
}

.globalnavi > ul {
  gap: 15px;
  align-items: center;
  display: flex;
  justify-content: center;
}



.globalnavi > ul > li a {
  color: #fff;
  
}

.p-megaMenu.is-open .p-megaMenu__navigation {
  -webkit-clip-path: inset(0 -50vw);
  clip-path: inset(0 -50vw);
  visibility: visible;
  overflow-y: scroll;
  max-height: 80vh
}

.p-megaMenu.is-open button.p-megaMenu__open::after {
  rotate: 180deg;
}

button.p-megaMenu__open {
  cursor: pointer;
  font-weight: 400;
  line-height: 1;
  color: #fff
}


.p-megaMenu__navigation {
  -webkit-clip-path: inset(0 -50vw 100%);
  background-color: rgba(var(--color-main-rgb), 0.9) ;
  clip-path: inset(0 -50vw 100%);
  left: 0;
  padding: 20px;
  position: absolute;
  top: 100%;
  transition: all 0.4s;
  visibility: hidden;
  width: 100%;
}


ul.p-megaMenu__list {
  gap: 4%;
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  max-width: 1000px;
}

.p-megaMenu__list-item a {
	color: #fff;
}

.p-megaMenu__list-item a img{
	display: block;
	object-fit: cover;
	width: 100%;
	height: 100px;
	margin-bottom: .6em;
	box-shadow: 0px 1px 6px rgba(18, 18, 18, 0.5);
	position: relative;
	border-radius: 3px;
}


.favarit__link{
	-webkit-transition: all .3s;
	transition: all .3s;
}

.favarit__link::before{
	font-family: icomoon;
	content: "\e9cf";
	font-size: 20px
}

.favarit__link:hover{text-decoration: none}

.favarit__link:hover::before{
	font-family: icomoon;
	content: "\e9d0";
	text-decoration: none
	}

button.js-button-megaMenu{
	position: relative
}


button.p-megaMenu__open{font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem)}	




@media screen and (max-width: 768px) {
	.globalnavi{
	display: none}
}

	


@media print, screen and (min-width: 667px) {
	button.js-button-megaMenu br{display: none}
	.mmsp{display: none}
}

@media print, screen and (min-width: 768px) {
	.globalnavi{ margin: 0 20px 0 0 }
	.globalnavi > ul > li a {
    padding: 20px 10px;}
  
	.js-button-megaMenu span.yoyaku::after{
		content: "/";
		padding: 0 0px 0 5px;
		display: inline-block
	}
  
  .p-megaMenu__list-item a img{
	height: 160px;
	margin-bottom: 1em
	}
	
  button.p-megaMenu__open {
	align-items: center;
    display: flex;
    justify-content: center;
    font-size: 0.75rem
  }



  button.p-megaMenu__open::after {
  font-family: icomoon;
  content: "\e975";
  font-size: 1.2em;
  padding-bottom: 0.2em;
  transition: rotate 0.3s;
	}


  .p-megaMenu__navigation {
    padding: 40px;
  }  
  

  .p-megaMenu__list {
    gap: 10px 30px;
    flex-direction: row;
    flex-wrap: wrap
  }
  
  .p-megaMenu__list-item{width: calc(( 100% - 80px ) / 3 );}
  
  .p-megaMenu__list-item a {
    padding: 20px 20px;
  }
  
  .globalnavi .yoyaku_b{
	    position: absolute;
	    display: block;
	    left: 0;
	    right: 0;
	    margin: 0 auto;
	    bottom:-10px;
	    z-index: 100
    }
    
    
}

@media print, screen and (min-width: 1240px) {
	button.p-megaMenu__open{gap: 0.5em;
	font-size: 0.875rem;
	padding: 10px 5px;
	}

}


@media (min-width: 768px) and (hover: hover) {
  .p-megaMenu:hover .p-megaMenu__navigation,
  .p-megaMenu:focus-within .p-megaMenu__navigation {
    -webkit-clip-path: inset(0 -50vw);
    clip-path: inset(0 -50vw);
    visibility: visible;
    overflow-y: scroll;
	max-height: 80vh
  }
    
  
  .p-megaMenu:hover button.p-megaMenu__open::after,
  .p-megaMenu:focus-within button.p-megaMenu__open::after {
    rotate: 180deg;
  }
}




/* ------------------------------
 .snslink
------------------------------ */

ul.snslink{
	position: fixed;
	right: 14px;
	top: 120px;
	z-index: 100;
	mix-blend-mode:exclusion;
}

ul.snslink li{margin: 0 0 10px;
}
ul.snslink li a{
	width: 35px;
	height: 35px;
	display: flex;
	justify-content: center;
	align-items: center;
	background: rgba(255, 255, 255, 0);
	font-size: 22px;
	color: #dddcd8;
}	

ul.snslink li a{
}

/* ------------------------------
 .footer_gnavi
------------------------------ */


.footer_gnavi{
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	/* 	background: rgb(29, 33, 19); */
	background: var(--color-main);
	z-index: 1000;
	padding-bottom: env(safe-area-inset-bottom);
}




.footer_gnavi > ul {
  gap: 15px;
  align-items: center;
  display: flex;
  justify-content: center;
}

.footer_gnavi > ul > li{position: relative}

.footer_gnavi > ul > li > a {
	display: block;
  font-size: .75rem;
  cursor: pointer;
  font-weight: 400;
  line-height: 1.4em;
  padding: 10px 5px;
  color: #fff
}

.footer_gnavi > ul > li .yoyaku_b{
    position: absolute;
    display: block;
    left: -10px;
    right: 0;
    margin: 0 auto;
    top:-10px;
    z-index: 100;
    width: 70px;
    height: auto
}






ul.remodal-menu{
		display: flex;
		flex-wrap:wrap;
		justify-content: space-between
	}
	
ul.remodal-menu li{
	width: 46%;
	margin-bottom: 10px;
	font-size: .9em;
	line-height: 1.3em;
	text-align: left
}

ul.remodal-menu li img{
	border-radius: 5px;
	position: relative;
	margin: 0 0 5px
}

.remodal {padding: 6% !important}


@media print, screen and (min-width: 769px) {
	.footer_gnavi{display: none}
}	


@media print, screen and (min-width: 666px) {
	.footer_gnavi{
		padding: 5px 10px;
	}
	.footer_gnavi li br{
	display: none
	}
}	

@media print, screen and (min-width: 1024px) {}	






/* ------------------------------
 #opengnav 格納メニュー
------------------------------ */

/*========= ボタンCSS ===============*/

.openbtn,
.openbtn span {
display: inline-block;
transition: all 0.3s;
}

.openbtn{
width: 30px;
height: 22px;
position: relative;
z-index: 1000;
}

.openbtn:after{
  content: "Menu";
  font-size: 11px;
  display: block;
  position: absolute;
  bottom:0;
  left: 0;
  right: 0;
  line-height: 0;
  color: #f1eee7;
  text-align: center
}
	
/*×に変化*/	
.openbtn span{
position: absolute;
left: 0;
width: 100%;
height: 1px;
background-color: #f1eee7;
  }

.openbtn span:nth-of-type(1) {top: 0;}

.openbtn span:nth-of-type(2) {top: 10px;}


.openbtn.active span:nth-of-type(1) {
transform: translateY(10px) rotate(-45deg);
top:-6px;
background-color: var(--color-main);
}

.openbtn.active span:nth-of-type(2) {
	transform: translateY(-6px) rotate(45deg);
	background-color: var(--color-main);
}

.openbtn.active:after{color: var(--color-main);content: "Close";}




/*========= ナビゲーションCSS ===============*/


#opengnav{
position:fixed;
top: -250%;
left: 0;
width:100%;
height: 100vh;
background:rgba(255, 255, 255, 0.95);
transition: all 0.6s;
opacity: 0;
z-index: 500
}




/*アクティブクラスがついたら位置を0に*/
#opengnav.panelactive{
    top: 0;
    opacity: 1
}




/*ナビの数が増えた場合縦スクロール*/
#opengnav.panelactive #navscloll{
    position: fixed;
    z-index: 999; 
    height: 100vh;
    width: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 80px 0 80px;
}


#opengnav .footer_nav_house{}

/*ナビゲーション*/

#navscloll{
	position: relative;
	z-index: 999;
}



.on_sitemap{
	margin: 0 auto;
	padding: 0 2%;
	display: flex;
	flex-wrap:wrap;
	max-width: 1300px;
	}
		
		
.on_sitemap dl{padding: 1em}

.on_sitemap dt{
	display: block;
	text-align: center;
	padding: .5em 0;
	margin-bottom: .6em;
	border-bottom: solid 1px var(--color-main);
	position: relative;
	color: var(--color-main);
}

.on_sitemap dd {
	font-size: clamp(0.875rem, 0.852rem + 0.11vw, 0.938rem)
}

.on_sitemap dd br{
	display: none
}

.on_sitemap dd a{padding: .2em 0;display: block;line-height: 1.4em}
.on_sitemap dd a:before{
	font-family: icomoon;
	content: "\e977";
}

ul.on_cta{
	display: flex;
	justify-content: center;
	margin-bottom: 1em
}

ul.on_cta li{}


ul.on_cta li a{
	display: block;
	padding: .6em;
	text-align: center;
}

ul.on_cta li a:before{
	color: #BD0025;
	display: block;
	font-size: 20px;
	margin-bottom: 5px}

.search-box{
	width: 100%;
}

.search-box_form{
	width: 320px;
}

@media screen and (max-width: 767px) {
	.search-box_form{margin: 0 auto 1em;}
	ul.on_house li{
	width: calc(( 100% - 20px ) / 2 );
	margin: 20px 20px 0px 0;
	}
	
	ul.on_house li:nth-child(1),
	ul.on_house li:nth-child(2){
		margin: 80px 20px 0px 0;
	}
	
	ul.on_house li:nth-child(2n) {margin-right: 0;}
	
	.on_sitemap dl{
	width: calc(100%/ 2 );
	padding: 1em
	}
	.on_sitemap dd a{font-size: 12px}
	
	
	}	


@media print, screen and (min-width: 768px) {
	ul.on_house{padding: 80px 3% 2em;}
	ul.on_house li{
	width: calc(( 100% - 90px ) / 4 );
	margin: 0 30px 20px 0;
	}
	ul.on_house li:nth-child( 4n ) {margin-right: 0;}
	ul.on_house li img{height: 100px;}
	.on_sitemap dl{width: calc(100%/ 3 );padding: 1em}
	.on_sitemap dt{padding: .8em;}
	.on_sitemap dd a{padding: .2em .3em}
}	

@media print, screen and (min-width: 1024px){
	.search-box{
		display: flex;
		flex-direction: row-reverse;
		margin: 0 2em 0 0}
}		
		
@media print, screen and (min-width: 1240px){
	
	#opengnav.panelactive #navscloll{
		 padding: 100px 0 80px;
	}
	ul.on_house{padding: 80px 5% 2em;}
	ul.on_house li img{height: 130px;}
	.on_sitemap{padding: 3% 3% 0;}
	.on_sitemap dl{width: calc(100%/ 4 );padding: 1.5em}
	ul.on_cta li a{padding: 1em}
}

	
	
@media screen and (max-width: 1024px) {
	#gnav{display: none}
	
		
	ul.spbtn{
		display: flex;
		justify-content: center;
		position: absolute;
		bottom: 0;
		right: 0;
	}
	ul.spbtn a{
		display: block;
		margin-right: 5px;
		color: #fff;
		position: relative;
		padding: 4px 6px 3px;
		font-size: 12px;
		line-height: 1.3em;
	}	
	
	ul.spbtn a.recruit_spbtn{background: #ff5a00;}
	ul.spbtn a.event_spbtn{background: #ff0000;}
	
}		


@media print, screen and (min-width: 1025px) {
	#gnav{
		display: flex;
		flex-wrap:wrap;
		align-items: center;
		height:100%;
		padding-right: 2em
	}
	
	#gnav > ul {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%
	}
	
	#gnav a{text-align: center;color:#f3f3e7}
	
	#gnav > ul > li{
	display: flex;
	justify-content: center;
	align-items: center;
	align-self: stretch;
	font-size:1em;
	}
	
	#gnav > ul > li a:hover{
	}
	
	
	#gnav > ul > li > a{
	padding: .5em 1em;
	text-align: center;
	letter-spacing: .1em;
	font-size: .9em
	}

	
	
	
	ul#sns_icon{
		display: flex;
		padding-right: 2em
	}
	
	ul#sns_icon li{margin: 0 3px}
	ul#sns_icon li a{color: #007fa7}
	
	
	ul#fix_cta{
	position: fixed;
	right: -5px;
	top:200px;
	}
	
	
	ul#fix_cta li{
		-ms-writing-mode: tb-rl;
	  writing-mode: vertical-rl;
	  margin-bottom: 3px;
	}
	
	ul#fix_cta li a{
		display: block;
		padding: 1em 10px 1em 5px;
		  display: flex;
	  justify-content: center;
	  align-items: center;
	  color: #fff;
	}

	ul#fix_cta li a:hover{
		transform: translateX(-5px);
	}


}	


@media print, screen and (min-width: 1200px) {

	#gnav > li{font-size:1.3em;}
	#gnav > ul > li > a{padding: 1em 1em;}
	#gnav > ul > li > a.snsi{padding: 1em .5em;font-size: 18px}
	
}
	

/* ------------------------------
 nav#header_sn
------------------------------ */


nav#header_sn{
	background: #fff
}


ul.header_sn_main li a{
	color: #174c28;
	position: relative;
	line-height: 1.3em;
	display: inline-block;
	background-image: linear-gradient(90deg, #2a8d4a, #2a8d4a);
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size: 0 1px;
	text-decoration: none;
	transition: background-size 0.5s;
}


ul.header_sn_main li a:hover,
ul.header_sn_main li a:active {
	background-size: 100% 1px;
}


/* 画面サイズ768px以下 */
@media screen and (max-width: 768px) {
	
	
	
	nav#header_sn{
		padding: 60px 0 0;
		background: #fff;
		-webkit-transition: all .3s;transition: all .3s;
		box-shadow: 1px 1px 6px rgba(33, 33, 33, 0.5);
		position: relative;}

	ul.header_sn_main{
		display: flex;
		z-index: 1000;
		align-items: center
	}
	ul.header_sn_main > li{
		font-size: .8em;
		color: #174c28;
		flex-grow: 1;
		position: relative
	}
		
	ul.header_sn_main > li:not(:nth-child(4)){
		border-left: solid 1px rgba(23, 77, 40, 0.3)}
	
	
	ul.header_sn_main > li > a{
		line-height: 1.3em;
		text-align: center;
		color: #174c28;
	    text-decoration: none;
	    display: flex;
	    align-items: center;
	    justify-content: center;
	    transition: background-size 0.5s;
	    height: 40px;
	}
	
	
	ul.header_sn_main > li:not(:nth-child(4)){
		border-left: solid 1px rgba(23, 77, 40, 0.3)}
		
	
}



@media screen and (max-width: 768px){
	.parent{
		pointer-events: all;
	}
	
	.toggle{
		display: none;
	}
	.toggle{
		position: absolute;
		left: 0;
		top:40px;
		width: 100vw
			}
	
	.toggle li{background: rgba(255, 255, 255, 0.8);}
	
	
  
	
	
	ul.header_sn_main > li ul.toggle li a{
		width: 80%;
		margin: 0 auto;
		height: 46px;
		line-height: 46px;
		text-align: center;
		color: #174c28;
	    text-decoration: none;
	    display: block;
	    font-size: 14px
	}
	
	.toggle li:not(:last-child) a{border-bottom: solid 1px #88aa93}
	
}





@media print, screen and (min-width: 769px) {	

	nav#header_sn{
		padding: 80px 0 0;width: 100%;
		display: flex;
		justify-content: space-between;
	}
	
	
	ul.header_sn_main{
		display: flex;
		flex-wrap:wrap;
		padding: 1em 2em
	}
	
	
	ul.header_sn_main ul {display: block;}
		
	ul.header_sn_main li{color: #174c28;position: relative}
	
	ul.header_sn_main li br{display: none}
	

	ul.header_sn_main > li:not(:last-child):after{
	content: "｜";
	padding: 0 5px;
	color: #d5d5d5
	}
	
    
    		
	ul.header_sn_main li.parent ul {
	  position: absolute;
	  left: 0;
	  top: 30px;
	  z-index: 4;
	  width: 180px;
	  visibility: hidden;
	  opacity: 0;
	  transition: all 0.3s;
	}
	
	ul.header_sn_main li.parent ul li a{
	}
	
	
	/* hoverしたら表示する */
	ul.header_sn_main li.parent:hover > ul,
	ul.header_sn_main li.parent ul li:hover > ul,
	ul.header_sn_main li.parent:active > ul,
	ul.header_sn_main li.parent ul li:active > ul {
	  visibility: visible;
	  opacity: 1;
	}
	
		
}



