@charset "utf-8";

/*----------------------------------------------------
	                 common
------------------------------------------------------*/
html{
	overflow:auto;
}
body {
  color: #333;
  font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 14px;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  font-smoothing: antialiased;
  letter-spacing: 0.06em;
  line-height: 1.8;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  overflow-x: hidden;
}
a {
  color: #333;
  text-decoration: none;
  -webkit-transition: all .3s;
  transition: all .3s;
}
a:focus {
  outline: none;
}
a:hover{
	opacity:0.7;
}
img {
  height: auto;
  border: 0;
  vertical-align: middle;
}
a img:hover{
	opacity:0.7;
}
ul li {
  list-style-type: none;
}
input, button, textarea, select {
  font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
}
select{
	box-sizing:border-box;
	height:35px;
	border:#666 1px solid;
	padding:5px 10px;
}
input[type="text"],
input[type="password"],
input[type="email"]{
	padding:5px;
	border:#999 1px solid;
}
div{
	box-sizing:border-box;
}
p.checkbox{
	display:inline-block;
	margin-right:20px;
}
p.radio{
	display:inline-block;
	margin-right:20px;
}
input[type="checkbox"]{
	vertical-align:-1px;
	margin-right:5px;
	width:15px;
	height:15px;
}input[type="radio"]{
	vertical-align:0.5px;
	margin-right:5px;
}
textarea{
	border:#999 1px solid;
	padding:5px;
}
.for-sp {
  display: none;
}
@media only screen and (max-width: 1100px) {
  .for-sp {
    display: block;
  }
  .for-pc {
    display: none;
  }
}
.flex_spacebw{
	display:flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
.right{
	float:right;
}
.left{
	float:left;
}
p.center{
	text-align:center;
}
p.kome{
	font-size:80%;
}
.autowrap{
	display:inline-block;
}

/*----------------------------------------------------
	                 header
------------------------------------------------------*/
#header{
	position:relative;
	width:100%;
	height:135px;
	min-height:135px;
	display:flex;
	  -webkit-box-pack: justify;
	     -ms-flex-pack: justify;
	   justify-content: space-between;
	  -webkit-box-align: center;
	     -ms-flex-align: center;
	        align-items: center;
	  -ms-flex-negative: 0;
        flex-shrink: 0;
	padding-left:36px;
	line-height:135px;
}
#header .logo,
#header .logo a img{
	display:inline-block;
	width:90px;
}
#header .lang_switch{
	position:absolute;
	top:3px;
	right:3px;
	width:100px;
	height:25px;
	text-align:center;
	line-height:25px;
	border:#2aa75c 1px solid;
}
#header #global_nav .lang_switch ul,
#header #global_nav .lang_switch ul li{
	margin:0;
	padding:0;
	width:100%;
}
#header .lang_switch a{
	width:100%;
	display: inline-block;
	background-image: linear-gradient(to right, rgba(0,0,0,0) 50%, #2aa75c 50%);
	background-position: 0 0;
	background-size: 200% auto;
	transition: all .1s ease 0s;
	text-decoration: none;
    padding: 0;
    text-align: center;
}
.ja #header .lang_switch li.ja,
.en-US #header .lang_switch li.en-US{
	display:none;
}
#header .lang_switch a:link,#header .lang_switch a:visited{
	color:#2aa75c;
	font-size:12px;
	letter-spacing:4px;
	vertical-align:1px;
}
#header .lang_switch a:hover{
	opacity:1.0;
	cursor: pointer;
	background-position: -100% 0;
	color: #fff;
}
#header_menu {
	width:calc(100% - 121px);
	display:block;
}
#header_menu #global_nav{
	width:100%;
	display:flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
     -ms-flex-direction: row-reverse;
         flex-direction: row-reverse;
  -webkit-box-align: center;
     -ms-flex-align: center;
        align-items: center;
}
#header_menu #global_nav ul {
	margin-right:48px;
}
#header_menu ul li{
	display:inline-block;
	padding:0 20px 0 0;
	font-size:15px;
}
@media (max-width:1000px) {
	#header {
		height: 80px;
		line-height: 80px;
		min-height: 80px;
		padding:0px 10px 0 15px;
	}
	#header .logo a img{
		width:60px;
	}
	#header.logo{
		margin-left:20px;
		padding:0!important;
		width:100%;
		max-width:180px;
		line-height: 90px;
	}
	#header .lang_switch{
		position:relative;
		margin-top:50px;
	}
	#global_nav{
  overflow-y: auto;
	 position: fixed;
	 z-index:990;
	  top: 0;
	  left: 0;
	  right: 0;
	  bottom: 0;
	 background:rgba(255,255,255,0.99);
	 color: #000;
	 text-align: center;
	 width:initial;
		height:100%;
	 transform: translateX(100%);
	 transition: all 0.2s;
	 padding:60px 30px;
	 margin:0;
		line-height:1.8;
	}
	#header_menu #global_nav ul{
		width:100%;
		margin:0;
	}
	#global_nav ul li{
		box-sizing:border-box;
	 font-size:1em;
	 list-style-type: none;
	 margin:0!important;
		padding:0;
	 width: 100%;
	 border-bottom: 1px dotted #dbe5ee;
	text-align:left;
	}
	#global_nav ul li:last-child{
	 padding-bottom: 0;
	 border-bottom: none;
	}
	#global_nav ul li a{
	 display: block;
	 color: #000;
	 padding:0.5em 0;
	}
	#global_nav.active{
	 display:block!important;
	 transform: translateX(0%);
	}
	.hamberger {
	    display: block;
	    position: absolute;
	    right: 13px;
	    top: 20px;
	    width: 42px;
	    height: 42px;
	    cursor: pointer;
	    z-index:999;
	} 
	.hamberger span {
	    display: block;
	    position: absolute;
	    width: 36px;
	    border-bottom: solid 1px #666;
	    -webkit-transition: .35s ease-in-out;
	    -moz-transition: .35s ease-in-out;
	    transition: .35s ease-in-out;
	    left: 6px;
	}
	.hamberger span:nth-child(1) {
	    top: 9px;
	}
	.hamberger span:nth-child(2) {
	    top: 18px;
	}
	 
	.hamberger span:nth-child(3) {
	    top: 27px;
	}
	.hamberger.active span:nth-child(1) {
	    top: 18px;
	    left: 6px;
	    -webkit-transform: rotate(-45deg);
	    -moz-transform: rotate(-45deg);
	    transform: rotate(-45deg);
	}
	.hamberger.active span:nth-child(2),
	.hamberger.active span:nth-child(3) {
	    top: 18px;
	    -webkit-transform: rotate(45deg);
	    -moz-transform: rotate(45deg);
	    transform: rotate(45deg);
	}
}



/*----------------------------------------------------
	                 footer
------------------------------------------------------*/
#logo_area{
	width:100%;
	height:105px;
	min-height:105px;
	background:url("../img/bg_logo_area.png") repeat-x left top;
}
#logo_area ul{
	padding-top:46px;
	text-align:center;
}
#logo_area ul li{
	display:inline-block;
}
#logo_area ul li:nth-of-type(2){
	margin:0 60px 0 50px;
}
#footer {
	padding:75px 0;
	background-color:#586771;
	text-align:center;
}
#footer .inner.flex{
	width:100%;
	max-width:750px;
	margin:0 auto;
	position:relative;
	display:flex;
  -webkit-box-pack: justify;
     -ms-flex-pack: justify;
   justify-content: space-between;
	  -webkit-box-align: center;
	     -ms-flex-align: center;
	        align-items: center;
}
#footer .flex_right{
	width:590px;
}
#footer .flex_left{
	display:flex;
	  -webkit-box-align: center;
	     -ms-flex-align: center;
	        align-items: center;
	text-align:left;
	line-height:1.4;
}
#footer .logo{
	width:88px;
	margin-right:20px;
}
#footer nav#footer_nav ul li{
	display:inline-block;
	width:260px;
	text-align:left;
	font-size:14px;
}
#footer nav#footer_nav ul li:before{
	content:"";
	display:inline-block;
	width:6px;
	height:9px;
	background:url(../img/footer_arrow_white.png) no-repeat left 50%;
	margin-right:5px;
	vertical-align:2px;
}
#footer nav#footer_nav ul li:nth-of-type(3n+2){
	width:180px;
}
#footer nav#footer_nav ul li:nth-of-type(3n){
	width:120px;
}
#footer nav#footer_nav ul li a:link,#footer nav#footer_nav ul li a:visited,#footer nav#footer_nav ul li a:hover{
	color:#fff;
}
#footer .txt{
	display:inline-block;
	margin-top:20px;
}
#footer .txt p{
	display:inline-block;
	color:#ccc;
	font-size:12px;
	line-height:1.3;
}
#footer .txt p.address{
	margin-right:10px;
}
#footer #page_top{
	position:absolute;
	width:44px;
	height:44px;
	background-color:#99b6cb;
	border-radius:50%;
	line-height:44px;
	bottom:40px;
	right:10px;
}
@media (max-width:900px) {
	#footer{
		padding:60px 0 25px;
	}
	#footer .inner.flex{
		max-width:590px;
	}
	#footer nav#footer_nav ul li{
		width:230px;
	}
	#footer nav#footer_nav ul li:nth-of-type(3n+2){
		width:100px;
	}
	#footer nav#footer_nav ul li:nth-of-type(3n){
		width:120px;
	}
}
@media (max-width:768px) {
	#footer .inner.flex,
	#footer .flex_left,
	#footer .flex_right{
		display:block;
		max-width:none;
		width:100%;
	}
	#footer .logo{
		width:85px;
		margin:0 auto;
	}
	#footer nav#footer_nav ul li{
		width:100%!important;
		display:block;
		padding:10px;
		border-bottom:#999 1px solid;
	}
	#footer nav#footer_nav ul li:first-of-type{
		border-top:#999 1px solid;
		margin-top:50px;
	}
}
@media (max-width:686px) {
	#footer .txt p.address{
		margin-right:0;
		vertical-align:-12px;
	}
}
@media (max-width:500px) {
	#logo_area ul li:nth-of-type(2){
		margin:0 30px 0 20px;
	}
	#logo_area ul li a img{
		width:90%;
	}
}

/*----------------------------------------------------
	                 sections common
------------------------------------------------------*/
section > h3{
	font-size:40px;
	text-align:center;
	margin-bottom:25px;
	color:#021f4c;
	letter-spacing:4px;
	line-height:1.3;
}
section .container{
	width:100%;
	max-width:1276px;
	margin:0 auto 200px;
	padding:0 20px;
}
.page_title{
	background-size:100% auto;
	background-position:right top;
	background-repeat:no-repeat;
	object-fit:cover;
	margin-bottom:60px;
	padding:50px 25px;
	min-height:260px;
}
.page_title h1,
.page_title h2{
	margin:0;
	font-size:95px;
	font-weight:bold;
	line-height:1.0;
	letter-spacing:10px;
}
.page_title h3{
	margin:30px 0 60px;
	text-align:left;
	font-size:14px;
	font-weight:bold;
	letter-spacing:10px;
}
.page_title h3:after{
	content:"";
	display:block;
	width:32px;
	height:5px;
	background-color:#333;
	margin-top:10px;
}

.link_box{
	margin-top:50px;
}
.link_box a{
	display:block;
	margin:20px 0;
	letter-spacing:3px;
	text-align:left;
}
.link_box span.arrow{
	display:inline-block;
	width:30px;
	height:30px;
	background:#2ab169;
	border:#2ab169 1px solid;
	text-align:center;
	line-height:30px;
	margin-right:13px;
}
.link_box span.greenarrow{
	display:inline-block;
	width:30px;
	height:30px;
	border:#2ab169 1px solid;
	text-align:center;
	line-height:30px;
	margin-right:13px;
}
.link_box span.greenarrow img{
	padding-bottom:3px;
}
.link_box span.two_lines{
	display:inline-block;
	line-height:1.2;
	vertical-align:-7px;
}
.link_box a span.arrow{
	display: inline-block;
	background-image: linear-gradient(to right, rgba(0,0,0,0) 50%, #fff 50%);
	background-position: 0 0;
	background-size: 200% auto;
	transition: all .1s ease 0s;
	text-decoration: none;
}
.link_box a:link span.arrow,.link_box a:visited span.arrow{
	color:#fff;
}
.link_box a:hover span.arrow{
	cursor: pointer;
	background-position: -100% 0;
	color: #2ab169;
}
.link_box a span.greenarrow{
	display: inline-block;
	background-image: linear-gradient(to right, rgba(0,0,0,0) 50%, #2ab169 50%);
	background-position: 0 0;
	background-size: 200% auto;
	transition: all .1s ease 0s;
	text-decoration: none;
}
.link_box a:link span.greenarrow,.link_box a:visited span.greenarrow{
	color:#2ab169;
}
.link_box a:hover span.greenarrow{
	opacity:1.0;
	cursor: pointer;
	background-position: -100% 0;
	color: #fff;
}
@media (max-width:1400px) {
	.page_title{
		background-size:auto 325px;
		background-position:right 45% top; 
	}
}
@media (max-width:550px) {
	section .container{
		margin-bottom:60px;
	}
	.page_title h1,
	.page_title h2{
		font-size: 70px;
		font-weight: bold;
		line-height: 1.0;
		letter-spacing: 8px;
	}
	.page_title h3{
		margin: 10px 0 20px;
		letter-spacing: 7px;
	}
}


/*----------------------------------------------------
	                 pages
------------------------------------------------------*/

/* contact */
#contact .page_title,
#contact_confirm .page_title,
#contact_complete .page_title,
#contact_test .page_title{
	background-image:url("../img/bg_page_title_pasta.png");
}
.contact .link_box{
	width:100%;
	max-width:480px;
	margin:30px auto 0;
	display:flex;
}
.contact .link_box a:first-of-type{
	margin-right:40px;	
}
#contact_form .container{
	margin-bottom:30px;
}
.info_box{
	width:100%;
	border:#ccc 1px solid;
	padding:100px;
	margin:40px 0 100px;
	text-align:center;
}
.contact p.lead{
	margin:20px 0;
	text-align:center;
}
.contact p.lead a{
	padding:0 5px;
	margin:0 5px;
	color:#2ab169;
}
#contact_form{
	background:#f9fafa;
	width:100%;
	padding:100px;
	margin-bottom:100px;
}
#contact_form input,
#contact_form textarea{
	width:100%;
	min-width:initial;
}
#contact_form table{
	box-sizing:border-box;
	width:100%;
	margin-bottom:50px;
}
#contact_form table th{
	box-sizing:border-box;
	width:240px!important;
	min-width:240px!important;
	text-align:left;
	padding:30px;
	border-bottom:#ccc 1px dotted;
	vertical-align:top;
}
#contact_form table td{
	box-sizing:border-box;
	width:calc(100% - 200px );
	padding:30px;
	border-bottom:#ccc 1px dotted;
	vertical-align:top;
}
#contact_form span.icon_mandatory{
	display:inline-block;
	background-color:#2ab169;
	color:#fff;
	padding:2px 10px;
	margin-left:5px;
	border-radius:3px;
	font-size:90%;
}
#contact_form .agree{
	text-align:center;
	margin-bottom:30px;
}
#contact_form .agree a{
	display:inline-block;
	color:#2ab169;
	margin-bottom:40px;
}
#contact_form .button {
	text-align:center;
}
#contact_form .button a:hover{
	opacity:1.0!important;
}
#contact_form .button a input{
	box-sizing: border-box;
	display: inline-block;
    width:292px;
    line-height: 56px;
    background-color:#2ab169;
	border:#2ab169 1px solid;
	background-image: linear-gradient(to right, rgba(0,0,0,0) 50%, #fff 50%);
	background-position: 0 0;
	background-size: 200% auto;
	transition: all .1s ease 0s;
    color: #fff;
    font-size: 18px;
    text-align: center;
}
#contact_form .button a:link input,#contact_form .button a:visited input{
	color:#fff;
}
#contact_form .button a:hover input{
	cursor: pointer;
	background-position: -100% 0;
	color: #2ab169;
}

#contact_confirm .info_box,
#contact_confirm .container p.lead,
#contact_confirm .agree{
	display:none;
}
#contact_confirm #contact_form table{
	margin-bottom:100px;
}


#contact_form .button a input.gray{
	background:none;
	border:#666 1px solid;
	color:#666;
	padding:0;
	margin-top:40px;
}
#contact_privacybox{
	border:#ccc 1px solid;
	width:100%;
	height:400px;
	overflow-y:scroll;
	padding:50px;
	margin-bottom:100px;
	color:#666;
}
@media (max-width:1030px) {
	#contact_form{
		padding:20px;
	}
	#contact_form table{
		width:600px;
		margin-left:auto;
		margin-right:auto;
	}
	#contact_form table th{
		width:150px!important;
	}
	#contact_form table td{
		width:450px;
	}
	#contact_form table td input,
	#contact_form table td textarea{
		width:338px;
	}
}
@media (max-width:768px) {
	#contact_form table{
		width:100%;
		margin-bottom:10px;
	}
	#contact_form table th,
	#contact_form table td{
		display:block;
		width:100%!important;
		border:none;
		padding:3px;
	}
	#contact_form table td{
		padding-bottom:10px;
	}
	#contact_form table td input,
	#contact_form table td textarea{
		width:100%;
	}
	.button a {
		margin-bottom:10px;
	}
	.info_box{
		padding:30px 20px;
		margin:20px 0 100px;
	}
	.contact .link_box {
		display:block;
	}
	.contact .link_box a{
		width:100%;
	}
}


/* partner */
#partner .page_title{
	background-image:url("../img/bg_page_title_cuttingboard.png");
}
#partner #content .container{
	margin-top:60px;
}
#partner .row > .col-lg-3{
	padding-bottom:20px;
	margin-bottom:60px;
}
#partner .row > div img{
	display:block;
	width:100%;
	max-width:200px;
	margin:0 auto;
}
#partner .row h3{
	margin:30px 0 10px;
	padding:10px 0;
	border-top:#ccc 1px solid;
	border-bottom:#ccc 1px solid;
	font-size:20px;
	font-weight:bold;
	letter-spacing:3px;
	line-height:1.0;
}
#partner .row h4{
	margin:5px 0 15px;
	padding-bottom:10px;
	border-bottom:#ccc 1px solid;
	font-size:12px;
	letter-spacing:3px;
	line-height:1.0;
}

@media (max-width:991px) {
	#partner .row > div{
		max-width:550px;
		margin:0 auto 50px;
	}
}


/* activity */
.schedule{
	margin-top:40px;
}
.schedule dl{
	line-height:1.3;
	margin-bottom:30px;
}
.schedule dl:hover{
	opacity:0.7;
}
#content.activity{
	min-height:900px;
}
.activity .page_title{
	background-image:url("../img/bg_page_title_soba.png");
}
.post.detail h1{
	margin:40px 0 5px;
	padding-bottom:3px;
	border-bottom:#2aa75c 3px solid;
	font-size:30px;
	line-height:1.2;
}
.post.detail p.date{
	margin:5px 0 40px;
	letter-spacing:4px;
	font-size:16px;
	font-weight:bold;
}
.archive h1{
	margin:40px 0;
	padding-bottom:3px;
	border-bottom:#2aa75c 3px solid;
	font-size:30px;
	line-height:1.2;
}
.activity .link_box {
    margin-top: 100px;
}
.activity .link_box a{
    display:inline-block;
}
img.border_gray{
	border:#ccc 1px solid;
}

@media (max-width:991px) {
	.post.detail .row img{
		margin-top:20px;
	}
}


/* facility */
.facility .page_title{
	background-image:url("../img/bg_page_title_mashroom.png");
}
#facility .info_box{
	border-color:#2ab169;
	margin:20px 0 30px;
	padding:50px;
	text-align:left;
}
#facility .link_box{
	margin:30px 0;
}
#facility .row.center{
	margin-top:50px;
	text-align:center;
}

/*----------------------------------------------------
	                 English Version
------------------------------------------------------*/
.en-US #footer nav#footer_nav ul{
	text-align: left;
}
.en-US #footer nav#footer_nav ul li{
	width:90px;
	margin-right:70px;
}
.en-US #footer nav#footer_nav ul li:nth-of-type(4n){
	margin-right:0;
}
.en-US .page_title h1,
.en-US .page_title h2{
	padding-top:30px;
}
@media (max-width:900px) {
	.en-US #footer nav#footer_nav ul {
		margin-left:60px;
	}
	.en-US #footer nav#footer_nav ul li,
	.en-US #footer nav#footer_nav ul li:nth-of-type(4n){
		margin-right:70px;
	}
	.en-US #footer nav#footer_nav ul li:nth-of-type(3n){
		margin-right:0;
	}
}
@media (max-width:768px) {
	.en-US #footer nav#footer_nav ul {
		margin-left:0;
	}
}

/*----------------------------------------------------
	                 clearfix
------------------------------------------------------*/
.clearfix::after {
  height: 0;
  display: block;
  clear: both;
  visibility: hidden;
  content: "";
}
