header#header_layout01 nav#gmenu{
background:var(--maincolor);
color:#fff;
}
header#header_layout01 nav#gmenu a{
color:#fff;
}


/******************
メガメニュー挙動
******************/


header#header_layout01 nav#gmenu .menu_wrap ul {
	display: flex;
	flex-flow: wrap;
}
header#header_layout01 nav#gmenu .menu_wrap ul li {
	width: calc( 100% / 5 );
}
header#header_layout01 nav#gmenu .menu_wrap ul li a {
	color: #fff;
	display: block;
	text-align:center;
	padding:15px 0;
	position: relative;
	-webkit-transition-property:background-color;
	-webkit-transition-duration:0.1s;
	-webkit-transition-timing-function:linear;
}
header#header_layout01 nav#gmenu .menu_wrap ul li a span.line{
	border-left:1px solid #fff;
	display:block;
	width:100%;
	padding:5px 0;
}
header#header_layout01 nav#gmenu .menu_wrap ul li a.expanded {
background:url(../img/common/menu_acitve-line.svg) no-repeat center bottom;
background-size:50px 5px;
}

/*メガメニューサブエリア装飾*/

header#header_layout01 nav#gmenu .menu_wrap ul li:first-child a span.line{
	border-left:none;
}
header#header_layout01 nav#gmenu .menu_wrap ul li .gmega {
	background:rgba(255,255,255,0.98);
	display: none;
	position: absolute;
	padding: 0;
	width: 100%;
	left: 0;
	margin: 0 auto;
	text-align: center;
	z-index: 995;
}

header#header_layout01 nav#gmenu .menu_wrap ul li .gmega .submenu_wrap{
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}
header#header_layout01 nav#gmenu .menu_wrap ul li .gmega .submenu_wrap .submenu{
	width:27%;
padding:30px 0;
}
header#header_layout01 nav#gmenu .menu_wrap ul li .gmega .submenu_wrap .submenu h3{
border-bottom:2px solid var(--maincolor);
font-size:18px;
font-weight:bold;
margin-bottom:20px;
}
header#header_layout01 nav#gmenu .menu_wrap ul li .gmega .submenu_wrap .submenu ul{
margin-bottom:20px;
}
header#header_layout01 nav#gmenu .menu_wrap ul li .gmega .submenu_wrap .submenu ul li{
width:100%;
margin-bottom:10px;
}
header#header_layout01 nav#gmenu .menu_wrap ul li .gmega .submenu_wrap .submenu a{
	color:#333;
	text-align:left;
	padding:0;
	background:none;
}
header#header_layout01 nav#gmenu .menu_wrap ul li .gmega .submenu_wrap .submenu a span.icon{
background:url(../img/common/icon_arrow-orange-circle.svg) no-repeat left top 6px;
background-size:16px 16px;
display:inline-block;
padding-left:19px;
}





/******************
パンくず
******************/

#pankz{
	margin:10px 0 30px 0;
}
#pankz ul{
	display:flex;
	font-size:14px;
}
#pankz ul li a{
	display:inline-block;
	padding:3px;
text-decoration:underline;
}
#pankz ul li:after{
content:'>';
margin:0 10px;
}

#pankz ul li.home{
margin-right:23px;
}
#pankz ul li.home a{
	display:inline-block;
	background:#F3F3F3;
	position: relative;
	padding:3px 15px;
}

#pankz ul li:last-child a,
#pankz ul li.home a{
text-decoration:none;
}
#pankz ul li:last-child a{
    pointer-events: none;
}
#pankz ul li:last-child:after,
#pankz ul li.home:after{
content:none;
}
#pankz ul li.home a::after {
	content: "";
    position: absolute;
    right: -25px;
    border-left: 13px solid #F3F3F3;
    border-top: 13px solid #fff;
    border-right: 13px solid #fff;
    border-bottom: 13px solid #fff;
    top: 0px;
text-decoration:none;
}









/******************
ボタン
******************/


.btn_link a{
text-align:center;
display:block;
padding:15px;
-webkit-transition-property:background;  
-webkit-transition-duration:0.2s;  
-webkit-transition-timing-function:linear; 
}
.btn_link a.border_orange{
border:1px solid var(--maincolor);
}
.btn_link a.border_gray{
border:1px solid #ccc;
}
.btn_link a.radius{
border-radius:5px;
}

.btn_link a.arrow-orange span.icon{
background:url(../img/common/icon_arrow-orange-circle.svg) no-repeat right center;
background-size:16px 16px;
display:inline-block;
padding-right:19px;
}

.btn_link a.border_orange:hover{
background:var(--maincolor);
color:#fff;
}
.btn_link a.border_orange:hover span.icon{
background:url(../img/common/icon_arrow-white-circle.svg) no-repeat right center;
background-size:16px 16px;
display:inline-block;
padding-right:19px;
}







/******************
トップへ戻るボタン
******************/


.pagetop {
	display: none;
	position: fixed;
    bottom: 5%;
    right: 30px;
	z-index:99;
}
.pagetop a {
	display: block;
	width: 50px;
	height: 50px;
	background:var(--maincolor);
	color:#fff;
	text-align:center;
	border-radius: 10px;
	font-size: 24px;
	text-decoration: none;
	line-height: 50px;
}












/**********************************************************************/

/* for TB & SP CSS   */

/**********************************************************************/








/******************/
/* TB    */
/******************/

@media only screen and (min-width: 600px) and (max-width: 1019px) {






}









/******************
SP
******************/
@media only screen and (max-width: 599px) {



/******************
SP追従メニュー
******************/

#sp_menu{
background:var(--maincolor);
color:#fff;
	display: flex;
	flex-flow: wrap;
	bottom: 0;
    left: 0;
    width: 100%;
    position: fixed;
    z-index: 2;
}

#sp_menu .box.tel{
width:60%;
}
#sp_menu .box.access,
#sp_menu .box.kamoku{
width:20%;
}

#sp_menu .box a{
display:block;
padding:10px 10px;
}
#sp_menu .box.access a,
#sp_menu .box.kamoku a{
text-align:center;
border-left:1px solid #fff;
}

#sp_menu .box.access span.icon,
#sp_menu .box.kamoku span.icon{
display:block;
}
#sp_menu .box span.icon img{
width:70%;
}

#sp_menu .box.access span.icon img{
margin-top:5px;
}
#sp_menu .box.access span.label,
#sp_menu .box.kamoku span.label{
display:blcok;
font-size:13px;
font-weight:bold;
}

#sp_menu .box.tel dl{
	display: flex;
	flex-flow: wrap;
}
#sp_menu .box.tel dl dt img{
width:35px;
}

#sp_menu .box.tel dl dd{
margin-left: 5px;
}
#sp_menu .box.tel dl dd span{
display:block;
}
#sp_menu .box.tel dl dd span.number{
font-size:23px;
font-weight:bold;
}
#sp_menu .box.tel dl dd span.info{
font-size:12px;
}
#sp_menu .box.tel a{
padding-top:10px;
}
























/******************
SPハンバーガーメニュー
******************/


/*挙動*/

body {
  animation: bugfix infinite 1s;
  -webkit-animation: bugfix infinite 1s;
}

@keyframes bugfix {
  from {
    padding: 0;
  }
  to {
    padding: 0;
  }
}
@-webkit-keyframes bugfix {
  from {
    padding: 0;
  }
  to {
    padding: 0;
  }
}
#overlay-button {
    position: absolute;
    right: 0;
    top: 0;
    padding: 20px 10px;
    z-index: 5;
    cursor: pointer;
    user-select: none;
}
#overlay-button span {
  height: 4px;
  width: 35px;
  border-radius: 2px;
  background-color: var(--maincolor);
  position: relative;
  display: block;
  transition: all .2s ease-in-out;
}
#overlay-button span:before {
  top: -10px;
  visibility: visible;
}
#overlay-button span:after {
  top: 10px;
}
#overlay-button span:before,
#overlay-button span:after {
  height: 4px;
  width: 35px;
  border-radius: 2px;
  background-color: var(--maincolor);
  position: absolute;
  content: "";
  transition: all .2s ease-in-out;
}
#overlay-button:hover span,
#overlay-button:hover span:before,
#overlay-button:hover span:after {
  background:  var(--maincolor);
}

input[type=checkbox] {
  display: none; 
  
}

input[type=checkbox]:checked ~ #overlay {
  visibility: visible; 
}




input[type=checkbox]:checked ~ #overlay-button:hover span,
input[type=checkbox]:checked ~ #overlay-button span {
  background: transparent;
}



input[type=checkbox]:checked ~ #overlay-button span:before {
  transform: rotate(45deg) translate(7px, 7px);
}
input[type=checkbox]:checked ~ #overlay-button span:after {
  transform: rotate(-45deg) translate(7px, -7px);
}

#overlay {
  height: 100vh;
  width: 100vw;
	background:rgba(255,255,255,0.98);
  z-index: 4;
  visibility: hidden;
  position: fixed;
display:flex;
  justify-content: center;
  align-items: center;
align-items:stretch;
}



#overlay .box{
padding:0;
width:100%;
overflow: auto;
    scrollbar-gutter: stable;
}
#overlay .box a{
color:#000;
padding:15px 0;
display: inline-block;
}
#overlay .box ul{
margin:20px 0 10px;
padding:0;
}
#overlay .box ul li{
margin:0;
padding:0 5%;
list-style:none;
}


/*メニュー処理*/

#sp_hamburger .gmega{
	max-height: 0;
	overflow-y: hidden;
    -webkit-transition: all 0.2s;
    -moz-transition: all 0.2s;
    -ms-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
}
#sp_hamburger .gmega.expanded{
	max-height:1000px;
    -webkit-transition: all 0.2s;
    -moz-transition: all 0.2s;
    -ms-transition: all 0.2s;
    -o-transition: all 0.2s;
    transition: all 0.2s;
}

#sp_hamburger a.first_rank{
background:#fff;
border:3px solid var(--maincolor);
border-radius:5px;
display:block;
margin-bottom:15px;
padding:15px 20px;
font-weight:bold;
    box-shadow: 2px 2px #efefef;
}
#sp_hamburger a.first_rank span.line{
display:block;
background:url(../img/common/icon_arrow-orange-circle.svg) no-repeat right center;
background-size:20px 20px;
padding-right:20px;
}

#sp_hamburger a.first_rank.expanded{
background:#F7FFE2;
}
#sp_hamburger a.first_rank.expanded span.line{
background:url(../img/common/icon_arrow-orange-circle_down.svg) no-repeat right center;
background-size:20px 20px;
}
#sp_hamburger .gmega ul {
    margin: 0 0 20px 0;
    padding: 0;
}

#sp_hamburger .gmega ul li{
margin-bottom:10px;
}

#sp_hamburger .gmega ul li a{
    margin: 0 0 0 0;
    padding: 0;
display:block;
    text-decoration: underline;
}
#sp_hamburger .gmega ul li a span.icon{
display:block;
background:url(../img/common/icon_arrow-orange-circle.svg) no-repeat left center;
background-size:16px 16px;
padding-left:20px;
}

#sp_hamburger .gmega h3{
border-bottom:2px solid var(--maincolor);
background:url(../img/common/icon_arrow-orange-circle_down.svg) no-repeat left center;
background-size:16px 16px;
padding-left:20px;
font-weight:bold;
padding-bottom:10px;
margin-bottom:10px;
}
#sp_hamburger .gmega h3 a{
padding:0;
}

#sp_hamburger .logo{
text-align:center;
margin:5px 0;
}
#sp_hamburger .logo img{
width:35%;
}

#sp_hamburger .box_large{
    padding: 0 5%;
margin-bottom:20px;
}
#sp_hamburger .box_large dl{
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}
#sp_hamburger .box_large dl dd{
width:47%;
}
#sp_hamburger .box_large dl dd a{
text-align:center;
border-radius:5px;
width:100%;
padding:15px;
}
#sp_hamburger .box_large dl dd a span{
display:block;
margin-top:10px;
}

#sp_hamburger .box_large dl dd.recruit a{
background:#37A34A;
color:#fff;
}
#sp_hamburger .box_large dl dd.kango a{
background:#F5ECF4;
color:#333;
}

#sp_hamburger .box_contact{
width:90%;
margin:0 auto 20px auto;
border:1px solid #ccc;
border-radius:5px;
padding:20px;
}
#sp_hamburger .box_contact h3{
    position: relative;
    display: block;
    border-bottom: 1px solid #CCCCCC;
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 20px;
    text-align: center;
    padding: 0 0 5px 0;
}
#sp_hamburger .box_contact h3:before {
    content: '';
    position: absolute;
    bottom: -5px;
    display: inline-block;
    width: 60px;
    height: 5px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: var(--maincolor);
    border-radius: 2px;
}

#sp_hamburger .box_contact div.tel{
text-align:center;
}
#sp_hamburger .box_contact div.tel a{
padding:0;
margin-bottom:10px;
}


#sp_hamburger .box_contact p{
text-align:center;
margin-bottom:15px;
}
#sp_hamburger .box_contact dl{
	display: flex;
	flex-flow: wrap;
	justify-content: space-between;
}
#sp_hamburger .box_contact dl dd{
width:47%;
font-size:13px;
}
#sp_hamburger .box_contact dl dd a{
display:block;
}

#sp_hamburger .box_link ul{
    display: flex;
    flex-flow: wrap;
margin:20px 0 0px;
}
#sp_hamburger .box_link ul li{
width:50%;
border-top: 1px solid #CCCCCC;
padding: 0 0;
}
#sp_hamburger .box_link ul li:nth-child(odd) {
    border-right: 1px solid #CCCCCC;
}

#sp_hamburger .box_link ul li a {
    padding: 10px 10px;
    display: block;
text-align:center;
font-size:13px;
}

body.hamcheck.expanded{
        touch-action: none;
        overflow: hidden;
        height: 100vh;
    }





}