@charset "utf-8";
/* css reset ------------------------------------------------*/
html,body,h1,h2,h3,h4,p,ul,li,dl,dt,dd{
  margin: 0;
  padding: 0;
  line-height: 1;
  font-family: "Hiragino Kaku Gothic proN",Meiryo,sans-serif;
}
ul{
  list-style: none;
}
a{
  text-decoration: none;
  color: inherit;
}
img{
  max-width: 100%;
  border: none;
  display: block;
}
*{
  box-sizing: border-box;
}
/* ======================================================= */
/* ======================================================= */
/* 共通css------------------------------------ */
body{
  color: #142601;
  animation: fadeIn 5s ease 0s normal ;
  animation-iteration-count: 1;
}
@keyframes fadeIn {
  from{opacity: 0;}
  to{opacity: 1;}
}
.container{
  max-width: 960px;
  margin: 0 auto;
  padding: 0 10px;
}
/* ====================================================== */
/* header============================================= */
header{
  background: linear-gradient(to bottom, #fff , rgba(255, 255, 255, 0.7));
  position: relative;
}
header .container{
  height: 130px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
/* header scroll heightMin------------------------------ */
header.heightMin{
  position: sticky;
  top: 0;
  z-index: 10;
  transition: 300ms;
  opacity: 1;
  animation: fadeDown 1s ;
}
@keyframes fadeDown {
  from{
    opacity: 0;
    transform: translateY(-70px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}
header.heightMin .container{
  height: 70px;
}
header.heightMin h1{
  width: 65px;
  height: 65px;
}
header.heightMin .column{
  height: 80px;
  justify-content: center;
}
header.heightMin .column .sns_icons{
  display: none;
}
/* logo,h1------------------------ */
header h1{
  background: url(../img/icons/logo.png) no-repeat center/contain;
  width: 120px;
  height: 120px;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  z-index: 5;
}
h1 a{
  display: block;
  height: 120px;
}

/* sns_icons------------------------- */
.column{
  display: flex;
  height: 100px;
  flex-direction: column;
  justify-content: space-between;
  width: 75%;
}
.sns_icons{
  display: flex;
}
.column .sns_icons{
  align-self: flex-end;
}
.sns_icons li+li{
  margin-left: 25px;
}
.sns_icons a{
  display: block;
}
.sns_icons i{
  font-size: 35px;
}
/* nav----------------------------------- */
.pcnav ul{
  display: flex;
  justify-content: flex-end;
}
.pcnav li{
  width: 25%;
  text-align: center;
  line-height: 1.2;
}
.pcnav li span{
  font-size: 14px;
  color: #808d72;
}
.pcnav a{
  display: block;
  height: 44px;
  position: relative;
}
.pcnav li a::after{
  content: "";
  display: block;
  width: 0;
  height: 1px;
  background: #808d72;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transition: 300ms;
}
.pcnav li a:hover::after{
  width: 40%;
}

/* spnav=========================================== */
.spnav_bg,.spMenu_btn,.spMenu{
  display: none;
}
/* ============================================================= */
/* ============================================================= */
@media screen and (max-width:767px){
  header .container{
    height: 70px;
    justify-content: center;
  }
  header h1{
    width: 60px;
    height: 60px;
  }
  h1 a{
    height: 60px;
  }
  .column{
    display: none;
  }
  /* spnav==================================== */
  /* spMenu_btn--------------------------- */
  .spMenu_btn{
    display: block;
    width: 80px;
    height: 80px;
    position: absolute;
    right: 20px;
    z-index: 202;
  }
  .spMenu_btn span{
    display: block;
    width: 50%;
    height: 1px;
    background: #000;
    position: absolute;
    right: 0;
    transition: 300ms;
  }
  .spMenu_btn span:nth-of-type(1){
    top: 38%;
  }
  .spMenu_btn span:nth-of-type(2){
    top: 50%;
  }
  .spMenu_btn span:nth-of-type(3){
    top: 62%;
  }
  /* .active JQuery------------------- */
  .spMenu_btn.active span:nth-of-type(1){
    width: 40%;
    transform: rotate(45deg);
    top: 50%;
  }
  .spMenu_btn.active span:nth-of-type(2){
    opacity: 0;
  }
  .spMenu_btn.active span:nth-of-type(3){
    width: 40%;
    transform: rotate(-45deg);
    top: 50%;
  }

  /* .open Jquery------------------------- */
  .spnav_bg.open,.spMenu.open{
    right: 0;
  }
  /* spnav_bg---------------------------- */
  .spnav_bg{
    display: block;
    position: fixed;
    width: 100vw;
    height: 100vh;
    top: 0;
    right: -100%;
    background: #9e9e9eb0;
    z-index: 200;
    transition: 600ms;
  }

  /* spnav---------------------------- */
  .spMenu{
    display: block;
    position: fixed;
    width: calc(100% - 140px);
    height: 100vh;
    top: 0;
    right: -100%;
    background: #fff;
    z-index: 201;
    transition: 600ms;
  }
  .spnav{
    width: 80%;
    margin: 100px auto 80px;
  }
  .spnav li{
    height: 50px;
    max-height: 70px;
  }
  .spnav li a{
    display: block;
    height: 50px;
    position: relative;
  }
  .spnav span{
    font-size: smaller;
    color: #808d72;
  }
  .spnav li a::after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background: #808d72;
    position: absolute;
    bottom: 0;
  }
  .spnav li + li{
    margin-top: 30px;
  }
  .spMenu .sns_icons{
    width: 70%;
    justify-content: space-around;
    margin: 15px auto;
  }
}
/* ============================================================= */
/* ============================================================= */

/* keyVis===================================================== */
.keyVis{
  max-width: 1300px;
  margin: 0 auto;
  position: relative;
}
.keyVis .top_slider img{
  width: 100%;
  padding: 0 30px;
}
.keyVis .cat{
  position: absolute;
  bottom: 0;
}
/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  .keyVis{
    height: 60vh;
    margin: 0 auto 30px;
  }
  .keyVis .top_slider img{
    height: 55vh;
    padding: 0 5px;
    object-fit: cover;
  }
  .keyVis .cat img{
    width: 95%;
  }
}
/* ========================================= */
/* ========================================= */

/* main=================================================== */
/* setting=============================== */
section .container{
  padding: 100px 10px;
}
.heading{
  position: relative;
  padding: 30px 0 10px;
  font-size: 40px;
  border-bottom: 1px solid;
  margin-bottom: 60px;
}
.heading span{
  position: relative;
  z-index: 2;
  padding-left: 20px;
}
.heading::after{
  content: attr(data-en);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  font-size: 60px;
  opacity: 0.25 ;
}
/* ---------------------- */
h3.italic{
  text-align: center;
  font-size: 30px;
  font-weight: lighter;
  font-style: italic;
}
.sp_br{
  display: none;
}
/* ---------------------- */
.wrap{
  position: relative;
}
.wrap + .wrap{
  margin-top: 100px;
}
.txt{
  width: 50%;
  line-height: 2.5;
  text-align: justify;
  padding: 40px;
  font-weight: bold;
}
.img{
  width: 50%;
  position: absolute;
  right: 0;
  bottom: -50px;
}
.txt + .txt {
  padding-top: 0;
}
.txt + .txt + .img{
  bottom: 50px;
}
.reverse .txt{
  margin: 0 0 0 auto;
}
.reverse .img{
  left: 0;
}
.h2 .container{
  padding-bottom: 150px;
}
/* ----------------------------------------- */
.flex{
  display: flex;
}
/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  section .container{
    padding: 60px 10px;
  }
  .heading{
    padding: 20px 0 10px;
    font-size: 26px;
    margin-bottom: 30px;
  }
  .heading span{
    padding-left: 10px;
  }
  .heading::after{
    font-size: 45px;
  }
  /* ---------------------- */
  h3.italic{
    font-size: 22px;
    line-height: 1.4;
  }
  .sp_br{
    display: block;
  }
  /* ---------------------- */
  .wrap + .wrap{
    margin-top: 50px;
  }
  .txt{
    width: 100%;
  }
  .img{
    width: 80%;
    position: static;
    margin: auto;
  }
  .h2 .container{
    padding-bottom: 130px;
  }
}
/* ========================================= */
/* ========================================= */

/*aboutus=============================================== */
#aboutus{
  background: #365902;
}
#aboutus .heading{
  border-color: #fff;
  color: #fff;
}
#aboutus .wrap{
  background: linear-gradient(to right,#f2f2f2 70%,#f2f2f200 30%);
}
#aboutus .wrap.reverse{
  background: linear-gradient(to left,#f2f2f2 70%,#f2f2f200 30%);
}

/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  #aboutus .wrap, #aboutus .wrap.reverse{
    background: linear-gradient(to bottom,#f2f2f2 90%,#f2f2f200 10%);
  }
}
/* ========================================= */
/* ========================================= */

/* sns==================================================== */
#sns{
  background: #f2f2f2;
}
#sns h3{
  margin-bottom: 50px;
}
#sns .sns_icons{
  justify-content: center;
  margin-bottom: 50px;
}
#sns .sns_icons li+li{
  margin-left: 80px;
}
#sns .sns_icons i{
  font-size: 55px;
}
.timeline{
  width: 370px;
  height: 570px;
  background: #fff;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}
/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  #sns .sns_icons li + li{
    margin-left: 40px;
  }
  #sns .sns_icons i{
    font-size: 44px;
  }
  .timeline{
    width: 80%;
    height: 300px;
  }
}
/* ========================================= */
/* ========================================= */

/* youtube==================================================== */
#youtube{
  background: url(../img/bg/youtube_bg.jpg) no-repeat center/cover;
}
#youtube .flex{
  justify-content: center;
  align-items: center;
  margin-bottom: 50px;
}
.icon{
  width: 150px;
}
.icon img{
  border-radius: 50%;
  box-shadow: 2px 2px 5px #38362f;
}
.heading3{
  margin-left: 30px;
  text-align: center;
  color: #fff;
  text-shadow: 2px 2px 5px #38362f;
}
.heading3 h3{
  margin-bottom: 15px;
}
.yb{
  width: 80%;
  padding-top: 45%;
  margin: 0 auto;
  position: relative;
}
.yb iframe{
  position: absolute;
  top: 0;
}
/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  #youtube .flex{
    display: block;
  }
  .icon{
    width: 100px;
    margin: 0 auto 25px;
  }
  .heading3{
    margin: 0 auto;
  }
}
/* ========================================= */
/* ========================================= */

/* projects==================================================== */
#projects .flex{
  justify-content: space-around;
}
#projects section{
  width: 30%;
}
.sumbnail{
  position: relative;
  margin-bottom: 10px;
}
.sumbnail h3{
  position: absolute;
  top: 0;
  width: 100%;
  text-align: center;
  letter-spacing: .1em;
  color: #fff;
  background: #14260171;
  padding: 15px 0;
}
.desc{
  line-height: 1.7;
  text-align: justify;
}
/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  #projects .flex{
    display: block;
  }
  #projects section{
    width: 100%;
  }
  #projects section + section{
    margin-top: 50px;
  }
  .sumbnail{
    max-width: 600px;
    margin: 0 auto;
  }
  .sumbnail h3{
    padding: 20px 0;
  }
  .desc{
    max-width: 600px;
    margin: 0 auto;
  }
  #projects.h2 .container{
    padding-bottom: 80px;
  }
}
/* ========================================= */
/* ========================================= */

/* iidacity==================================================== */
#iidacity{
  background: #72805d;
}
#iidacity .heading{
  border-color: #fff;
  color: #fff;
}
#iidacity .wrap.reverse{
  background: linear-gradient(to left,#f2f2f2 70%,#f2f2f200 30%);
}
#iidacity .wrap{
  background: linear-gradient(to right,#f2f2f2 70%,#f2f2f200 30%);
}
/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  #iidacity .wrap, #iidacity .wrap.reverse{
    background: linear-gradient(to bottom,#f2f2f2 90%,#f2f2f200 10%);
  }
}
/* ========================================= */
/* ========================================= */

/* gifucho==================================================== */
#gifucho .wrap{
  background: linear-gradient(to right,#365902 70%,#f2f2f200 30%);
}
#gifucho .wrap.reverse{
  background: linear-gradient(to left,#365902 70%,#f2f2f200 30%);
}
#gifucho .txt{
  color: #fff;
}
/* ========================================= */
/* ========================================= */
@media screen and (max-width:767px){
  #gifucho .wrap.reverse,#gifucho .wrap{
    background: linear-gradient(to bottom,#365902 90%,#f2f2f200 10%);
  }
}
/* ========================================= */
/* ========================================= */

/* footer==================================================== */
footer{
  height: 250px;
  padding: 25px 0;
  background: #f2f2f2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
}
.footer_logo img{
  width: 80px;
}
.name{
  font-weight: bold;
  margin-bottom: 20px;
  color: #365902;
}
