@charset "UTF-8";

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

*   Since:2025-09
*   Editor:ricostyle

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



/*PC用のcssを記述*/


/*HEAD
------------------------------------------------------------ */
#header {
	position: absolute;
    top: -100px;
    left: 0px;
	width: 100%;
    height: 100px;
	margin-top: 100px;
	line-height: 1;
	background:url(../img/bk_head.png) repeat-x center top;

	z-index: 50;
}
#header .wrap
{width:100%;height:100%;text-align:left;}

/* HEAD Fixed */
#header.fixed {
 	position: fixed;
	margin-top: 0;
	top: 0;
	height: 100px;
	background:url(../img/bk_head.png) repeat-x center top;
	border-bottom:1px solid #FFF;
	transition: top 0.5s ease-in;
	-webkit-transition: top 0.5s ease-in;
	-moz-transition: top 0.5s ease-in;
	opacity:85%;
}



/* LOGO
------------------------------------------------------------ */
#header h1{padding:35px 0 0 20px;margin:0;position:relative;}
#header h1 img{vertical-align:bottom;padding-right:15px;}


/* MEMBER
------------------------------------------------------------ */
#header #member{position:absolute;right:0;top:20px;display:inline-block;
background-image: linear-gradient(180deg, #44774A, #2F5233);}
#header #member a{display:block;background:url(../img/icon_key.png) no-repeat 20px center;color:#F6F4E9;padding:20px 60px 20px 20px;text-indent:35px;font-weight:500;text-align:left;}
#header #member:hover{opacity:0.8;transition:0.3s;}


/* NAVI
------------------------------------------------------------ */
#SPmenu {visibility: hidden;display:none;}

#PCmenu{display:block;position:absolute;top:40px;right:270px;}
#PCmenu ul{}
#PCmenu li{display:inline-block;margin:0 0 0 30px;}
#PCmenu li a {display: block;position:relative;padding:0 0 45px 0;color:#3B250A;text-decoration:none;font-weight:500;z-index:1000000000;  background-image: linear-gradient(#427347, #427347);
  background-repeat: no-repeat;
  background-position: bottom right; /* 下線の初期位置 */
  background-size: 0 2px; /* 下線のサイズ（横幅、高さ） */
  transition: background-size 0.3s;}
#PCmenu li a:hover{color:#427347;  background-position: bottom left; /* 下線のホバー時位置 */
  background-size: 100% 2px; /* 下線の横幅を100%にする */}



#Vision #PCmenu li.nv01 a,#Service #PCmenu li.nv02 a,#Case #PCmenu li.nv03 a,#Lawyer #PCmenu li.nv04 a
{color:#427347;background-position: bottom left;background-size: 100% 2px;}


/* COMMON
------------------------------------------------------------ */
#container {
	height:auto;
	height:100%;
	width:100%;
	overflow: hidden;
    position: relative;
	margin: 0;
    padding: 0;
}
#contents{position:relative;padding-top:100px;width:100%;overflow:hidden;}
#contents .wrap{position:relative;margin:0 auto;}



/*PAGE UP
------------------------------------------------------------ */
#page-top a{display:block;width:90px;height:60px;filter:alpha(opacity=50);-moz-opacity: 0.5;opacity: 0.5;background:#60A368 url(../img/icon_totop.png) no-repeat center center;display:block;text-indent:-9999px;position:fixed;bottom:0;right:0;}
#page-top a:hover{filter:alpha(opacity=90);-moz-opacity: 0.9;opacity: 0.9;}



/* FOOTER
------------------------------------------------------------ */
#footer{width:100%;padding:70px 0;text-align:center;background-image: linear-gradient(180deg, #857460, #463117);}
#footer a{display:inline-block;margin-bottom:15px;}
#footer p{color:#FFF;letter-spacing:0.5px;font-size:0.8em;}






@media only screen and (max-width:1190px) {

/* LOGO */
#header h1{padding:30px 0 0 20px;width:244px;text-align:right;}
#header h1 img{display:inline-block;padding-right:0;padding-bottom:8px;}


/* MEMBER
------------------------------------------------------------ */
#header #member a{padding:20px 30px 20px 20px;}



/* NAVI
------------------------------------------------------------ */
#PCmenu{right:240px;}
#PCmenu li{margin:0 0 0 20px;}

}



@media only screen and (max-width:959px) {
/*スマホ・タブレット用のcssを記述*/

/* LOGO */


/* MEMBER */
#header #member{right:80px;top:20px;}
#header #member a{padding:20px;font-size:0.9em;}



/* NAVI */
#PCmenu{visibility: hidden;display:none;}
#SPmenu *{ box-sizing: border-box; }

#SPmenu {
	visibility:visible;
	display:block;
    position: absolute;
    top: 0px;
    right: 0px;
    width: 60px;
    height: 80px;
    margin: 0;
}
#header.fixed #SPmenu {
   top: 0px;
    height: 80px;
}

#SPmenu ul#headerNav {
   display: block;
   position: absolute;
   right: 15px;
   top: 20px;
   z-index: 1000;
   padding: 0;
   background: none;
}
#header.fixed #SPmenu ul#headerNav {
    top: 15px;
}

ul#headerNav li { display: inline-block; }
ul#headerNav li a {
    position: relative;
    display: block;
    width: 55px;
    height: 50px;
    padding: 0 15px;
    line-height: 1.1;
    font-size: 10px;  
    text-align: center;
    color: #427347;
    overflow: hidden;
    text-decoration: none;
}

ul#headerNav li#menuOpen a {
    letter-spacing: 0.1em;
    background: none;
}
ul#headerNav li#menuOpen a:hover {
    color: #BD181B;
    background: none;
}
ul#headerNav li#menuOpen a span {
    position: absolute;
    left: 15px;
    z-index: 9999;
    display: block;
    width: 36px;
    height: 2px;
    background: #427347;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
ul#headerNav li#menuOpen a span.line1 {
    top: 15px;
}
ul#headerNav li#menuOpen a span.line2 {
    top: 27px;
    opacity: 1;
}
ul#headerNav li#menuOpen a span.line3 {
    top: 39px;
}
ul#headerNav li#menuOpen.open a span {
    background: #427347;
}
ul#headerNav li#menuOpen.open a span.line1 {
    top: 25px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
}
ul#headerNav li#menuOpen.open a span.line2 {
 top: 25px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
ul#headerNav li#menuOpen.open a span.line3 {
    top: 25px;
    opacity: 0;
}


#SPmenu div#menu {
    display: none;
    position: fixed;
    top: 100px;
    left: 0px;
    z-index: 999;
    width: 100%;
    height: calc( 100vh - 100px);
    padding: 30px 0 20px;
    background:#B1D1B6;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
 

 
#SPmenu div#menu ul {
    padding: 0 20px;
}
#SPmenu div#menu ul li {
    position: relative;
    padding: 0 1em;
    text-align: left;
    letter-spacing: 0.2em;
}


#SPmenu div#menu ul li a {
    display: block;
    position: relative;
    width: 100%;
    line-height:4em;
    padding-left: 15px;
    padding-right: 10px;
    border-bottom: solid 1px #618965;
    font-size: 15px;
    color: #2F5233;
    text-decoration: none;
    cursor: pointer;
}
#SPmenu div#menu ul li a:hover{color:#FFF;}

#SPmenu div#menu ul li a::before {
    content: ">";
    display: inline-block;
    transform: scaleX(0.65);
    margin-right: 0.5em;
    margin-top: -3px;
    vertical-align: middle;
}


}
 

	
@media screen and ( max-width : 559px ) {
/*スマホ用のcssを記述*/  

/* LOGO 
------------------------------------------------------------ */
#header h1 {width:46%;}
#header h1 img.mainlogo{width:100%;max-width:244px;}
#header h1 img.enlogo{width:76%;max-width:180px;}


/* MEMBER 
------------------------------------------------------------ */
#header #member{display:none;height:0;width:0;}



/* FOOTER
------------------------------------------------------------ */
#footer{padding:50px 0;}
#footer a img{width:85%;}




}
