@charset "utf-8";
/* PCファースト方式で記述。タブレット用モバイル用はメディアクエリで都度指定 */
* {
    margin:0;
    padding:0;
    box-sizing: border-box;
/*    outline: 2px solid red;*/
}

html {
    font-size: 62.5%;
    overflow-x: clip;
} /* font-sizeは16pxの62.5%の10px */
body {
    font-family: "source-han-sans-vf",sans-serif;
    font-variation-settings: 'wght' 250;
    width: 100vw;
    height: 100vh;
    background-position: center;
    background-repeat: no-repeat;
    background-size:cover;
    background-attachment: fixed;
    background-color: #aaaaaa;
    color: #34231f;
    font-size: 1.4rem; /*font-size : 14px と同等*/
}

h1 { font-size: 1.4rem; } /* font-size: 14px と同等 */
h2 { font-size: 1.7rem; } /* font-size: 17px と同等 */
li { font-size: 2.2rem; } /* font-size: 22px と同等 */
p  { font-size: 1.4rem; line-height:1.1 } /* font-size: 14px と同等 */
a:link{ color:#34231f;
        text-decoration: none; }
a:visited{ color:#34231f;
        text-decoration: none; }
a:hover{ color:#666666;
        text-decoration:underline; }
a:active{ color:#666666;
        text-decoration: none; }
img {
    width: 100%;
    }
.txt-center{
    text-align: center;
}
.txt-right{
    text-align: right;
}
.bold{
    font-weight: bold;
}
.big{
    font-size:2.2rem;
}
.title-style{
    font-size:1.7rem;
}
.small{
    font-size:1.0rem;
}
@media screen and (max-width: 500px) {
	/* 500px以下に適用されるCSS（スマホ用） */
    html {
        font-size: 50%;
    }
}
img.logo {
/* ロゴマーク */
    width: auto;
    height: 3.5em;
    vertical-align: middle;
    }
img.mark {
/* ロゴマーク */
    width: auto;
    height: 2em;
    margin-right: 0.8em;
    }
/*点滅させるここから*/
.fuwafuwa {
   animation: blinking 1.5s ease infinite alternate;
}
@keyframes blinking {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*点滅させるここまで*/
/*基本フレームここから*/
.header-frame{
    display: flex;
    width: 100%;
    background:linear-gradient(rgba(255,255,255,1),rgba(255,255,255,0));
    height: 6em;
    justify-content: center;
    position: relative;
    z-index: 1;
}
/* 下の間隔はheader-boxのmarginで調整*/
@media screen and (max-width: 500px) {
    .header-frame{
        height: 10em;
    }
}
.contents-frame{
    display: inline-block;
    width: 100%;
    position: relative;
    z-index: 2;
}
.footer-frame{
    display: block;
    width: 100%;
    background:#ffffff;
    position: relative;
    z-index: 3;
}
/*横並べ*/
.width100contents-yoko{
    display: flex;
    width: 100%;
    justify-content: space-around;
}
/*基本フレームここまで*/

/*内容ここから*/
/*ヘッダーここから*/
.header-item45per{
    display: flex;
    flex-wrap:wrap;
    width: 45%;
    justify-content: space-between;
}
@media screen and (max-width: 1200px) {
	/* タブレット用 */
    .header-item45per{
    display: flex;
    width: 95%;
    margin:auto;
    justify-content: space-between;
    }
}
@media screen and (max-width: 900px) {
	/* スマホ用 */
    .header-item45per{
    display: flex;
    width: 90%;
    margin:auto;
    justify-content: space-between;
    }
}
.header-box-logo{
    display: flex;
    align-content: flex-end;
    margin: auto auto 1.6em 1.4em;
}
.header-box{
    display: flex;
    align-content: flex-end;
    margin: auto auto 1.6em auto;/*下寄せ、下の余白を大きくすると上に寄る*/
}
@media screen and (max-width: 1200px) {
    .header-box{
    margin: auto 1em 1.6em 0.5em;
    }
}
/*ヘッダーここまで*/
/* 背景動画ここから */
video{
    position: fixed;
    top: 0;
    left: 0;
    z-index: -10;/* 重ね順一番後ろ */
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* 背景動画ここまで */
/* コンテンツ01ここから */
/* 動画を見せるための大きなBOX */
.contents01{
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 865px;
    align-items: flex-end;
}
/*IRO・色・彩ここから*/
.IRO-IRO-IRO{
    display: flex;
    width: 50%;
    justify-content: center;
    align-items: center;
    margin: auto;
    color: #eeeeee;
    letter-spacing: 0.3em;
    line-height: 2.4;
    text-shadow: 1px 2px 3px #808080;
}
@media screen and (max-width: 500px) {
    .IRO-IRO-IRO{
    width: 90%;
    }
}
/*IRO・色・彩ここまで*/
/*下へスクロールするここから*/
.scroll_down_wrap{
    display: flex;
    width: 100%;
    height:4em;
    justify-content: center;
    align-items: center;
    background:rgba(255,255,255,0.5);
    margin: auto auto 5em auto;
    /* contents01で下揃えしたより5文字分上 */
}
scroll_down{
    display: block;
}
@media screen and (max-width: 500px) {
    .scroll_down_wrap{
    margin: auto auto 8em auto;
    /* contents01で下揃えしたより8文字分上 */;
    }
}
/*下へスクロールするここまで*/
/* コンテンツ01ここまで */
/*葉っぱロゴとh2タグが入るボックス*/
.title-box{
    display: flex;
    align-items: center;
}
/* コンテンツ02ここから */
/* About us */
.contents02{
    display: flex;
    width: 100%;
    height: 400px;
    background:#ffffff;
}
@media screen and (max-width: 350px) {
    /* スマホ用(テキスト量で調整) */
    .contents02{
    height: 500px;
    }
}
.about_us_wrap{
    display: flex;
    flex-direction: column;
    width: 90%;
    margin: 2em auto auto auto;
}
.about_us_txt{
    display: flex;
    width:60%;
    margin: auto;
    line-height: 2.0;
}
@media screen and (max-width: 959px) {
    .about_us_txt{
    width:100%;
    }
}
/* コンテンツ02ここまで */
/* コンテンツ03ここから */
/* Photo */
.contents03{
    display: inline-block;
    width: 100%;
    height: 68em;
    background:#ffffff;
}
@media screen and (max-width: 959px) {
    .contents03{
    height: 50em;
    }
}
@media screen and (max-width: 360px) {
    .contents03{
    height: 36em;
    }
}
.photo_wrap_ue{
/* ロゴとPhotoが入るwrap横幅合わせる */
    display: flex;
    flex-direction: column;
    width: 90%;
    margin: 2em auto auto auto;
}
.photo_slider_wrap{
    display: flex;
    flex-direction: column;
    width:90%;
    margin: 1em auto auto auto;
}
/*カルーセルスライダー用CSSここから*/
.main-carousel .slide {
   width: 80%;
   height: 55em;
   position: relative;
}
.slide-coment-left{
  position: absolute;
  bottom: 8%;left: 20%;
  -ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  z-index: 150;
  color: #fff;
  text-shadow: 1px 2px 3px #808080;
  margin: 0 10px;padding: 0;
}
.slide-coment-top{
  position: absolute;
  top: 8%;left: 20%;
  -ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  z-index: 151;
  color: #fff;
  text-shadow: 1px 2px 3px #808080;
  margin: 0 10px;padding: 0;
}
.slide-coment-right{
  position: absolute;
  bottom: 8%;right: 12%;
  -ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  z-index: 152;
  color: #fff;
  text-shadow: 1px 2px 3px #808080;
  margin: 0 10px;padding: 0;
}
@media screen and (max-width: 959px) {
.photo_slider_wrap{
    width:100%;
    }
.main-carousel .slide {
    width: 100%;
    height: 35em;
    }
.slide-coment-left{
    display: none;
    }
.slide-coment-top{
    display: none;
    }
.slide-coment-right{
    display: none;
    }
}
@media screen and (max-width: 360px) {
.main-carousel .slide {
    height: 22em;
    }
}
.slide1 {
  background-image: url(img/slider-img01.jpg);
  background-size:cover;
  background-position:top center;
}

.slide2 {
  background-image: url(img/slider-img02.jpg);
  background-size:cover;
  background-position:top center;
}

.slide3 {
  background-image: url(img/slider-img03.jpg);
  background-size:cover;
  background-position:top center;
}

.slide4 {
  background-image: url(img/slider-img04.jpg);
  background-size:cover;
  background-position:bottom center;
}

.slide5 {
  background-image: url(img/slider-img05.jpg);
  background-size:cover;
  background-position:bottom center;
}

.slide6 {
  background-image: url(img/slider-img06.jpg);
  background-size:cover;
  background-position:bottom center;
}
/*カルーセルスライダー用CSSここまで*/
.photo_wrap_sita{
/* テキストが入るwrap横幅合わせる */
    display: block;
    width: 90%;
    margin: 3em auto auto auto;
}
.photo_txt{
    display: block;
    width:60%;
    margin: auto;
    line-height: 2.0;
}
@media screen and (max-width: 959px) {
.photo_txt{
/* テキストが入るwrap横幅合わせる */
    width: 100%;
    }
}
/* コンテンツ03ここまで */
/* コンテンツ04ここから */
/* Movie */
.contents04{
    display: flex;
    width: 100%;
    height: 400px;
    background:#ffffff;
}
.movie_wrap{
    display: flex;
    flex-direction: column;
    width: 90%;
    margin: 2em auto auto auto;
}
.movie_txt{
    display: block;
    width:80%;
    margin: auto;
    line-height: 2.0;
}
/* コンテンツ04ここまで */
/* コンテンツ05ここから */
/* Drone */
.contents05{
    display: flex;
    width: 100%;
    height: 400px;
    background:#ffffff;
}
.drone_wrap{
    display: flex;
    flex-direction: column;
    width: 90%;
    margin: 2em auto auto auto;
}
.drone_txt{
    display: block;
    width:80%;
    margin: auto;
    line-height: 2.0;
}
/* コンテンツ05ここまで */
/* コンテンツ06ここから */
/* Web design */
.contents06{
    display: flex;
    width: 100%;
    height: 400px;
    background:#ffffff;
}
.web_wrap{
    display: flex;
    flex-direction: column;
    width: 90%;
    margin: 2em auto auto auto;
}
.web_txt{
    display: block;
    width:80%;
    margin: auto;
    line-height: 2.0;
}
/* コンテンツ06ここまで */
/* コンテンツ07ここから */
/* Contact */
.contents07{
    display: flex;
    width: 100%;
    height: 63em;
    background:#ffffff;
}
@media screen and (max-width: 600px) {
    .contents07{
    height: 68em;
    }
}
@media screen and (max-width: 340px) {
    .contents07{
    height: 75em;
    }
}
.contact_wrap{
    display: flex;
    flex-direction: column;
    width: 90%;
    margin: 2em auto auto auto;
}
.contact_txt{
    display: block;
    width:29%;
    margin: auto;
    line-height: 2.0;
}
@media screen and (max-width: 1570px) {
    .contact_txt{
    width:50%;
    }
}
@media screen and (max-width: 910px) {
    .contact_txt{
    width:90%;
    }
}
@media screen and (max-width: 500px) {
    .contact_txt{
    width: 100%;
    }
}
.table-map{
    margin: auto  auto 1.5em auto;
    width:100%;
/*    border: 1px solid #000033;*/
    border-collapse: collapse;
    font-size:1.4rem;
}
.td-map{
    padding: 0.5em;
/*    border: 1px solid #000033;*/
}
.googlemap-wrap{
    display: block;
    background-color:aquamarine;
    width:70%;
    height: 30em;
    margin: auto;
}
@media screen and (max-width: 500px) {
    .googlemap-wrap{
    width:100%;
    }
}
/* コンテンツ07ここまで */