@charset "utf-8";/* CSS Document */*, ::before, ::after {  box-sizing: border-box;}html {  font-size: 62.5%;}body {  position: relative;  width: 100%;  margin: 0;  padding: 0;  font-family: 'Zen Kaku Gothic New', YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";  font-style: normal;  font-weight: normal;  font-size: 1.2rem;  color: #333;  -webkit-text-size-adjust: none;  -webkit-font-smoothing: antialiased;  z-index: 0;  font-feature-settings: "pkna"1;  overflow-x: hidden;    letter-spacing: 0.06em;    line-height: 1.6;}a {  text-decoration: none;}h1, h2, h3, h4, h5, h6 {  margin-bottom: 0;  font-weight: 400;  font-size: inherit;  font-feature-settings: "palt";  line-height: 1.65;}p {  margin-bottom: 0;}pre {  margin-bottom: 0;}dl {  margin-bottom: 0;}ul {  margin-bottom: 0;}ol {  margin-bottom: 0;  list-style: decimal;  padding-left: 1em;}img{    max-width: 100%;}main{    padding-top: 100px;}/*----------------------------------ハンバーガーメニュー------------------------------------*/#g-nav.panelactive{    /*position:fixed;にし、z-indexの数値を大きくして前面へ*/    position:fixed;    z-index: 999;  top: 0;  width:100%;    height: 100vh;}/*丸の拡大*/.circle-bg{    position: fixed;  z-index:3;    /*丸の形*/    width: 100px;    height: 100px;    border-radius: 50%;    background: #999;    /*丸のスタート位置と形状*/  transform: scale(0);/*scaleをはじめは0に*/    top:calc(50% - 50px);/*50%から円の半径を引いた値*/    left:calc(50% - 50px);/*50%から円の半径を引いた値*/    transition: all .6s;/*0.6秒かけてアニメーション*/}.circle-bg.circleactive{  transform: scale(50);/*クラスが付与されたらscaleを拡大*/}/*ナビゲーションの縦スクロール*/#g-nav-list{    display: none;/*はじめは表示なし*/    /*ナビの数が増えた場合縦スクロール*/    position: fixed;    z-index: 999;     width: 100%;    height: 100vh;    overflow: auto;    -webkit-overflow-scrolling: touch;}#g-nav.panelactive #g-nav-list{     display: block; /*クラスが付与されたら出現*/}/*ナビゲーション*/#g-nav ul {  opacity: 0;/*はじめは透過0*/    /*ナビゲーション天地中央揃え※レイアウトによって調整してください。不必要なら削除*/    position: absolute;    z-index: 999;    top:50%;    left:50%;    transform: translate(-50%,-50%);}/*背景が出現後にナビゲーションを表示*/#g-nav.panelactive ul {    opacity:1;}/* 背景が出現後にナビゲーション li を表示※レイアウトによって調整してください。不必要なら削除*/#g-nav.panelactive ul li{animation-name:gnaviAnime;animation-duration:1s;animation-delay:.2s;/*0.2 秒遅らせて出現*/animation-fill-mode:forwards;opacity:0;}@keyframes gnaviAnime{0% {opacity: 0;}100% {opacity: 1;}}/*リストのレイアウト設定*/#g-nav li{  text-align: center;   list-style: none;}#g-nav li a{  color: #333;  text-decoration: none;  padding:10px;  display: block;  text-transform: uppercase;  letter-spacing: 0.1em;  font-weight: bold;    font-size: 1.6rem;}/*========= ボタンのためのCSS ===============*/.openbtn1{  position:fixed;  top:20px;  right: 20px;  z-index: 9999;/*ボタンを最前面に*/  cursor: pointer;    width: 50px;    height:50px;}  /*×に変化*/  .openbtn1 span{    display: inline-block;    transition: all .4s;    position: absolute;    left: 14px;    height: 3px;    border-radius: 2px;  background-color: #666;    width: 45%;  }.openbtn1 span:nth-of-type(1) {  top:15px; }.openbtn1 span:nth-of-type(2) {  top:23px;}.openbtn1 span:nth-of-type(3) {  top:31px;}.openbtn1.active span:nth-of-type(1) {    top: 18px;    left: 18px;    transform: translateY(6px) rotate(-45deg);    width: 30%;}.openbtn1.active span:nth-of-type(2) {  opacity: 0;}.openbtn1.active span:nth-of-type(3){    top: 30px;    left: 18px;    transform: translateY(-6px) rotate(45deg);    width: 30%;}.fadeInUpTrigger,.fadeInDownTrigger,.fadeInUpTriggerOnce{    opacity:0;}.tc{    text-align: center;}#page-top a{  display: flex;  justify-content:center;  align-items:center;  border-radius: 5px;  width: 60px;  height: 60px;  color: #fff;  text-align: center;  text-transform: uppercase;   text-decoration: none;  font-size:0.6rem;  transition:all 0.3s;}#page-top a:hover{  opacity: 0.6;}/*リンクを右下に固定*/#page-top {  position: fixed;  right: 10px;  bottom:30px;  z-index: 2;    /*はじめは非表示*/  opacity: 0;  transform: translateX(100px);}/*　左の動き　*/#page-top.LeftMove{  animation: LeftAnime 0.5s forwards;}@keyframes LeftAnime{  from {    opacity: 0;  transform: translateX(100px);  }  to {    opacity: 1;  transform: translateX(0);  }}/*　右の動き　*/#page-top.RightMove{  animation: RightAnime 0.5s forwards;}@keyframes RightAnime{  from {    opacity: 1;  transform: translateX(0);  }  to {    opacity: 1;  transform: translateX(100px);  }}.contact_btn{    position: fixed;    top: 20%;    right: 0;    z-index: 99;}/*-----------------------------------------------------------------*/#header{    position: fixed;    top: 0;    left: 0;    height: 100px;    background: #FFFFFF;    z-index: 3;    display: flex;    justify-content: space-between;    padding: 0 3%;    align-items: center;    width: 100%;}.hr{    display: flex;    justify-content: space-between;    align-items: center;}.gnav ul{    display: flex;    justify-content: space-between;    align-content: center;}.gnav li{    font-size: 1.8rem;    font-weight: 500;    text-align: center;    margin-right: 5rem;}.gnav li:last-child{    margin-right: 0;}.gnav li span{    display: block;    font-family: 'Jost', sans-serif;    font-weight: 500;}.mv{    position: relative;    height: calc(100vh - 100px);    margin-bottom: 3%;}.mv img{    height: calc(100vh - 100px);    width: 100%;    object-fit: cover;    object-position: top;}.catch{    font-size: 5rem;    font-weight: 600;    position: absolute;    right: 6%;    bottom: 6%;    color: #FFFFFF;}section{    padding: 3%;}.ttl{    font-size: 1.8rem;    font-weight: 600;    margin-bottom: 6%;    text-align: center;}.ttl span{    font-size: 4rem;    font-family: 'Jost', sans-serif;}.flex{    display: flex;    flex-wrap: wrap;}.f_j_sb{    justify-content: space-between;}.f_j_fs{    justify-content: flex-start;}.tc{    text-align: center;}.txt{    width: 48%;}.img{    width: 48%;}.img p{    font-size: 1.8rem;    font-weight: 600;    padding: 2% 0;}.works{    padding: 3%;    background: #EEEEEE;}.f_box{    width: calc(100% / 3);    padding: 0 3%;    margin-bottom: 3%;}.f_box p{    font-size: 1.8rem;    font-weight: 600;    padding: 2% 0;}.btn{    padding: 6% 0;    text-align: center;}.btn a{    padding: 1.5rem 10rem 1.5rem 2rem;    background: #333333;    color: #FFFFFF;    position: relative;    font-size: 1.8rem;    font-weight: 500;}.btn a::before{    content: "";    position: absolute;    top: 50%;    right: 0;    height: 1px;    width: 5rem;    background: #FFFFFF;    transform: translateY(-50%);}.image{    margin-bottom: 3%;}.subttl{    font-size: 3rem;    font-weight: 600;    margin-bottom: 3rem;}.subttl2{    font-size: 2.4rem;    font-weight: 600;    margin-bottom: 2rem;}.txt p{    font-size: 1.8rem;    margin-bottom: 1.8rem;}.contact{    background: url("images/contact_bg.jpg")no-repeat top center;    background-size: cover;    padding: 8% 3%;}.c_wrap{    max-width: 800px;    margin: 0 auto;    text-align: center;    color: #FFFFFF;}.c_wrap p{    font-size: 1.8rem;    font-weight: 500;    margin-bottom: 3%;}.c_btn{    text-align: center;    padding: 3%;}.tel{    font-size: 3rem;    font-weight: 600;}.copy{    background: #000000;    color: #FFFFFF;    font-size: 1.6rem;    padding: 1rem;    text-align: center;}/*--------------------------------------------------------------------------下層ページ--------------------------------------------------------------------------*/.h2_ttl{    padding: 18rem 0 18rem;    font-size: 1.8rem;    text-align: center;    color: #FFFFFF;    font-weight: 600;    background: url("images/h2_ttl.png") no-repeat top center;    background-size: cover;    }.h2_ttl span{    font-size: 5rem;    font-family: 'Jost', sans-serif;}.h3_ttl{    font-size: 4rem;    text-align: center;    font-weight: 600;    padding-bottom: 2rem;    margin-bottom: 8%;    position: relative;}.h3_ttl::before{    content: "";    position: absolute;    bottom: 0;    left: 50%;    transform: translateX(-50%);    height: 5px;    width: 10rem;    border-radius: 5px;    background: #333333;}.container{    max-width: calc(1200px + 6%);    margin: 0 auto;    padding: 3%;}.container p{    font-size: 1.8rem;}#table01 {        width: 80%;        margin: 0 auto 3rem;        font-size: 1.8rem;    margin-top: 8%;    }    #table01 tr {        border-bottom: 1px solid #b5b1b1;    }    #table01 th {        width: 30%;        vertical-align: middle;    }    #table01 th, #table01 td {        padding: 24px 0;        border: none;    }.h4_ttl{    font-size: 3rem;    text-align: center;    font-weight: 600;    margin-bottom: 3%;}.bg_box {  width: calc(100% / 3 - 3%);  margin: 2% 1%;  padding: 3%;  background: #E1E1E1;}.bg_boxttl{    font-size: 2rem;    font-weight: 600;    text-align: center;    margin-bottom: 3%;}.f_a_st{    align-items: stretch;}.Form {    margin-top: 80px;    margin-left: auto;    margin-right: auto;    max-width: 720px;}@media screen and (max-width: 480px) {    .Form {        margin-top: 40px;    }}.Form-Item {    padding-top: 24px;    padding-bottom: 24px;    width: 100%;    display: flex;    align-items: center;}@media screen and (max-width: 480px) {    .Form-Item {        padding-left: 14px;        padding-right: 14px;        padding-top: 16px;        padding-bottom: 16px;        flex-wrap: wrap;    }}.Form-Item:nth-child(5) {}.Form-Item-Label {    width: 100%;    max-width: 248px;    letter-spacing: 0.05em;    font-weight: bold;    font-size: 18px;}@media screen and (max-width: 480px) {    .Form-Item-Label {        max-width: inherit;        display: flex;        align-items: center;        font-size: 15px;    }}.Form-Item-Label.isMsg {    margin-top: 8px;    margin-bottom: auto;}@media screen and (max-width: 480px) {    .Form-Item-Label.isMsg {        margin-top: 0;    }}.Form-Item-Label-Required {    border-radius: 6px;    margin-right: 8px;    padding-top: 8px;    padding-bottom: 8px;    width: 48px;    display: inline-block;    text-align: center;    background: #d04444;    color: #fff;    font-size: 14px;}@media screen and (max-width: 480px) {    .Form-Item-Label-Required {        border-radius: 4px;        padding-top: 4px;        padding-bottom: 4px;        width: 32px;        font-size: 10px;    }}.Form-Item-Input {    border: 1px solid #ddd;    border-radius: 6px;    margin-left: 40px;    padding-left: 1em;    padding-right: 1em;    height: 48px;    flex: 1;    width: 100%;    max-width: 410px;    background: #eaedf2;    font-size: 18px;}@media screen and (max-width: 480px) {    .Form-Item-Input {        margin-left: 0;        margin-top: 18px;        height: 40px;        flex: inherit;        font-size: 15px;    }}.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: 410px;    background: #eaedf2;    font-size: 18px;}@media screen and (max-width: 480px) {    .Form-Item-Textarea {        margin-top: 18px;        margin-left: 0;        height: 200px;        flex: inherit;        font-size: 15px;    }}.Form-Btn {    border-radius: 6px;    margin-top: 32px;    margin-left: auto;    margin-right: auto;    padding-top: 20px;    padding-bottom: 20px;    width: 280px;    display: block;    letter-spacing: 0.05em;    background: #333333;    color: #fff;    font-weight: bold;    font-size: 1.8rem;    text-align: center;}@media screen and (max-width: 480px) {    .Form-Btn {        margin-top: 24px;        padding-top: 8px;        padding-bottom: 8px;        width: 160px;        font-size: 16px;    }}/*--------------------------------------------------------------------------PC--------------------------------------------------------------------------*/@media only screen and (min-width: 846px) {  .sp-only {    display: none !important;  }  .tab-only {    display: none !important;  }    .tab-sp-only    {        display: none!important;    }}/*--------------------------------------------------------------------------tablet--------------------------------------------------------------------------*/@media only screen and (min-width: 560px) and (max-width: 845px) {  .sp-only {    display: none !important;  }  .pc-only {    display: none !important;  }    .mv {  height: calc(60vh - 100px);}    .mv img {  height: calc(60vh - 100px);}    .catch {  font-size: 3rem;    }    .company .txt    {        width: 100%;        margin-bottom: 6%;    }}/*--------------------------------------------------------------------------sp--------------------------------------------------------------------------*/@media screen and (max-width: 559px) {    .pc-only {    display: none !important;  }  .pc-tab-only {    display: none !important;  }   .tab-only {    display: none !important;  }     .logo {  width: 80%;}    .mv {  height: calc(40vh - 100px);}    .mv img {  height: calc(40vh - 100px);}    .catch {  font-size: 1.6rem;  right: 4%;}    .ttl {  font-size: 1.6rem;}    .img {  width: 100%;        margin-bottom: 6%;}    .f_box {  width: 100%;}    .txt {  width: 100%;        margin-bottom: 6%;}    .subttl {  font-size: 2rem;}    .txt p {  font-size: 1.6rem;  margin-bottom: 1.6rem;}     .f_box {    margin-bottom: 6%;  }/*--------------------------------------------------------------------------下層ページ--------------------------------------------------------------------------*/    .h2_ttl {  padding: 8rem 0 8rem;}    .h2_ttl span {  font-size: 3rem;}    .h3_ttl {  font-size: 2.6rem;}    .h4_ttl {  font-size: 2rem;}    .bg_box {  width: 100%;}    .subttl2 {  font-size: 2rem;}}