@charset"utf-8";

*, *::before, *::after{
    box-sizing: border-box;    
  }
    body {
    font-family: 'Times New Roman',YuMincho,'Yu Mincho','Hiragino Mincho ProN','MS Mincho','MS PMincho',serif;
    font-size:15px;
  }

 .all_width {
    max-width:1200px;
    padding-left:12px;
    padding-right:12px;
    margin-left:auto;
    margin-right:auto;
  }
  a:link{
    cursor: default; 
  }
  /* サブタイトル */
.subTitle{
  font-size:35px;
  font-weight: normal;
  text-align: center;
  color:#9b8978;
  margin-top:80px;
  margin-bottom: 10px;
  line-height: 0.8em;
}
.subTitle span{
  font-size:16px;
}

/* スマホハンバーガーメニュー非表示 */
 .humberger_sp{
   display: none;
 }
 
 /* 2カラム */
  .a_flex{
    display: flex;
    min-height: 100vh;
  }
    /* メインコンテンツ */
    main{
    width: 100%;   
  }
  /* TOPイメージ */
  .imgPicture_sp{
    display: none;
  }
  #mainImg{
    width: 100%;
    height:100vh;
    position: relative;    
  }
  .imgPicture{
    display: block;
    position: absolute;
    height: 100vh;
    width:80vw;  
    object-fit: cover;
    right: 0;
    top:12%;
    z-index: 20;
  }
 
 
  .mainBcg{
    background: #eadfd2;
    width:50%;
    height: 130vh;   
    position: relative;
    z-index: -100;  
  }
  /* 背景アニメーション */
.mainBcg{
  animation: anim 3s;
}
@keyframes anim {
  0% {
  transform: translateX(300px);
  }
  100% {
  transform: translateX(0px);
  }
}
  
/* 背景オレンジTOPロゴ */
  .topLogo{
    position:absolute;
    left:100px;
    z-index:100;
    width:150px;
  }
/* TOPヘッダーナビ */
  .h_flex{
    right: 50px;
  }
  .h_flex nav{
    width: 80%;
    height: 100px;
    display: flex;
    justify-content: space-between;
    align-items: center;   
  }
  .h_flex{
    position: absolute;
    z-index: 30;
    display: inline-block;
  } 
  .h_flex img{
    margin-left: 90px;
  }
  .h_flex nav ul{
    display: flex;    
  }
  .h_flex nav ul li {
    list-style: none;
    margin: 0 20px;
  }  
  .h_flex nav ul li a {
    text-decoration: none;
    color: #9b8978;
    letter-spacing: .1em;
    font-size: 15px;
  }
  /* タイトル、タイトルアニメーション */
  /* @keyframes titleAnimation{
    0%{
      letter-spacing: .3em;
      opacity: 0;
    }
  } */
  main h1{
    line-height: 1.0em;
    position: absolute;
    top:300px;
    left:10%;
    z-index: 50;
    font-size:45px;
    font-weight: normal;
    color:#d47714;
    white-space:nowrap;
    animation: titleAnimation 1.5s;
  }
  .mainsubtxt{
    line-height: 1.5em;
    color:#111111;
    font-size:17px;
    margin-top:10px;
  }



/* サイドメニュー */
  aside{
    display: flex;    
    flex-direction: column;
    min-width:60px;   
    width:60px;
    background: #111111;      
  }
  .sideLogo{
    left:10px;
    top:5%;    
    position: fixed; 
    display: block; 
  } 
  .Insta{
    left:15px;
    bottom:250px;    
    position: fixed; 
    display: block; 
    opacity: 80%;
  }
  /* ハンバーガーメニュー */
.menuButton{
  display: block;
  height: 60px;
  width:60px;
  background-color: #111111 !important;
  position: fixed;
  top:40%;
  margin-bottom:0 auto;
  z-index: 200;
}
.menuButton div{
  height: 1px;
  width: 60%;
  background-color: #ffffff !important;
  position:absolute;
  top:50%;
  left:50%;
  transform: translate(-50%,-50%);  /*divの半分の長さ、つまり３０％分移動 */
  transition: ease-out .3s;  
  will-change: transform,animation,position;
}
/* 1本目の線：１つ目のdiv */
.menuButton div:nth-of-type(1){
  transform: translate(-50%,-10px);
  will-change: transform,animation,position;
}
/* 3本目の線：3つ目のdiv */
.menuButton div:nth-of-type(3){
  transform: translate(-50%,10px);
  will-change: transform,animation,position;
}
/* メニューボタンがアクティブになった時 */
.menuButton.active div:nth-of-type(2){
  opacity: 0;
  transform:translate(20% -50%);
  will-change: transform,animation,position;
}
.menuButton.active div:nth-of-type(1){
  transform: rotate(45deg) translate(-50%,0px);
  transform-origin: 0% 50%;
  will-change: transform,animation,position;
}
.menuButton.active div:nth-of-type(3){
  transform: rotate(-45deg) translate(-50%,0px);
  transform-origin: 0% 50%;
  will-change: transform,animation,position;
}
#nav{
  opacity: 0;
  visibility: hidden; 
  transition: .3s;
  position: fixed;
  top:200px;
  left:0;
  background:rgba(0,0,0,0.8);
  width: 300px;
  height: 400px;
  z-index: 100;
}
#nav ul{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  height: 100%;
}
#nav ul li{
  list-style: none;
}
#nav ul li a{
  text-decoration: none;  
  color: #ffffff;
  letter-spacing: .1em;
}
/* 最初のli以外に余白をつける */
#nav ul li:not(:first-of-type){
  margin-top: 20px;
}
#nav.active{
  opacity: 1;
  visibility: visible;
}



/* Message/ご挨拶 */
.messageImg_sp{
  display: none;
}
#Message{
  margin-top: 350px;
}
.message{
  height: 100%;
  margin-top:50px;
}
.messageBcg{
  width:600px;
  height: 700px;
  background:#eadfd2;
  position: absolute;
  top:50px;
  z-index: -100;
}
.message li{
  position: relative;
}

/* クラスのshowがついた時、要素の位置を元に戻す */
.message li.show h2,
.message li.show p,
main .message li.show img{
  transform: none;
  opacity: 1;
}

/* 余白 */
.message li:not(:first-of-type){
  margin-top:200px;
}
/* 奇数番目のテキストを右側に寄せる */
.message li:nth-of-type(odd) .messageText{
  right: 0;
}
/* 奇数番目の画像を左下から出現させる */
.message li:nth-of-type(odd) img{
transform: translate(-20px,20px);
}
.messageText{
  display:flex;
  flex-direction: column;
  align-items:flex-end;
  position: absolute;
  top:40px;
  max-width: 440px;
}
.message h2{
  font-size: 25px;
  white-space: nowrap;
  line-height: 1.4;
  letter-spacing: 0.05em;
  opacity: 0;
  text-align:left;
  padding-right: 75px;
  transform: translateY(20px);
  transition: 1s;  
}  
.message p{
  line-height: 2;
  font-size:15px; 
  margin-top: 20px;
  opacity: 0;
  transform: translateY(20px);
  transition: 1s;
}
/* アニメーションは0.5秒遅れて作動する */
.messageImg{
  width:55%;
  display: block;
  opacity: 0;
  padding-left: 10%; 
  left:100px;  
  transition: 1s .5s;
}
@media screen and (max-width:1130px) { 
  /*　画面サイズが1130px以下はここを読み込む　*/
  .messageBcg{
    width:300px;
    height: 500px;
    background:#eadfd2;
    position: absolute;
    top:50px;
    z-index: -100;
  } 
  .messageImg{
    width:50%;
    display: block;
    opacity: 0;
    padding-left: 10%; 
    left:100px;  
    transition: 1s .5s;
  }
}
/* Message/ご挨拶　end */

/* Advantage/私たちの強み */
#Advantage{
  margin-top:250px;
  margin-bottom:200px;
}
.contents{
  height: 100%;
  margin-top:50px;
}
.contents li{
  position: relative;
  /* opacity: 0;
  transform:translateY(50px); 
  transition: 1s; */
}


/* クラスのshowがついた時、要素の位置を元に戻す */
.contents li.show h3,
.contents li.show p,
main .contents li.show img{
  transform: none;
  opacity: 1;
}

/* 余白 */
.contents li:not(:first-of-type){
  margin-top:100px;
}
/* 奇数番目のテキストを右側に寄せる */
.contents li:nth-of-type(odd) .contentsText{
  right: 0;
}
/* 奇数番目の画像を左下から出現させる */
.contents li:nth-of-type(odd) img{
transform: translate(-20px,20px);
}
/* 偶数番目の画像を右側に寄せる。右下から出現させる*/
.contents li:nth-of-type(even) img{
  margin-left:auto;
  transform: translate(20px,20px);   
}
/* 偶数番目のテキストを左側に寄せる */
.contents li:nth-of-type(even) .contentsText{
  align-items: flex-start;
}
.contentsText{
  display:flex;
  flex-direction: column;
  align-items:flex-end;
  position: absolute;
  top:40px;
  justify-content: flex-start;
}
.contents h3{
  font-size: 25px;
  font-weight: normal;
  color:#ffffff;
  white-space: nowrap;
  background-color: rgba(0,0,0,0.8)!important;
  padding:5px 20px;
  opacity: 0;
  margin-right:auto;
  transform: translateY(20px);
  transition: 1s;
} 
.number{
  display     : inline-block;       /* 奥行表示のためのブロック化 */
  font-size   : 40px;               /* 文字サイズ */
  transform   : skewX(-24deg);       /* 傾き角度 */
}
.contents p{
  line-height: 1.6;
  font-size:15px;
  max-width: 450px;
  text-align: left;
  margin-top: 30px;
  opacity: 0;
  margin-right:auto;
  transform: translateY(20px);
  transition: 1s;
}
/* アニメーションは0.5秒遅れて作動する */
.contentImg{
  width:50%;
  display: block;
  opacity: 0;
  transition: 1s .5s;
}
/* Advantage/私たちの強み end */

/* Service/当社のサービス */
#Service{
  height: 500px;
  width:100%;
  background-color: #3f3c3c;
}
#Service h2{
  padding-top: 80px;
  margin-top:50px;
}
.serviceList{
  display:flex;  
  justify-content: center;
  position: relative;
} 
.serviceList li{
  padding: 10px;
}
.serviceList li{
  position: relative; 
}
/* クラスのshowがついた時、要素の位置を元に戻す */
main .serviceList li.show img{
  transform: none;
  opacity: 1;
}
/* 画像を下から表示 */
.serviceList li img{
  transform: translateY(30px);
  will-change: transform;　　/*カクカク防止 */
}
/* アニメーションは0.5秒遅れて作動する */
 .serviceList img{
  width:200px;
  display: block;
  opacity: 0;
  transition: 1s .5s;
} 

/* Service/当社のサービス end*/



/* Instagram */
#Instagram{
  margin-top: 200px;
}
ul.InstaList{
  line-height: 0;
  -webkit-column-count: 5;
  -webkit-column-gap: 0px;
  -moz-column-count: 5;
  -moz-column-gap: 0px;
  column-count: 5;
  column-gap: 0px;
  }
  ul.InstaList li{
  margin:0;
  /* Just in case there are inline attributes */
  /* width: 100% !important;
  height: auto !important; */
  }
  ul.InstaList li img{
  width:100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-b;  
  }
 /* Instagram  end*/

 /* Company */
  #Company{
    margin-top:200px;
    position: relative;
    width:100%;
    height: 1000px;
    color: #ffffff;    
  }
  #Company h2{
    margin-bottom: 30px;
  }
  .CompanyContents{
    position: absolute;
    background-color:rgba(0,0,0,0.8);    
    width: 80%;  
    padding-bottom:80px ;  
    left: 50%;
    top: 600px;
    transform: translate(-50%, -50%);    
  }
  #Company table{
    margin-top: 100px;
    width: 80%;
    border-collapse: collapse;
    margin: auto;
  }
  #Company table tr{
    height: 50px;
  }
  #Company table td {
    border-bottom: solid 1px rgba(255,255,255,0.3);
    border-collapse: collapse;
  }
  .koumoku{
    width:15%;
  }
  .torihiki{
    height: 70px !important; 
  }
  .companyImgList{
    padding-top:50px;
    display: flex;
    width: 80%;
    margin: auto;    
  }
  .companyImgList li{
    margin:10px;
  }
/* Company　end */


  /* Service */
  .serviceList li{
    position: relative; 
  }
  /* クラスのshowがついた時、要素の位置を元に戻す */
  main .company div.show img{
    transform: none;
    opacity: 1;
  }
  /* 画像を下から表示 */
  .company div img{
    transform: translateY(30px);
    will-change: transform;　　/*カクカク防止 */
  }
  /* アニメーションは0.5秒遅れて作動する */
   .company img{
    width:100%;
    display: block;
    opacity: 0;
    transition: 1s .5s;
  } 

/* Contact */
#Contact{
  margin-top: 150px;
}
.Form {
  margin-top: 40px;
  margin-left: auto;
  margin-right: auto;
  max-width: 1000px;
}
.Form-Item {
  border-top: 1px solid rgb(241, 241, 241);
  padding-top: 20px;
  padding-bottom: 20px;
  width: 100%;
  display: flex;
  align-items: center;
}
.Form-Item:nth-child(7) {
  border-bottom: 1px solid rgb(241, 241, 241);
}
.Form-Item-Label {
  width: 100%;
  max-width: 248px;
  letter-spacing: 0.05em;
  font-size: 16px;
}
.Form-Item-Label.isMsg {
  margin-top: 8px;
  margin-bottom: auto;
}
.Form-Item-Label-Required {
  margin-right: 8px;
  padding-top: 5px;
  padding-bottom: 5px;
  width: 48px;
  display: inline-block;
  text-align: center;
  background: #d33e18;
  color: #fff;
  font-size: 14px;
}
.Form-Item-Label-nini {
  margin-right: 8px;
  padding-top: 5px;
  padding-bottom: 5px;
  width: 48px;
  display: inline-block;
  text-align: center;
  background: #8d8d8c;
  color: #fff;
  font-size: 14px;
}
.Form-Item-Input {
  border: 1px solid #ddd;
  border-radius: 3px;
  margin-left: 40px;
  padding-left: 1em;
  padding-right: 1em;
  height: 48px;
  flex: 1;
  width: 100%;
  max-width: 600px;
  background: #f3f3f3;
  font-size: 18px;
}
.Form-Item-Textarea {
  border: 1px solid #ddd;
  border-radius: 6px;
  margin-left: 40px;
  padding-left: 1em;
  padding-right: 1em;
  height: 216px;
  flex: 1;
  width: 100%;
  max-width: 600px;
  background: #f3f3f3;
  font-size: 18px;
}
.Form-Btn {
  border-radius: 3px;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 10px;
  padding-bottom: 10px;
  width: 300px;
  display: block;
  letter-spacing: 0.05em;
  background: #9b8978;
  color: #fff;
  font-size: 16px;
}
.Form-Btn:hover {
  opacity: .5;
}
/* Contact end */


/* Map */
  #Map{
    margin-top:150px;
    }
  .google-maps {
    position: relative;
    padding-bottom: 35%; /* これが縦横比 */
    height: 0;
    overflow: hidden;
    }
    .google-maps iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    }

  /* Footer */
  #Footer{
    width: 100%;
    padding-top:50px;
    background-color: #111111;
    text-align: right;  
  }
  .cw{
    color: rgba(255,255,255,0.8);
    font-size:10px;
    letter-spacing:.1em;  
    padding-top:10px;  
    padding-bottom: 30px;
  }
  .footerLink{
    padding-top: 80px;
    color: #ffffff;
    font-size:12px;
  }
  #Footer a:hover{
    opacity: .5;
    transition: .3s;
  }
  