@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;    line-height: 1.6;    letter-spacing: 0.06em;}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{    background: #FFFFFF;}#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: #000000;    /*丸のスタート位置と形状*/  transform: scale(0);/*scaleをはじめは0に*/  right:-50px;    top:-50px;    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%);    width: 100%;}/*背景が出現後にナビゲーションを表示*/#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: #FFFFFF;  text-decoration: none;  padding:10px;  display: block;  text-transform: uppercase;  letter-spacing: 0.1em;  font-weight: bold;    font-size: 1.8rem;}.fadeInUpTrigger,.fadeInDownTrigger,.fadeInUpTriggerOnce{    opacity:0;}/*========= アニメーションの指定 ===============*//* アニメーションの回数を決めるCSS*/.count2{    animation-iteration-count: 2;/*この数字を必要回数分に変更*/}/* アニメーションスタートの遅延時間を決めるCSS*/.delay-time{    animation-delay: 0.5s;}/* アニメーション自体が変化する時間を決めるCSS*/.change-time{    animation-duration: 4.5s;/*この数字を変化させたい時間に変更*/}/*========= ボタンのためのCSS ===============*/.openbtn1{  position:fixed;  top:50px;  right: 10px;  z-index: 9999;/*ボタンを最前面に*/  cursor: pointer;    width: 100px;    height:50px;    mix-blend-mode: difference;}  /*×に変化*/  .openbtn1 span{    display: inline-block;    transition: all .4s;    position: absolute;    left: 14px;    height: 3px;    border-radius: 2px;  background-color: #FFFFFF;    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%;}#splash {    /*fixedで全面に固定*/  position: fixed;  width: 100%;  height: 100%;  z-index: 99999;  background:#000000;  text-align:center;  color:#fff;}/* Loading画像中央配置　*/#splash_logo {  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);}/* Loading アイコンの大きさ設定　*/#splash_logo img {  width:400px;}/* fadeUpをするアイコンの動き */.fadeUp{animation-name: fadeUpAnime;animation-duration:0.5s;animation-fill-mode:forwards;opacity: 0;}@keyframes fadeUpAnime{  from {    opacity: 0;  transform: translateY(100px);  }  to {    opacity: 1;  transform: translateY(0);  }}/*-----------------------------------------------------------------*/#header{    display: flex;    justify-content: space-between;    align-items: center;    position: absolute;    top: 0;    left: 0;    padding: 2rem;    width: 100%;    z-index: 3;}.h_tel{    background: #000000;    padding: 3rem;    color: #FFFFFF;    font-size: 1.6rem;    text-align: center;    line-height: 1.6;    margin-right: 14rem;}.h_tel span{    font-size: 2.8rem;    font-weight: 600;    font-family: "Bookman Old Style", "sans-serif";    position: relative;    padding-left: 4rem;}.h_tel span::before{    content: "";    position: absolute;    top: 50%;    left: 0rem;    transform: translateY(-50%);    background: url("images/Icon-phone.png")no-repeat top center;    background-size: 100%;    width: 30px;    height: 30px;}.sp_tel{    margin-bottom: 5rem;}.sp_tel span{    font-size: 2.8rem;    font-weight: 600;    font-family: "Bookman Old Style", "sans-serif";    position: relative;    padding-left: 4rem;}.sp_tel span::before{    content: "";    position: absolute;    top: 50%;    left: 0rem;    transform: translateY(-50%);    background: url("images/Icon-phone.png")no-repeat top center;    background-size: 100%;    width: 30px;    height: 30px;}.mv{    position: relative;    width: 100%;    height: 100vh;}.mv img{    width: 100%;    height: 100vh;    object-fit: cover;    object-position: top;}.catch{    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%,-50%);    width: 100%}.catch_txt{    text-align: center;    font-size: 5rem;    font-weight: 800;    color: #FFFFFF;    font-family: 'Zen Old Mincho', serif;    margin-bottom: 1rem;}.flex{    display: flex;    flex-wrap: wrap;}.f_j_sb{    justify-content: space-between;}.f_j_sa{    justify-content: space-around;}.f_a_c{    align-items: center;}.catchflex{    justify-content: center;    max-width: 1000px;  margin: 0 auto;}.catch_box{    padding: 1rem 2rem;    width: 24%;    background: #434343;    color: #FFFFFF;    text-align: center;    font-size: 1.6rem;    margin: 1rem;}section{    padding: 3% 0;}.con_wrap{    max-width: calc(1400px + 6%);    margin: 0 auto;    padding: 3%;}.h3_ttl{    text-align: center;    font-size: 1.8rem;    font-weight: 600;    margin-bottom: 3%;}.h3_ttl span{    font-size: 5rem;    font-family: "Bookman Old Style", "sans-serif";    font-weight: 800;}.img{    width: 48%;}.txt{    width: 48%;}.txt p{    font-size: 1.8rem;    margin-bottom: 1rem;}.re{    flex-direction: row-reverse;}.a_st{    align-items: stretch;}.service_txt{    width: 50%;    background: #EEEEEE;    padding: 8%;}.service_txt p{    font-size: 1.8rem;}.service_img{    width: 50%;}.service_img img{    height: 100%;    object-fit: cover;    object-position: center;}.service_ttl{    font-size: 4rem;    margin-bottom: 3rem;    position: relative;    padding-bottom: 2rem;    font-weight: 600;}.service_ttl::before{    content: "";    position: absolute;    bottom: 0;    left: 0;    width: 8rem;    height: 3px;    background: #333333}.service_subttl{    font-size: 2.8rem;    margin-bottom: 3rem;    font-weight: 600;}.btn{    padding-top: 5rem;}.btn a{    padding: 1rem 8rem 1rem 2rem;    background: #000000;    color: #FFFFFF;    font-size: 1.8rem;    position: relative;    font-weight: 500;}.btn a::before{    content: "";    position: absolute;    right: 0;    top: 50%;    height: 1px;    width: 20%;    background: #FFFFFF;    transform: translateY(-50%);}.company{    position: relative;}.company::before{    content: "";    position: absolute;    left: 0;    top: 0;    background: url("images/company_bgleft.png")no-repeat top left;    background-size: contain;    width: 100%;    height: 100%;    z-index: -1;}.company::after{    content: "";    position: absolute;    right: 0;    top: 0;    background: url("images/company_bgright.png")no-repeat top right;    background-size: contain;    width: 100%;    height: 100%;    z-index: -1;}.wrap{    max-width: calc(1000px + 6%);    margin: 0 auto;    padding: 3%;    text-align: center;}.company_img{    margin-bottom: 5%;    width: 100%;}.company p{    font-size: 2.8rem;    font-family: 'Zen Old Mincho', serif;    font-weight: 500;    margin-bottom: 5%;}.company .btn a{    text-align: center;}.contact{    padding: 8% 3%;    background: url("images/contact_bg.png")no-repeat top center;    background-size: cover;    color: #FFFFFF;}.contact p{    font-size: 1.8rem;    font-weight: 500;    margin-bottom: 3rem;}.f_tel{    font-size: 3.8rem;    font-weight: 600;    font-family: "Bookman Old Style", "sans-serif";    margin-bottom: 5rem;}.contact_btn{    padding: 2rem;}.contact_btn a{    padding: 2rem 3rem 2rem 6rem;    position: relative;    font-size: 1.8rem;    font-weight: 500;    border: 1px solid #FFFFFF;}.contact_btn a::before{    content: "";    position: absolute;    left: 2rem;    top: 50%;    background: url("images/Icon-mail.png")no-repeat top center;    background-size: cover;    width: 30px;    height: 24px;    transform: translateY(-50%);}.copy{    text-align: center;    color: #FFFFFF;    font-size: 1.6rem;    padding: 1rem;    background: #000000;}/*--------------------------------------------------------------------------下層ページ--------------------------------------------------------------------------*/.h2_ttl{    background: url("images/h2_ttl.png")no-repeat top center;    background-size: cover;    padding: 14% 0 12%;    font-size: 1.8rem;    font-weight: 600;    text-align: center;    color: #FFFFFF;    margin-bottom: 4%;}.h2_ttl span{    font-size: 5rem;    font-family: "Bookman Old Style", "sans-serif";    }.ttl{    font-size: 4rem;    font-weight: 600;    text-align: center;    margin-bottom: 3%;    position: relative;    padding-bottom: 3rem;}.ttl::before{    content: "";    position: absolute;    width: 10rem;    height: 3px;    border-radius: 10px;    bottom: 0;    left: 50%;    transform: translateX(-50%);    background: #000000;}.container{    max-width: calc(1200px + 6%);    margin: 0 auto;    padding: 3%;}.container p{    font-size: 1.6rem;}.container .company_img{    text-align: center;}#table01 {    width: 80%;    margin: 0 auto 3rem;    font-size: 1.8rem;}#table01 tr {    border-bottom: 1px solid #b5b1b1;}#table01 th {    width: 30%;    vertical-align: middle;}#table01 th, #table01 td {    padding: 24px 0;    border: none;}.center{    text-align: center;}.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: #000000;    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;  }}/*--------------------------------------------------------------------------tablet--------------------------------------------------------------------------*/@media only screen and (min-width: 560px) and (max-width: 845px) {  .sp-only {    display: none !important;  }  .pc-only {    display: none !important;  }    #header{    display: flex;    justify-content: space-between;    align-items: center;    position: absolute;    top: 0;    left: 0;    padding: 2rem;    width: 100%;    z-index: 3;}    .logo {  width: 35%;}.h_tel{    background: #000000;    padding: 1rem;    color: #FFFFFF;    font-size: 1.6rem;    text-align: center;    line-height: 1.6;    margin-right: 12rem;}.h_tel span{    font-size: 2.8rem;    font-weight: 600;    font-family: "Bookman Old Style", "sans-serif";    position: relative;    padding-left: 4rem;}.h_tel span::before{    content: "";    position: absolute;    top: 50%;    left: 0rem;    transform: translateY(-50%);    background: url("images/Icon-phone.png")no-repeat top center;    background-size: 100%;    width: 30px;    height: 30px;}.mv{    position: relative;    width: 100%;    height: 60vh;}.mv img{    width: 100%;    height: 60vh;    object-fit: cover;    object-position: top;}.catch{    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%,-50%);    width: 100%}.catch_txt{    text-align: center;    font-size: 4rem;    font-weight: 800;    color: #FFFFFF;    font-family: 'Zen Old Mincho', serif;    margin-bottom: 1rem;}.flex{    display: flex;    flex-wrap: wrap;}.f_j_sb{    justify-content: space-between;}.f_j_sa{    justify-content: space-around;}.f_a_c{    align-items: center;}.catchflex{    justify-content: center;    max-width: 1000px;  margin: 0 auto;}.catch_box{    padding: 1rem 2rem;    width: 26%;    background: #434343;    color: #FFFFFF;    text-align: center;    font-size: 1.6rem;    margin: 1rem;}section{    padding: 3% 0;}.con_wrap{    max-width: calc(1400px + 6%);    margin: 0 auto;    padding: 3%;}.h3_ttl{    text-align: center;    font-size: 1.8rem;    font-weight: 600;    margin-bottom: 3%;}.h3_ttl span{    font-size: 5rem;    font-family: "Bookman Old Style", "sans-serif";    font-weight: 800;}.img{    width: 48%;}.txt{    width: 48%;}.txt p{    font-size: 1.8rem;    margin-bottom: 1rem;}.re{    flex-direction: row-reverse;}.a_st{    align-items: stretch;}.service_txt{    width: 50%;    background: #EEEEEE;    padding: 6%;}.service_txt p{    font-size: 1.8rem;}.service_img{    width: 50%;}.service_img img{    height: 100%;    object-fit: cover;    object-position: center;}.service_ttl{    font-size: 3rem;    margin-bottom: 3rem;    position: relative;    padding-bottom: 2rem;    font-weight: 600;}.service_ttl::before{    content: "";    position: absolute;    bottom: 0;    left: 0;    width: 8rem;    height: 3px;    background: #333333}.service_subttl{    font-size: 2rem;    margin-bottom: 3rem;    font-weight: 600;}.btn{    padding-top: 5rem;}.btn a{    padding: 1rem 8rem 1rem 2rem;    background: #000000;    color: #FFFFFF;    font-size: 1.8rem;    position: relative;    font-weight: 500;}.btn a::before{    content: "";    position: absolute;    right: 0;    top: 50%;    height: 1px;    width: 20%;    background: #FFFFFF;    transform: translateY(-50%);}.company{    position: relative;}.company::before{    content: "";    position: absolute;    left: 0;    top: 0;    background: url("images/company_bgleft.png")no-repeat top left;    background-size: contain;    width: 100%;    height: 100%;    z-index: -1;}.company::after{    content: "";    position: absolute;    right: 0;    top: 0;    background: url("images/company_bgright.png")no-repeat top right;    background-size: contain;    width: 100%;    height: 100%;    z-index: -1;}.wrap{    max-width: calc(1000px + 6%);    margin: 0 auto;    padding: 3%;    text-align: center;}.company_img{    margin-bottom: 5%;    width: 100%;}.company p{    font-size: 2.2rem;    font-family: 'Zen Old Mincho', serif;    font-weight: 500;    margin-bottom: 5%;}.company .btn a{    text-align: center;}.contact{    padding: 8% 3%;    background: url("images/contact_bg.png")no-repeat top center;    background-size: cover;    color: #FFFFFF;}.contact p{    font-size: 1.8rem;    font-weight: 500;    margin-bottom: 3rem;}.f_tel{    font-size: 3.8rem;    font-weight: 600;    font-family: "Bookman Old Style", "sans-serif";    margin-bottom: 5rem;}.contact_btn{    padding: 2rem;}.contact_btn a{    padding: 2rem 3rem 2rem 6rem;    position: relative;    font-size: 1.8rem;    font-weight: 500;    border: 1px solid #FFFFFF;}.contact_btn a::before{    content: "";    position: absolute;    left: 2rem;    top: 50%;    background: url("images/Icon-mail.png")no-repeat top center;    background-size: cover;    width: 30px;    height: 24px;    transform: translateY(-50%);}.copy{    text-align: center;    color: #FFFFFF;    font-size: 1.6rem;    padding: 1rem;    background: #000000;}    .openbtn1 {  position: fixed;  top: 40px;  right: 5px;  z-index: 9999;  cursor: pointer;  width: 100px;  height: 50px;  mix-blend-mode: difference;}/*--------------------------------------------------------------------------下層ページ--------------------------------------------------------------------------*/.h2_ttl {  padding: 20% 0 16%;}    .ttl {  font-size: 3rem;}    }/*--------------------------------------------------------------------------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: 68%;    }    .openbtn1 {  top: 10px;  right: -10px;}    .catch_txt {  font-size: 2.8rem;}    .catch_box {  width: 90%;        margin: 0 auto;        margin-bottom: 1rem;    }    .catch {  top: 50%;    }    .mv {  height: 80vh;}    .mv img {  height: 80vh;}    .img {  width: 100%;        margin-bottom: 2rem;}    .txt {  width: 100%;        margin-bottom: 2rem;}    .service_img {  width: 100%;}    .service_txt {  width: 100%;}    .service_ttl {  font-size: 2.8rem;}    .service_subttl {  font-size: 2.2rem;}    .h3_ttl span {  font-size: 3rem;}    .company p {  font-size: 2.2rem;}    .f_tel {  font-size: 2.8rem;}/*--------------------------------------------------------------------------下層ページ--------------------------------------------------------------------------*/ .h2_ttl {    padding: 26% 0 20%;  }.h2_ttl span {  font-size: 4rem;  font-family: "Bookman Old Style", "sans-serif";}    .ttl {  font-size: 2.6rem;}}