html { scroll-behavior: smooth; overflow-y:scroll;}
/* 
* {
  font-family:sans-serif;
}
*/
body {
	margin: 0;
	padding: 0;
	font-family:"Noto Sans JP", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-size:14px;
	line-height:180%;
	color: #333333;
	/*min-width:1400px;*/
	min-width:1130px;
	-webkit-text-size-adjust: 100% ;
}
img {
	border: none;
	vertical-align:bottom;
}
div, p, ul, ul li, h1, h2, h3, h4, h5, dl, dt, dd {
	font-size:100%;
	margin: 0;
	padding: 0;
	list-style:none;
	box-sizing:border-box;
}
div, p, ul, ul li, h1, h2, h3, h4, h5, dl, dt, dd, ol, ol li, table, th, td {
	background-image:url(../image/spacer.gif);
}
a:link {color:#06F; outline:none; }
a:visited {color:#06F;}
a:hover {color: #333;}
a:hover img { opacity: 0.7; filter: alpha(opacity=70); -moz-opacity: 0.7;}
#wrapper { position: relative; overflow: hidden; }
#base { position:relative; }

.pc {display:block;}
.sm {display:none;}

.overflow { overflow:hidden; transition:delay 1s; }
.overflow::-webkit-scrollbar { transition:delay 1s; }

/*====================================================================================================
  NEWS RIBBON
====================================================================================================*/
#news-ribbon { position:absolute; top:675px; left:0; z-index:99; overflow:hidden; }
#news-ribbon .box { float:left; height:150px; }
#news-ribbon .cont { width:362px; overflow:hidden; background:#FFE332; padding:15px 0; }
#news-ribbon .cont .photo { float:left; width:120px; margin:0 25px 0 15px; }
#news-ribbon .cont .photo img { width:100%; }
#news-ribbon .cont .tit { margin:15px 0; overflow:hidden; }
#news-ribbon .cont .tit small { font-weight:400; }
#news-ribbon .cont .tit b a {
	display:block;
	text-decoration:none;
	color: #333333;
	font-size:137.5%;
	font-weight:500;
	letter-spacing:0.02em;
	/* white-space:nowrap; */
}
#news-ribbon .cont a:hover { opacity:0.7; }
#news-ribbon .btn {
	cursor:pointer;
	background:#FFCB3A;
	writing-mode:vertical-rl;
	line-height:100%;
	padding:15px;
	border-radius:0 0 100px;
	font-weight:500;
}
#news-ribbon .active { background:#FFE332; }


/*====================================================================================================
  HEADER
====================================================================================================*/
#header { position:fixed; top:0; left:0; width:100%; z-index: 999; display:block!important; }
#header .head {
	max-width: 1200px;
	width: 100%;
	margin:auto;
	position: relative;
	padding-top: 52px;
}

/*** LOGO ******************************************************************/
#header h1,
#header h1 a { display: block; width:100%; height:30px; }
#header h1 { text-align: center; }
#header h1 a {
	color: #333333;
    text-indent: -9999px;
    background: url(../image/logo.svg) no-repeat center right 270px;
    background-size: contain;
}

#header ul.sns {
	position: absolute;
	right: 143px;
	top: 52px;
	display: flex;
	justify-content: space-between;
	width: 84px;
}
#header ul.sns li { width: 30px; }

#header .head h1.hidden { visibility:hidden;}
#header ul.sns.hidden { visibility:hidden;}

/*** NAVIGATION ******************************************************************/

.nav-toggle {
	position: absolute;
	right: 0;
	top: 52px;
	font-size: 125%;
	color: #479030;
	font-weight: 700;
	cursor: pointer!important;
	display: block;
	background: url(../image/menu_open.png) no-repeat center;
	background-size: 100%;
	width: 63px;
	height: 36px;
	text-indent: -9999px;
}
.nav-toggle:hover { opacity: 0.7; }



/*========= ナビゲーションのためのCSS ===============*/
body.fixed{
  position: fixed;
  width:100%;
}

#g-nav{
    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
    position:fixed;
    z-index: 999;
    /*ナビのスタート位置と形状*/
  top:0;
    right: -120%;
  width:100%;
  background:rgb(139,195,28,0.9);
    height: 100vh;/*ナビの高さ*/
    /*動き*/
  transition: all 0.6s;
  width: 1000px;
    clear: both;
    display: block;
    margin: auto;
}

#g-nav-list .menu-head {
	max-width: 1000px;
	width: 100%;
	margin: 20px auto 80px;
}

#g-nav .menu-head h1 {}
#g-nav .menu-head h1 a { background: url(../image/logo-wh.png) no-repeat; background-size:contain; }

#g-nav .menu-head ul.sns {
    justify-content: space-between;
    width: 84px;
    right: 400px;
}


/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive{
    right: 0;
    width: 90%;
}
#nav-overlay.panelactive { transform: scale3d(3, 3, 3); transition: 2s; }
.nav-toggle.active { 
	background: url(../image/menu_close.png) no-repeat center; 
	background-size:100%;
	/*transition: ease-in-out 1s;*/
	transition:ease 0.25s;
	z-index: 9999;
	visibility:hidden;
}
.nav-toggle.panelactive:hover { transition: initial; }
/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
    /*ナビの数が増えた場合縦スクロール*/
    position: fixed;
    z-index: 999; 
    width: 100%;
    height: 100vh;/*表示する高さ*/
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 30px 200px;
}

/*ナビゲーション*/
#g-nav a {
	text-decoration: none;
	color: #fff;
	display: block; 
	font-weight:500;
}
#g-nav .inner {
	display: flex;
	justify-content: space-around;
	flex-flow: wrap;
	max-width: 910px;
}
#g-nav .inner ul { width: 45%; margin-bottom: 60px; }
#g-nav .inner ul li { border-bottom: 1px solid #fff; }
#g-nav .inner ul li:first-child { border-top: 1px solid #fff; }
#g-nav .inner ul li a {
	font-size: 114.3%;
	font-family: "Noto Sans JP";
	padding: 7% 0;
	position: relative;
	font-weight: 400;
	line-height: 100%;
}
#g-nav .inner ul li a::after {
	content: "\f105";
	color: #fff;
	font-family: "Font Awesome 5 Free";
	font-size: 80%;
	font-weight: 600;
	position: absolute;
	top: 50%;
	right: 25px;
	transform: translateY(-50%);
}
#g-nav .inner a:hover { opacity: 0.7; }
#g-nav .inner dl {
	display: block;
	clear: both;
	overflow: hidden;
	border-bottom: 1px solid #fff;
	width: 94%;
}
#g-nav .inner dl dt {
	color: #fff;
	position: relative;
	padding-left: 135px;
}
#g-nav .inner dl dt::before,
#g-nav .inner dl dt::after {
	content: "";
	background: #fff;
	height: 1px;
	position: absolute;
	top: 15px;
}
#g-nav .inner dl dt::before {
	width: 90px;
	left: 0;
}
#g-nav .inner dl dt::after {	
	width: 628px;
	right: 0;
}
#g-nav .inner dl dt b { font-weight: 400; position: relative; }
#g-nav .inner dl dt b::after {
	position: absolute;
	content: "\e8cc";
	color: #fff;
	font-family: "Material Icons";
	font-size: 125%;
	left: -25px;

}
#g-nav .inner dl dd { float: left; }
#g-nav .inner dl dd a {
	font-size: 112.5%;
	padding: 25px 30px 35px;
}
#g-nav .inner dl dd:nth-child(2) a { padding-left: 60px; }
#g-nav .inner .privacy_btn {
	width: 199%;
	font-size: 87.5%;
	text-align: right;
	margin: 30px 40px 30px 0;
}
#g-nav .inner .menu-illust {
	width: 100%;
	text-align: right;
}
#g-nav .inner .menu-illust img {
	width: 170px;
}

/*====================================================================================================
  CONTENT
====================================================================================================*/

#content { clear:both; width:100%; position:relative; margin-top:127px; }

.home #content { margin-top: 0; }

/*====================================================================================================
  FOOTER
====================================================================================================*/

#footer { 
	clear:both; 
	padding: 65px 0 165px; 
	width:100%; 
	background: url(../image/footer_min.gif) repeat-x;
	background-color:#F4F1EA;
	background-position:center bottom;
	background-size: 1100px;
	position:relative;
	overflow:hidden;
}
#footer::after {
	content:"";
	position:absolute;
	right:0;
	bottom:3px;
	width:290px;
	height: 103px;
	background:url(../image/footer_walk.gif) no-repeat;
	background-size:contain;
	animation:up-down 1s ease-in-out infinite, slide 30s linear infinite;
	transform: translateY(0px);
	transition: all 0.4s ease-in-out;
}
@keyframes bg_slide {
	0% { background-position: -1400px bottom; }
	100% { background-position: 0 bottom; }
}
@keyframes up-down{
	0% {
		transform: translatey(0px);
	}
	50% {
		transform: translatey(-7px);
	}
	100% {
		transform: translatey(0px);
	}
}
@keyframes slide {
	0% {
		right:-15%;
	}
	100% {
		right:105%;
	}
}
#footer .f_box { 
	clear: both; 
	overflow: hidden; 
	max-width: 1130px; 
	width: 100%;
	margin: auto; 
	position: relative;
}
#footer .f_box .box-l { float: left; }
#footer .f_box .box-r { float: right; clear: right; overflow: hidden; }

#footer .f_box .box-l h3.logo { margin: 15px 0 20px; }
#footer .f_box .box-l b { 
	font-size: 125%; 
	font-weight: 500; 
	margin-bottom: 10px; 
	display: block; 
}
#footer .f_box .box-l .add { font-weight: 300; letter-spacing: 0.1em; line-height: 170%; }
#footer .f_box .box-l .add a[href^="tel:"] { pointer-events: none; color:#333333;}
#footer .f_box .box-l .copy {	font-size: 75%; font-weight: 300; margin-top: 5px; }

#footer .f_box .box-r ul.f_nav { float: left; }
#footer .f_box .box-r ul.f_nav a, #footer .f_box .box-r ul.f_nav p { 
	font-weight: 300; 
	color: #333333; 
	text-decoration: none; 
	display: block; 
}
#footer .f_box .box-r ul.f_nav li { position: relative; padding-left: 15px; }
#footer .f_box .box-r ul.f_nav li ul li { 
	padding-left: 10px; 
	line-height: 150%; 
	font-size: 87.5%; 
}
#footer .f_box .box-r ul.f_nav > li { margin-bottom: 10px; }
#footer .f_box .box-r ul.f_nav2 { margin: 0 70px; }
#footer .f_box .box-r ul.f_nav3 li.sns_btn { clear: both; overflow: hidden; margin-top: 30px; }
#footer .f_box .box-r ul.f_nav3 li.sns_btn div { float: left; margin-right: 15px; }

#footer .f_box .box-r ul.f_nav li::after {
	color: #479030;
	position: absolute;
	left: 0;
	top: 0;
}
#footer .f_box .box-r ul.f_nav > li::after { content: "■"; font-size:50%; }
/* #footer .f_box .box-r ul.f_nav > li > ul > li::after { content: "-"; font-size:150%; } */
#footer .f_box .box-r ul.f_nav3 li.sns_btn::after { display: none; }

#footer .f_box .box-r ul.f_nav li a:hover { color: #90cc47; }

@media only screen and (min-width:701px) and (max-width:1300px){
	#footer .f_box .box-r ul.f_nav2 { margin: 0 30px;}
	#footer .f_box .box-r ul.f_nav3 { margin-right:80px;}
}

/*====================================================================================================
  PAGE
====================================================================================================*/
a#page_link,
a#page_link span { width:101px; height:198px; }
a#page_link { 
	position: absolute; 
	z-index: 999; 
	bottom: 0; 
	right: 5%;
}

a#page_link:hover {
	filter: alpha(opacity=70);-moz-opacity:  0.7;opacity:  0.7;
}

a#page_link span {
	text-indent: -9999px;
	background: url(../image/page_top.svg) no-repeat;
	position: absolute;
	bottom: 30px;
	right: 0;
}
a#page_link #button { z-index: 2; }
a#page_link #button_change { opacity: 0; z-index: 1; }






/* 2022-09-27 サイドメニューレイアウト */
#g-nav.panelactive { width:500px;}
#g-nav.panelactive #g-nav-list { padding:30px;}
#g-nav-list .menu-head { max-width:none; display:flex; margin:20px 0 80px;}
#g-nav .menu-head h1 { width:220px; }
#g-nav .menu-head ul.sns { position:static; }
#g-nav .menu-head div.close_btn {
	background: url(../image/menu_close.png) no-repeat center;
    background-size: 100%;
    width: 26px;
    height: 26px;
    cursor: pointer;
    margin-left: 100px;
}

#g-nav .inner { max-width:440px;}
#g-nav .inner dl dt::after { width:188px;}
#g-nav .inner dl dd a { padding:25px 10px 35px;}
#g-nav .inner dl dd:nth-child(2) a { padding-left:10px;}

#g-nav #g-nav-list {
    padding: 30px;
}

/*====================================================================================================
  COLOR eto.. [No Touch]
====================================================================================================*/
.light-blue { color: #40A6DD;}
.blue { color: #0000FF;}
.dark-blue { color: #000099;}
.purple { color: #660099;}
.pink { color: #FF6699;}
.red { color: #FF0000;}
.orange { color: #FF6600;}
.yellow { color: #FFCC00;}
.white { color: #FFFFFF;}
.gray { color: #666666;}
.brown { color: #663300;}
.green { color: #339900;}
.italic { font-style: italic;}
.strong { font-weight: bold;}
.large { font-size: 115%; line-height: 140%;}
.small { font-size: 80%;}
.underline { text-decoration: underline;}
.line-through { text-decoration: line-through;}
.left { text-align: left;}
.center { text-align: center;}
.right { text-align: right;}