@charset "UTF-8";

/*---------------------------------------------- CSSリセット------------------------------------------------------------------- */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strike, strong, sub, sup, tt, var,
u, i, center, flex, flex-basis,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1.6;  box-sizing:border-box;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/*---------------------------------------------- 基本ブロック------------------------------------------------------------------- */

html{font-size:62.5%;}
body{font-size:1.6rem; color: #131313;}
*, *::before, *::after {
  box-sizing:border-box;
}
.clearfix::after{
  content:'';
  display:block;
  clear:both;
}
a{text-decoration: none; color: inherit;}
a:hover{opacity: 0.7;}

#wrapper{
width:100%;
margin:0 auto;
position: relative;
min-height: 100vh;
padding-bottom: 1100px;
}

@media (max-width: 768px) {
#wrapper{
width:100%;
margin:0 auto;
}
}

.contents{
width:100%;
height: auto;
margin:0 auto;
}

.main{
width:100%;
height:auto;
margin: 0 auto;
}

.center{text-align: center;}
hr.green_line{border-top:2px solid #9fcc01; margin-bottom: 60px;}
hr.green_line2{border-top:2px solid #9fcc01; margin-bottom: 30px;}

h3{font-size:2.2rem; font-weight:700; margin: 0 0 30px;}
.text{text-align: justify;}
.text_right{text-align: right;}

.bottom15{margin-bottom: 15px;}
.bottom30{margin-bottom: 30px;}
.bottom60{margin-bottom: 60px;}
.bottom80{margin-bottom: 80px;}
.bottom100{margin-bottom: 100px;}
.bottom120{margin-bottom: 120px;}


@media (max-width: 768px) {
.pc{display: none;}
.sp{display: block;}
}

@media (min-width: 769px) {
.pc{display: block;}
.sp{display: none;}
}

section{position: relative;}

.breadcrumb{width:1000px; text-align: right; font-size: 1.2rem; position:absolute; top:280px; right: 0;}

.cn{font-family: "PingFang SC","Arial","Microsoft YaHei",sans-serif;}

/*---------------------------------------------- ヘッダー------------------------------------------------------------------- */

header{width:100%; margin: 0 auto;}
.header_container{width:1000px; height:80px; margin: 0 auto; padding-top: 10px; position: relative; border: 0px solid #333; z-index: 10000;}
.head_image{
  padding-top: 80px;
  width:100%;
  height: 184px;
  margin: 0 auto 120px;
  border-bottom: 20px solid #9fcc01;
  line-height: 0;
  background: url(images/service_head.jpg);
  background-size: cover;
  background-repeat: repeat;
  position: relative;
}

.head_image_mission{
  padding-top: 80px;
  width:100%;
  height: 184px;
  margin: 0 auto 120px;
  border-bottom: 20px solid #9fcc01;
  line-height: 0;
  background: url(images/mission_head.jpg);
  background-size: cover;
  background-repeat: repeat;
  position: relative;
}

.head_image_contact{
  padding-top: 80px;
  width:100%;
  height: 184px;
  margin: 0 auto 120px;
  border-bottom: 20px solid #9fcc01;
  line-height: 0;
  background: url(images/contact_head.jpg);
  background-size: cover;
  background-repeat: repeat;
  position: relative;
}

h2.page_title{width:1000px; margin:56px auto 0; text-align: left; font-weight:300; font-size: 5.0rem;
  -webkit-text-stroke: 3px #fff;
  text-stroke: 3px #fff;
  paint-order: stroke;
}
h2.page_title span{font-size: 2.4rem; padding-left: 20px;}

@media (max-width: 768px) {
header{width:100%; margin: 0 auto;}
.header_container{width:100%; height:auto; margin: 0 auto; padding-top: 10px; position: relative; border: 0px solid #333; z-index: 10000;}
header h1{margin: 0; padding: 15px 0 0 15px;}

.head_image{
  padding-top: 0px;
  width:100%;
  height: 300px;
  margin: 30px auto 30px;
  border-bottom: 10px solid #9fcc01;
  line-height: 0;
  background: url(images/service_head_sp.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  background-position: center;
}

.head_image_mission{
  padding-top: 0px;
  width:100%;
  height: 300px;
  margin: 30px auto 30px;
  border-bottom: 10px solid #9fcc01;
  line-height: 0;
  background: url(images/mission_head_sp.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  background-position: center;
}

.head_image_contact{
  padding-top: 0px;
  width:100%;
  height: 300px;
  margin: 30px auto 30px;
  border-bottom: 10px solid #9fcc01;
  line-height: 0;
  background: url(images/contact_head_sp.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  background-position: center;
}

h2.page_title{width:90%; text-align: left; position: absolute; top:30px; left:20px; font-weight:400; font-size: 3.2rem; line-height: 140%;}
h2.page_title span{font-size: 1.8rem; padding-left: 0px; display: block;}

}


.header_langage{width: 150px; background: #9fcc01; border-radius: 14px; position: absolute; top:15px; right:0px; text-align: center; color: #fff; font-size: 1.4rem; font-weight: 700; padding: 7px;}
.header_langage a{font-size: 1.4rem; font-weight: 400; text-align: center; color: #fff;}

@media (max-width: 768px) {
.header_langage{width: 150px; background: #9fcc01; border-radius: 14px; position: relative; text-align: center; color: #fff; font-size: 1.4rem; font-weight: 700; padding: 7px;}
.header_langage a{font-size: 1.4rem; font-weight: 400; text-align: center; color: #fff;}  
}


/*---------------------------------------------- Gメニュー（PC）------------------------------------------------------------------- */

.global-nav {background: #fff; position: absolute; top:10px; left:370px;}

.menu {
  display: flex;
  list-style: none;
}

.menu > li {
  position: relative;
  font-size: 1.4rem;
  font-weight: 500;
}

.menu > li > a {
  display: block;
  padding: 12px 15px;
  color: #131313;
  text-decoration: none;
}

.menu > li > a:hover {
  background: #fff;
}

/* ====== サブメニュー ====== */
.menu ul {
  position: absolute;
  top: 100%;
  left: 10px; /* 親<li>と左端を揃える */
  min-width: 100%; /* 親<li>と同じ幅からスタート */
  background: rgba(255, 255, 255, 0.9);
  list-style: none;

  /* 初期は非表示 */
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;

  /* アニメーション */
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/* ====== 第3階層（右に表示） ====== */
.menu ul ul {
  top: 0;
  left: 100%; /* 親<li>の右端から */
  min-width: 180px;
  background: rgba(255, 255, 255, 0.9);
  transform: translateX(-10px);
}

/* ====== 表示時 ====== */
.menu li:hover > ul {
  opacity: 1;
  transform: translate(0, 0);
  pointer-events: auto;
}

/* ====== サブメニューのリンク ====== */
.menu ul li a {
  width: 96%;
  margin: 0 auto;
  display: block;
  padding: 10px 20px;
  color: #131313;
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 1px dotted #131313;
}

.menu ul li a:hover {
	color:#dc143c;
}

/* 第二層にマウスが入ったら、hoverしていない項目を薄く */
.menu ul:hover > li:not(:hover) {
  opacity: 0.6;
  transition: opacity 0.3s ease;
}

/*---------------------------------------------- Gメニュー（SP）------------------------------------------------------------------- */

@media (max-width: 768px) {

 :root {
      --panel-width: 100vw;
      --radius: 0;
      --overlay: rgba(0,0,0,.48);
      --easing: ease-in-out;
      --speed: 0.4s;
    }

    .btn { position: fixed; top: 10px; right: 10px; z-index: 1000; padding: 10px 15px; background: #9fcc01; color: #333; 
      border-radius: 4px; text-decoration: none; transition: opacity var(--speed) var(--easing); 
      font-size: 2.4rem; color: #fff;
    }

    /* メニュー開時はボタン非表示 */
    header:has(#menu-right:target) .btn {
      opacity: 0;
      pointer-events: none;
    }

    nav{flex:1; overflow: auto;}

    .drawer { position: fixed; inset: 0; z-index: 999; pointer-events: none; }
    .drawer:target { pointer-events: auto; }

    .drawer__backdrop { position: absolute; inset: 0; background: var(--overlay); opacity: 0; transition: opacity var(--speed) var(--easing); }
    .drawer:target .drawer__backdrop { opacity: 1; }

    .drawer__panel { position: absolute; top: 0; bottom: 0; width: var(--panel-width); background: #f5f5dc; transition: transform var(--speed) var(--easing); display: flex; flex-direction: column; }

    .drawer[data-side="right"] .drawer__panel { right: 0; transform: translateX(100%); }
    .drawer[data-side="right"]:target .drawer__panel { transform: translateX(0); }

    .drawer__header { display: flex; justify-content: space-between; padding: 1.5rem; background: #9fcc01; color: #fff; }
    .drawer__close { color: #fff; text-decoration: none; }

    .nav ul li { display: block; padding: 1rem 1rem 1rem 2.6rem; border-bottom: 1px solid #a9a9a9; color: #131313; text-decoration: none; }
    .nav ul li ul li ul li{list-style-type:disc; list-style-position: inside;}
    .nav ul li ul li { display: list-item; padding: 1rem 1rem 1rem 2.6rem; border-bottom: 0px dotted #333; color: #131313; text-decoration: none;}
    .nav a:hover { background: #eee; }
  }

/*-----------------------------------------メインビジュアルアニメーション（PC）----------------------------------------------------- */


    .hero {
      position: relative;
      width: 100%;
      max-height: 500px;
      height: 500px;
      margin: 0 auto 120px;
      overflow: hidden;
    }

    .hero-bg {
      background: url('images/main_image.jpg') no-repeat center center;
      background-size: cover;
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      transform: translateX(100%);
      opacity: 0;
      animation: slideInRight 1.5s ease forwards;
    }

.hero-overlay {
  background: rgba(159, 204, 1, 0.8);
  position: absolute;
  width: 100%;
  height: 100%;
  clip-path: polygon(0 0, 45% 0, 30% 100%, 0% 100%);
  transform: translateX(-100%);
  opacity: 0;
  animation: slideInLeft 1.5s ease forwards;
  animation-delay: 1.5s;
  z-index: 2;
}

.hero_container{width:1300px; margin:0 auto; position:relative; height:500px; border:0px solid #ff0000;}

    .hero-text {
      position: absolute;
      top: 15%;
      left: 10%;
      color: #fff;
      font-size: 5.4rem;
	  font-weight: 700;
      z-index: 3;
    }

	h1{margin: 0; padding: 0; line-height: 120%;}

    .line {
      opacity: 0;
      transform: translateY(20px);
    }

    @keyframes slideInRight {
      0% { transform: translateX(100%); opacity: 0; }
      100% { transform: translateX(0); opacity: 1; }
    }

    @keyframes slideInLeft {
      0% { transform: translateX(-100%); opacity: 0; }
      100% { transform: translateX(0); opacity: 1; }
    }


.hero-caption {
  position: absolute;
  bottom: 70px;
  left: 10%;
  color: #fff;
  font-size: 1.8rem;
  opacity: 0;
  transform: translateY(40px);
  transition: all 1s ease;
  z-index: 4;
}

.hero-caption h2{font-size:2.4rem; font-weight:400; margin:0 0 20px;}

.hero-caption.visible {
  opacity: 1;
  transform: translateY(0px);
}

/*-----------------------------------------メインビジュアルアニメーション（SP）----------------------------------------------------- */

@media (max-width: 768px) {

    .hero {
      position: relative;
      width: 100%;
      max-height: 500px;
      height: auto;
      margin: 20px auto 120px;
      overflow: hidden;
    }

    .hero img{width:100%;}

    .hero-bg {
      background: url('images/main_image_sp.jpg') no-repeat center center;
      background-size: cover;
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      transform: translateX(100%);
      opacity: 0;
      animation: slideInRight 1.5s ease forwards;
    }



.hero_container{width:100%; margin:0 auto; position:relative; top:0px; left:0px; height:auto; border:0px solid #ff0000;}

    .hero-text {
      position: relative;
      text-align: center;
      top: 0;
      left: 0;
      color: #fff;
      margin: 40px auto 20px;
      font-size: 3.4rem;
      font-weight: 700;
      z-index: 3;
      text-shadow: 1px 1px 2px #131313;
    }

	h1{margin: 0; padding: 0; line-height: 120%;}

    .line {
      opacity: 0;
      transform: translateY(20px);
    }

    @keyframes slideInRight {
      0% { transform: translateX(100%); opacity: 0; }
      100% { transform: translateX(0); opacity: 1; }
    }

    @keyframes slideInLeft {
      0% { transform: translateX(-100%); opacity: 0; }
      100% { transform: translateX(0); opacity: 1; }
    }


.hero-caption{
  position: relative;
  margin: 60px auto;
  left:0;
  bottom:0;
  text-align: center;
  color: #fff;
  font-size: 1.8rem;
  opacity: 0;
  transform: translateY(40px);
  transition: all 1s ease;
  z-index: 4;
  font-weight: 700;
  text-shadow: 2px 2px 3px #131313;
}

.hero-caption h2{font-size:2.0rem; font-weight:700; margin:0 auto 20px;}

.hero-caption.visible {
  opacity: 1;
  transform: translateY(0px);
}

}


/*-----------------------------------------セクション見出し----------------------------------------------------- */

.logo_icon{width:40px; margin:0 auto;}
h2.sec_title{width:100%; margin:-15px auto 0; text-align: center; font-weight:300; font-size: 4.8rem;}
h2.sec_title span{display: block; font-size: 1.8rem; text-align: center; font-weight:400;}

@media (max-width: 768px) {
.logo_icon{width:40px; margin:0 auto;}
h2.sec_title{width:100%; margin:-15px auto 0; text-align: center; font-weight:300; font-size: 3.2rem;}
h2.sec_title span{display: block; font-size: 1.6rem; text-align: center; font-weight:400;}
}

/*-----------------------------------------セクション（About Us & Service）----------------------------------------------------- */


.flex_container2,.flex_container3{
width:960px;
height:auto;
margin: 0 auto 120px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.flex_container2 .flex_left{
	flex:0 0 400px;
	margin: 60px 0 0;
}

.flex_container2 .flex_right{
	flex:0 0 500px;
	margin: 60px 0 0;
	position: relative;
}

.link_btn{border:1px solid #333; padding:10px; width:170px; text-align: center; margin: 30px 0 0; position:absolute; top:200px; right:0; background: #fff; z-index: 500;}
.link_btn a{text-decoration: none; font-size: 1.6rem; font-weight: 400; color:#333;}
.link_btn a:hover{opacity: 0.7;}

.link_btn2{border:1px solid #333; padding:10px; width:170px; text-align: center; margin: 30px auto 120px;}
.link_btn2 a{text-decoration: none; font-size: 1.6rem; font-weight: 400; color:#333;}
.link_btn2 a:hover{opacity: 0.7;}

.link_btn3{border:1px solid #333; padding:10px; width:170px; text-align: center; margin: 30px 0 0; position:absolute; top:100px; left:0; background: #fff; z-index: 500;}
.link_btn3 a{text-decoration: none; font-size: 1.6rem; font-weight: 400; color:#333;}
.link_btn3 a:hover{opacity: 0.7;}

@media (max-width: 768px) {
.flex_container2,.flex_container3{
width:90%;
height:auto;
margin: 0 auto 120px;
display: block;
}

.flex_container2 .flex_left{
  width: 100%;
	margin: 20px auto 0;
  text-align: center;
}

.flex_container2 .flex_left img{width: 90%;}

.flex_container2 .flex_right{
  width: 100%;
	margin: 20px 0 0;
	position: relative;
}

h3{font-size:2.2rem; font-weight:700; margin: 0 0 30px; text-align: center;}
.text{text-align: justify;}

.link_btn{border:1px solid #333; padding:10px; width:170px; text-align: center; margin: 30px auto 0; position:relative; top:0px; right:0; background: #fff; z-index:500;}
.link_btn a{text-decoration: none; font-size: 1.6rem; font-weight: 400; color:#333;}
.link_btn a:hover{opacity: 0.7;}

.link_btn2{border:1px solid #333; padding:10px; width:170px; text-align: center; margin: 30px auto 120px;}
.link_btn2 a{text-decoration: none; font-size: 1.6rem; font-weight: 400; color:#333;}
.link_btn2 a:hover{opacity: 0.7;}

.link_btn3{border:1px solid #333; padding:10px; width:170px; text-align: center; margin: 30px auto 0; position:relative; top:0px; right:0; background: #fff; z-index:500;}
.link_btn3 a{text-decoration: none; font-size: 1.6rem; font-weight: 400; color:#333;}
.link_btn3 a:hover{opacity: 0.7;}
}

.service_block{
	width:1000px;
	height: auto;
	margin: 30px auto 30px;
	background: #e9f6fe;
	border: 0px solid #333;
	padding: 40px 0;
}

.service_block2{
	width:1000px;
	height: auto;
	margin: 0px auto 120px;
	background: #fff;
	border: 0px solid #333;
	padding: 0;
}

.service_midashi{width: 940px; font-size:2.2rem; font-weight:400; margin: 0 auto; text-align: left;}

.service_block .flex_container2{
	width:960px;
	height:auto;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.service_block .flex_container2 .flex_left{
	flex:0 0 470px;
	margin: 20px 0 0 10px;
}
.service_block .flex_container2 .flex_right{
	margin: 20px 0 0;
	flex:0 0 420px;
}

.service_block .flex_container2 .flex_right ul{
	width:430px;
}

.service_block .flex_container2 .flex_right ul li{
	width: 200px;
	height:100px;
	text-align: center;
	line-height: 100px;
	background-color: #9fcc01;
	margin: 10px 5px;
	display: inline-block;
}
.service_block .flex_container2 .flex_right ul li a{
	font-size: 1.8rem;
	color: #fff;
	width: 200px;
	height: 100px;
	display: block;
}
.service_block .flex_container2 .flex_right ul li:hover{opacity: 0.7;}

.service_block2 .flex_container3{
	width:1000px;
	height:auto;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.service_block2 .flex_container3 .flex_left{
	flex: 0 0 320px;
	background: #e9f6fe;
	text-align: center;
	padding: 30px 0;
}

.service_block2 .flex_container3 .flex_center{
	flex: 0 0 320px;
	background: #e9f6fe;
	text-align: center;
	padding: 30px 0;
}

.service_block2 .flex_container3 .flex_right{
	flex: 0 0 320px;
	background: #e9f6fe;
	text-align: center;
	padding: 30px 0;
}

.service_block2 .flex_container3 a:hover{opacity:0.7;}
.service_block2 .flex_container3 .flex_left p{font-size:2.2rem; font-weight:400; margin: 10px auto 0;}
.service_block2 .flex_container3 .flex_center p{font-size:2.2rem; font-weight:400; margin: 10px auto 0;}
.service_block2 .flex_container3 .flex_right p{font-size:2.2rem; font-weight:400; margin: 10px auto 0;}

@media (max-width: 768px) {
.service_block{
	width:90%;
	height: auto;
	margin: 30px auto 30px;
	background: #e9f6fe;
	border: 0px solid #333;
	padding: 40px 0;
}

.service_block2{
	width:100%;
	height: auto;
	margin: 0px auto 120px;
	background: #fff;
	border: 0px solid #333;
	padding: 0;
}

.service_midashi{width: 100%; font-size:2.2rem; font-weight:400; margin: 0 auto; text-align: center;}

.service_block .flex_container2{
	width:100%;
	height:auto;
	margin: 0 auto;
	display: block;
}

.service_block .flex_container2 img{width: 90%;}

.service_block .flex_container2 .flex_left{
	margin: 20px auto;
  text-align: center;
}
.service_block .flex_container2 .flex_right{
	margin: 20px auto;
}

.service_block .flex_container2 .flex_right ul{
	width:100%;
  text-align: center;
}

.service_block .flex_container2 .flex_right ul li{
	width: 90%;
	height:100px;
	text-align: center;
	line-height: 100px;
	background-color: #9fcc01;
	margin: 10px 5px;
	display: inline-block;
}
.service_block .flex_container2 .flex_right ul li a{
	font-size: 2.0rem;
  font-weight: 700;
	color: #fff;
	width: 100%;
	height: 100px;
	display: block;
}
.service_block .flex_container2 .flex_right ul li:hover{opacity: 0.7;}

.service_block2 .flex_container3{
	width:90%;
	height:auto;
	margin: 0 auto;
	display: block;
}

.service_block2 .flex_container3 .flex_left{
	background: #e9f6fe;
	text-align: center;
	padding: 30px 0;
  margin: 0 auto 20px;
}

.service_block2 .flex_container3 .flex_center{
	background: #e9f6fe;
	text-align: center;
	padding: 30px 0;
  margin: 0 auto 20px;
}

.service_block2 .flex_container3 .flex_right{
	background: #e9f6fe;
	text-align: center;
	padding: 30px 0;
  margin: 0 auto 20px;
}

.service_block2 .flex_container3 a:hover{opacity:0.7;}
.service_block2 .flex_container3 .flex_left p{font-size:2.2rem; font-weight:400; margin: 10px auto 0;}
.service_block2 .flex_container3 .flex_center p{font-size:2.2rem; font-weight:400; margin: 10px auto 0;}
.service_block2 .flex_container3 .flex_right p{font-size:2.2rem; font-weight:400; margin: 10px auto 0;}

.service_block2 .flex_container3 .flex_left img,
.service_block2 .flex_container3 .flex_center img,
.service_block2 .flex_container3 .flex_right img{width:90%; height:auto;}
}


/*-----------------------------------------セクション（Strength）----------------------------------------------------- */

.strength h3{margin: 60px auto 50px;}

.strength_item{width:882px; margin: 0 auto 20px; text-align: center;}
.strength_item li{
width:240px;
height:220px;
border-top: 2px solid #9fcc01;
border-left: 2px solid #9fcc01;
border-right: 2px solid #9fcc01;
border-bottom: 14px solid #9fcc01; 
text-align: center;
list-style: none;
display: inline-block;
margin: 0 25px 70px;
box-sizing:border-box;
font-size: 2.8rem;
font-weight: 700;
}
.strength_item li span{font-size:6.0rem; display: block; color: #9fcc01; font-weight: 700;}
.strength_item li span.s_text{font-size: 2.2rem; color: #131313; display: inline;}


@media (max-width: 768px) {

.strength h3{margin: 60px auto 50px;}

.strength_item{width:90%; margin: 0 auto 20px; text-align: center;}
.strength_item li{
width:80%;
height:220px;
border-top: 2px solid #9fcc01;
border-left: 2px solid #9fcc01;
border-right: 2px solid #9fcc01;
border-bottom: 14px solid #9fcc01; 
text-align: center;
list-style: none;
display: inline-block;
margin: 0 auto 20px;
box-sizing:border-box;
font-size: 2.4rem;
font-weight: 700;
}
.strength_item li span{font-size:5.0rem; display: block; color: #9fcc01; font-weight: 700;}
.strength_item li span.s_text{font-size: 2.2rem; color: #131313; display: inline;}

}


/*-----------------------------------------セクション（News & Contact）----------------------------------------------------- */

.news_block{width: 960px; height:auto; margin: 60px auto 120px;}
.news_block dl{border-bottom: 1px dotted #000; margin:0 auto 30px; padding-bottom: 10px;}
.news_block dt{float:left; margin:0 40px 0 10px; width:110px;}
.news_block dd{float: left; width: 800px;}

section.contact{background: #fafafa; margin-top: -60px; padding-top: 60px; border-bottom:80px solid #9fcc01;}

.contact h4{margin: 40px auto 30px;}
.inquiry_block{width:805px; height:200px; position: relative; margin: 10px auto 30px; border: 0px solid #131313;}
.inquiry_item01,.inquiry_item03,.inquiry_item05{width: 100px; height:40px; line-height: 38px; text-align: center; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #131313;}
.inquiry_item01{position: absolute; top:80px; left:0px;}
.inquiry_item02{position: absolute; top:50px; left:120px;}
.inquiry_item02{width:100px; height: 100px; border: 1px solid #131313; box-sizing: content-box;}
.inquiry_item03{position: absolute; top:40px; left:280px;}
.inquiry_item04{position: absolute; top:30px; left:400px;}
.inquiry_item04{width: 220px; height:60px; background: #9fcc01; text-align: center; line-height: 60px;}
.inquiry_item04 a{display:inline-block; color: #fff; width: 220px; height: 60px; font-size: 1.8rem;}
.inquiry_item05{position: absolute; top:120px; left:280px;}
.inquiry_item06{position: absolute; top:120px; left:400px; font-size: 2.8rem; font-weight:700; line-height: 100%;}
.inquiry_item06 span{font-size: 1.8rem;}

@media (max-width: 768px) {

.news_block{width: 90%; height:auto; margin: 60px auto 120px;}
.news_block dl{border-bottom: 1px dotted #000; margin:0 auto 30px; padding-bottom: 10px;}
.news_block dt{float:left; margin:0 0 10px 0; width:30%;}
.news_block dd{float: left; width: 100%;}

.contact h4{margin: 40px auto 30px;}
.inquiry_block{width:90%; height:auto; position: relative; margin: 10px auto 30px; border: 0px solid #131313;}
.inquiry_item01,.inquiry_item03,.inquiry_item05{width: 220px; height:40px; line-height: 38px; text-align: center; font-size: 1.8rem; font-weight: 700; background: #fff; border: 1px solid #131313;}
.inquiry_item01{position: relative; top:0px; left:0px; margin: 20px auto;}
.inquiry_item02{position: relative; top:0px; left:0px; margin: 0 auto 40px;}
.inquiry_item02{width:100px; height: 100px; border: 1px solid #131313; box-sizing: content-box;}
.inquiry_item03{position: relative; top:0px; left:0px; margin: 0 auto 20px;}
.inquiry_item04{position: relative; top:0px; left:0px; margin: 0 auto 40px;}
.inquiry_item04{width: 220px; height:60px; background: #9fcc01; text-align: center; line-height: 60px;}
.inquiry_item04 a{display:inline-block; color: #fff; width: 220px; height: 60px; font-size: 1.8rem;}
.inquiry_item05{position: relative; top:0px; left:0px; margin: 0 auto 20px;}
.inquiry_item06{position: relative; top:0px; left:0px; font-size: 2.8rem; font-weight:700; margin: 0 auto; text-align: center; line-height: 100%;}
.inquiry_item06 span{font-size: 1.8rem;}
  
}

/*-----------------------------------------下層ページ----------------------------------------------------- */

.block_contents{
  width:100%;
  height:auto;
  margin: 0 auto 120px;
}
h2.block_title{width:980px; margin:60px auto 0; text-align: left; font-weight:300; font-size: 3.6rem;}
h2.block_title span{font-size: 1.8rem; padding-left: 20px;}
h2.block_title_mission{width:980px; margin:60px auto 0; text-align: left; font-weight:700; font-size: 3.2rem;}

.block_contents .flex_container2{
	width:980px;
	height:auto;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.block_contents .flex_container2 .flex_left{
	flex:0 0 510px;
	margin: 20px 0 0 10px;
  position: relative;
}

.block_contents .flex_container2 .flex_left ul{
	width:430px;
  margin: 30px auto 0;
}

.block_contents .flex_container2 .flex_left ul li{
	width: 200px;
	height:70px;
	text-align: center;
	line-height: 70px;
	background-color: #9fcc01;
	margin: 10px 5px;
	display: inline-block;
}
.block_contents .flex_container2 .flex_left ul li a{
	font-size: 1.8rem;
	color: #fff;
	width: 200px;
	height: 70px;
	display: block;
}
.service_block .flex_container2 .flex_right ul li:hover{opacity: 0.7;}


.block_contents .flex_container2 .flex_right{
	margin: 20px 0 0;
	flex:0 0 400px;
}

.block_contents .flex_container4{
	width:980px;
	height:auto;
	margin: 0 auto;
	display: flex;
	justify-content:center;
	flex-wrap: wrap;
}

.block_container{width:980px; margin: 80px auto 80px; position: relative;}
.mission_text01{position: absolute; top:30px; left:600px; font-size: 2.0rem; font-weight: 500;}
.mission_text02{position: absolute; top:170px; left:600px; font-size: 2.0rem; font-weight: 500;}
.mission_text03{position: absolute; top:290px; left:600px; font-size: 2.0rem; font-weight: 500;}
.mission_text01 span,.mission_text02 span,.mission_text03 span{font-size: 1.6rem; font-weight: 400; display: block;}

.company_table{
	width:980px;
	height:auto;
	margin: 30px auto 30px;
	border-spacing: 0;
	border-collapse: collapse;
  box-sizing: border-box;
}

.company_table tr:nth-child(odd) {background: rgba(159, 204, 1, 0.2);}
.company_table tr:nth-child(even) {background: #eee;}
.company_table td.td01{width:300px; border-top:1px solid #5a5a5a; border-bottom:1px solid #5a5a5a; padding: 10px;}
.company_table td.td02{width:680px; border-top:1px solid #5a5a5a; border-bottom:1px solid #5a5a5a; padding: 10px;}

.strength_box{flex:0 0 300px; height:500px; border: 1px solid #131313; padding:10px 20px; text-align: center; max-width: 300px; margin-bottom: 40px;}
.strength_box:nth-child(2){margin-left: 40px; margin-right: 40px;}
.strength_box:nth-child(4){margin-right: 40px;}
.strength_midashi{width:260px; text-align: center; font-size: 2.0rem; margin: 0 auto 20px; font-weight: 500;}
.strength_midashi span{font-size: 5.0rem; display: block; margin-bottom: 10px; font-style: italic;}
.strength_box img{margin-bottom:15px;}

.flow_box{
  flex:0 0 200px;
  width:200px;
  height:auto;
  border: 1px solid #131313;
  margin: 0 auto 30px;
  text-align: center;
  padding-bottom: 10px;
}

.flow_box p.flow_num{
  max-width: 200px;
  height:40px;
  background: #9fcc01;
  border-bottom: 1px solid #131313;
  color: #fff;
  text-align: center;
  font-size: 2.0rem;
  font-weight: 700;
  line-height: 40px;
  margin-bottom: 15px;
}

.flow_text span{font-size: 1.6rem; display: block; font-weight: 500; text-align: center; margin-bottom: 10px;}
.flow_text{width:92%; margin: 5px auto; font-size: 1.4rem; text-align: justify;}
.flow_text span.small{font-size:1.2rem; text-align: left; margin-top: 10px;}

.kakomi_box{
  width:980px;
  height:auto;
  margin: 0 auto 30px;
  border: 1px solid #131313;
  padding:15px;
}

.kakomi_box dt{font-size: 1.8rem; font-weight: 500; margin-bottom: 15px;}
.kakomi_box dd{font-size: 1.6rem; font-weight: 400; position: relative; padding-left: 2.4rem; margin-bottom: 10px;}
.kakomi_box dd::before{
  position: absolute;
  top: 50%;
  left: 0px;
  transform: translateY(-50%) rotate(45deg);
  width: 1.6rem;
  height: 1.6rem;
  background-color: #fff;
  border: 1px solid #131313;
  content: "";
}

.sankaku{width:980px; text-align: center; margin: 0 auto 30px;}

.kakomi_box_trans{
  width:980px;
  height:auto;
  margin: 0 auto 30px;
  border: 1px solid #131313;
  padding:25px;
}

.kakomi_box_trans dt{font-size: 1.8rem; font-weight: 500; margin-bottom: 15px;}
.kakomi_box_trans dd{font-size: 1.6rem; font-weight: 400; position: relative; padding-left: 2.4rem; margin-bottom: 10px;}
.kakomi_box_trans dd::before{
  position: absolute;
  top: 1.6rem;
  left: 0px;
  transform: translateY(-50%) rotate(45deg);
  width: 1.6rem;
  height: 1.6rem;
  background-color: #fff;
  border: 1px solid #131313;
  content: "";
}

h4.trans{font-size: 2.0rem; margin-bottom: 10px; font-weight: 700;}

.kakomi_box_trans img{margin: 25px 0;}

.support_illust{width:980px; margin: 0 0 80px;}

.policy_midashi{font-weight:500; display: block; margin-bottom: 10px;}
.policy_text{font-weight: 300; text-align: justify; margin-bottom: 40px;}
.policy_text ul{margin-top: 10px;}
.policy_text ul li{padding-left: 1.6rem;}

.faq{margin:0 auto 60px;}
.faq dt{font-weight:700; margin:0 0 15px; color:#9fcc01; font-size:1.6rem; line-height:3.2rem;}
.faq dt::before {content: "Q"; border:1px solid #9fcc01; background:#9fcc01;
 color:#fff; padding:0; display:block; float:left; width:4rem; height:4rem; text-align:center; margin:0 5px 15px 0; overflow:hidden;}
.faq dd{ margin:0 0 15px 48px; font-size:1.6rem; clear:both; line-height:3.2rem;}
.faq dd::before {content: "A"; border:1px solid #333; background:#333;
 color:#fff; padding:0; display:block; float:left; width:4rem; height:4rem; text-align:center; margin:0 5px 15px -48px; overflow:hidden;}

@media (max-width: 768px) {

.block_contents{
  width:90%;
  height:auto;
  margin: 0 auto 60px;
}
h2.block_title{width:100%; margin:60px auto 0; text-align: left; font-weight:300; font-size: 3.2rem; line-height: 140%;}
h2.block_title span{font-size: 1.6rem; padding-left: 0px; display: block;}
h2.block_title_mission{width:100%; margin:60px auto 0; text-align: left; font-weight:700; font-size: 2.8rem; line-height: 140%;}


.block_contents .flex_container2{
	width:100%;
	height:auto;
	margin: 0 auto;
	display: block;
}
.block_contents .flex_container2 .flex_left{
	width:100%;
	margin: 20px auto;
  position: relative;
}

.block_contents .flex_container2 .flex_left ul{
	width:100%;
  margin: 30px auto 0;
  text-align: center;
}

.block_contents .flex_container2 .flex_left ul li{
	width: 90%;
	height:70px;
	text-align: center;
	line-height: 70px;
	background-color: #9fcc01;
	margin: 10px auto;
	display: inline-block;
}
.block_contents .flex_container2 .flex_left ul li a{
	font-size: 1.6rem;
	color: #fff;
	width: 100%;
	height: 70px;
	display: block;
}
.service_block .flex_container2 .flex_right ul li:hover{opacity: 0.7;}


.block_contents .flex_container2 .flex_right{
  width: 100%;
	margin: 20px 0 0;}


.block_container{width:96%; margin: 80px auto 80px; position: relative;}
.block_container img{width:100%; margin-bottom: 30px;}
.mission_text01{position: relative; top:0px; left:0px; font-size: 1.6rem; font-weight: 500; margin-bottom: 20px;}
.mission_text02{position: relative; top:0px; left:0px; font-size: 1.6rem; font-weight: 500; margin-bottom: 20px;}
.mission_text03{position: relative; top:0px; left:0px; font-size: 1.6rem; font-weight: 500; margin-bottom: 20px;}
.mission_text01 span,.mission_text02 span,.mission_text03 span{font-size: 1.4rem; font-weight: 400; display: block;}

.company_table{
	width:100%;
	height:auto;
	margin: 60px auto 120px;
	border-spacing: 0;
	border-collapse: collapse;
  box-sizing: border-box;
}

.company_table tr:nth-child(odd) {background: rgba(159, 204, 1, 0.2);}
.company_table tr:nth-child(even) {background: #eee;}
.company_table td.td01{width:30%; border-top:1px solid #5a5a5a; border-bottom:1px solid #5a5a5a; padding: 10px;}
.company_table td.td02{width:60%; border-top:1px solid #5a5a5a; border-bottom:1px solid #5a5a5a; padding: 10px;}

.block_contents .flex_container4{
	width:100%;
	height:auto;
	margin: 0 auto;
	display: block;
}

.strength_box{display: block; height:auto; border: 1px solid #131313; padding:10px 20px 20px; text-align: center; max-width: 90%; margin:0 auto 20px;}
.strength_box:nth-child(2){margin-left: auto; margin-right: auto;}
.strength_box:nth-child(4){margin-right: auto;}
.strength_midashi{width:90%; text-align: center; font-size: 1.8rem; margin: 0 auto 20px; font-weight: 500;}
.strength_midashi span{font-size: 4.0rem; display: block; margin-bottom: 10px; font-style: italic;}
.strength_box img{margin-bottom:15px;}
.strength_box:nth-child(5){margin-bottom: 120px;}

.flow_box{
  display: block;
  width:90%;
  height:auto;
  border: 1px solid #131313;
  margin: 0 auto 30px;
  text-align: center;
  padding-bottom: 20px;
}

.flow_box img{width:80%; height:auto; margin-bottom: 10px;}

.flow_box p.flow_num{
  max-width: 100%;
  height:40px;
  background: #9fcc01;
  border-bottom: 1px solid #131313;
  color: #fff;
  text-align: center;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 40px;
  margin-bottom: 15px;
}

.flow_text span{font-size: 2.2rem; display: block; font-weight: 500; text-align: center;}
.flow_text{width:92%; margin: 5px auto; font-size: 1.6rem; text-align: justify;}


.kakomi_box{
  width:100%;
  height:auto;
  margin: 0 auto 30px;
  border: 1px solid #131313;
  padding:15px;
}

.kakomi_box dt{font-size: 1.8rem; font-weight: 500; margin-bottom: 15px;}
.kakomi_box dd{font-size: 1.6rem; font-weight: 400; position: relative; padding-left: 2.4rem; margin-bottom: 10px;}
.kakomi_box dd::before{
  position: absolute;
  top: 1.6rem;
  left: 0px;
  transform: translateY(-50%) rotate(45deg);
  width: 1.6rem;
  height: 1.6rem;
  background-color: #fff;
  border: 1px solid #131313;
  content: "";
}

.sankaku{width:30%; text-align: center; margin: 0 auto;}
.sankaku img{width:100%;}


.kakomi_box_trans{
  width:100%;
  height:auto;
  margin: 0 auto 30px;
  border: 1px solid #131313;
  padding:25px;
}

.kakomi_box_trans dt{font-size: 1.6rem; font-weight: 500; margin-bottom: 15px;}
.kakomi_box_trans dd{font-size: 1.6rem; font-weight: 400; position: relative; padding-left: 2.4rem; margin-bottom: 10px;}
.kakomi_box_trans dd::before{
  position: absolute;
  top: 1.6rem;
  left: 0px;
  transform: translateY(-50%) rotate(45deg);
  width: 1.6rem;
  height: 1.6rem;
  background-color: #fff;
  border: 1px solid #131313;
  content: "";
}

h4.trans{font-size: 1.8rem; margin-bottom: 10px; font-weight: 700;}

.kakomi_box_trans img{margin: 25px 0;}

.support_illust{width:100%; margin: 0 0 30px;}
.support_illust img{width: 100%;}

.policy_midashi{font-weight:500; display: block; margin-bottom: 10px;}
.policy_text{font-weight: 300; text-align: justify; margin-bottom: 40px;}
.policy_text ul{margin-top: 10px;}
.policy_text ul li{padding-left: 1.6rem;}

}

.block_contents .flex_container2 .flex_right img{width: 100%;}



/*-----------------------------------------（Topにもどる）----------------------------------------------------- */


.back-to-top {
  position: fixed;
  bottom: 30px;
  right: -70px; /* 初期は画面外に隠す */
  color: #fff;
  font-size: 20px;
  text-decoration: none;
  opacity: 0;
  transition: all 0.4s ease;
  z-index: 999;
}

.back-to-top.show {
  right: 30px; /* 表示位置 */
  opacity: 1;
}

@media (max-width: 768px) {
.back-to-top {
  bottom:200px;
}
}

/*-----------------------------------------（葉っぱイメージ&フェードイン）----------------------------------------------------- */

.leaf01{position: absolute; top:100px; right:0; z-index: 500;}
.leaf02{position: absolute; top:100px; left:0; z-index: 500;}
.leaf03{position: absolute; top:100px; right:0; z-index: 500;}

@media (max-width: 768px) {
.leaf01{position: absolute; top:100px; right:0; z-index: 500;}
.leaf02{position: absolute; top:100px; left:0; z-index: 500;}
.leaf03{position: absolute; top:100px; right:0; z-index: 500;}
.leaf01 img,.leaf02 img,.leaf03 img{width: 100%;}
}

.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}


/*-----------------------------------------フッター----------------------------------------------------- */

footer{width:100%;
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 0;}
.footer_address{text-align: right;}
footer .flex_container2{
width:960px;
height:auto;
margin: 0 auto 30px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}

.footer_block01{flex:0 0 370px; height: auto; margin: 40px 0 0;}
.footer_block02{flex:0 0 450px; height:auto; margin: 40px 0 0;}

.footer_menu{display: block; width: 200px; float: left;}
.footer_menu2{display: block; width: 250px; float: left;}
.footer_menu li,.footer_menu2 li{font-weight: 700; line-height: 200%; font-size: 1.6rem;}
.footer_menu ul.sub,.footer_menu2 ul.sub{list-style: disc; list-style-position: outside; margin: 8px 0 16px 16px;}
.footer_menu ul.sub li,.footer_menu2 ul.sub li{font-weight: 400; font-size: 1.4rem;}
.footer_menu ul.sub ul,.footer_menu2 ul.sub ul{margin: 0 0 8px 8px;}

.footer_copy{
width:100%;
height:30px;
margin: 0 auto;
text-align: center;
color: #fff;
font-size: 1.2rem;
background: #5a5a5a;
line-height: 30px;
}

@media (max-width: 768px) {

footer{width:100%; margin: 0 auto;}
.footer_address{text-align: center; font-size:1.4rem;}
footer .flex_container2{
width:100%;
height:auto;
margin: 0 auto 30px;
display: block;
justify-content: space-between;
flex-wrap: wrap;
}

.footer_block01{height: auto; margin: 20px auto 0; text-align: center;}
.footer_block01 img{width:60%; height:auto;}
.footer_block02{height:auto; margin: 40px 0 0;}

.footer_copy{
width:100%;
height:30px;
margin: 0 auto;
text-align: center;
color: #fff;
font-size: 1.2rem;
background: #5a5a5a;
line-height: 30px;
}

}
