@charset "UTF-8";

/*====================================================
////リキッドレイアウト
====================================================*/
html {
  font-size: 62.5%;
  background-color: #fff;
}

/*====================================================
////common
====================================================*/
body {
  color: #000;
  font-size: 1.6rem;
}
a {
  transition: all 0.3s ease;
}
img {
  height: auto;
}
.inner{
  width: 100%;
}
.no-scroll {
  overflow: hidden;
}

@media screen and (max-width:768px) {
  .mt_3-sp {
    display: inline-block;
    margin-top: 3rem;
  }
}

/* ////////// PC ////////// */
@media screen and (min-width:769px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
  .inner{
    max-width: 1280px;
    margin: 0 auto;
  }
}
body{
  font-family: 'Noto Sans JP', sans-serif;
  overflow-x: hidden;
}

.only-sp{
  display: block;
}
.only-pc{
  display: none;
}

@media screen and (min-width:769px) {
  body{
    overflow-x: auto;
  }
  .only-sp{
    display: none !important;
  }
  .only-pc{
    display: block;
  }
}

.delay005{
  animation-delay: 0.5s !important;
}
.delay01{
  animation-delay: 1s !important;
}
.delay105{
  animation-delay: 1.5s !important;
}
.delay02{
  animation-delay: 2s !important;
}
.delay205{
  animation-delay: 2.5s !important;
}
.delay03{
  animation-delay: 3s !important;
}
.delay305{
  animation-delay: 3.5s !important;
}
.delay04{
  animation-delay: 4s !important;
}

/*====================================================
////header
====================================================*/
header{
  background: #fff;
  width: 100%;
  height: 9rem;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
}
.header-wrap{
  display: flex;
  padding: 1rem 3rem;
}
.header-logo{
  max-height: 4rem;
  font-size: 1.2rem;
  margin-top: 10px;
}
.header-logo img{
  width: 100%;
  max-width: 60.3174%;
  display: block;
  margin-top: 3px;
}

/*-------------ハンバーガーメニュー-------------*/
/*MENUボタン*/
.sp-gnav-btn{
  position: absolute;
  right: 3rem;
  top: 1.5rem;
}
.openbtn{
  position: relative;
  cursor: pointer;
  width: 4rem;
  height:4rem;
  border-radius: 5px;
  z-index: 9999;
}
.openbtn span{
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 0;
  height: 2px;
  border-radius: 5px;
  background: #CF6F46;
  width: 100%;
}
.openbtn span:nth-of-type(1) {
  top:13px; 
}
.openbtn span:nth-of-type(2) {
  top:26px;
}
.openbtn span:nth-of-type(3) {
  top:39px;
}
.openbtn span:nth-of-type(3)::after {
  content:"MENU";
  position: absolute;
  top:5px;
  left:3px;
  color: #CF6F46;
  font-size: 1.2rem;
  text-transform: uppercase;
}
/*CLOSEボタン*/
.openbtn.active span:nth-of-type(1) {
    top: 14px;
    left: 0;
    transform: translateY(6px) rotate(-45deg);
    width: 100%;
}
.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}
.openbtn.active span:nth-of-type(3){
    top: 26px;
    left: 0;
    transform: translateY(-6px) rotate(45deg);
    width: 100%;
}
.openbtn.active span:nth-of-type(3)::after {
  content:"CLOSE";
  transform: translateY(0) rotate(-45deg);
  bottom: -50px;
  left: 30px;
}
/*メニュー部分*/
.gnav{
  background: rgba(255, 255, 255, 0.9);
  width: 100%;
  position: fixed;
  top: 0;
  right: -100%;
  height: 100vh;
  padding: 13rem 3rem;
  transition: all 0.5s;
  z-index: 999;
}
.open .gnav{
  right: 0 !important;
}
.gnav-list li{
  text-align: center;
  border-bottom: 1px solid #CF6F46;
  padding: 2rem 0;
}
.gnav-list li:first-child{
  border-top: 1px solid #CF6F46;
}
/*背景エリア*/
.black-bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  z-index: 5;
  background-color: #000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s;
  cursor: pointer;
  z-index: 1;
}
.open .black-bg {
  opacity: 0.3;
  visibility: visible;
}

@media screen and (min-width:769px) {
  .header-wrap{
    display: block;
    padding: 0;
  }
  .gnav{
    background: none;
    width: 100%;
    height: 100%;
    position: relative;
    top: 0;
    right: 0;
    padding: 0;
  }
  .gnav-list{
    display: flex;
    justify-content: center;
    padding: 0 1%;
  }
  .gnav-list li{
    display: flex;
    align-items: center;
    height: 80px;
    margin-right: 76px;
    margin-right: 5.5636%;
    font-size: 18px;
    font-weight: 600;
    position: relative;
    transition: transform .3s;
    border-bottom: none;
    padding: 0;
    white-space: nowrap;
  }
  .gnav-list li:first-child{
    border-top: none;
  }
  .gnav-list li:last-child{
    margin-right: 0;
  }
  .gnav-list li a{
    color: #1E444C;
  }
  .gnav-list li a:hover{
    color: #CF6F46;
  }
  .gnav-list li:hover{
    transform: translateY(-5px);
  }
}
@media screen and (min-width:769px) and (max-width:1024px) {
  .gnav-list{
    width: 100%;
    justify-content: space-between;
  }
  .gnav-list li{
    font-size: 1.6rem;
    margin-right: 0;
  }
}

/*====================================================
////FV
====================================================*/
section.fv-wrap {
  margin-top: 0;
  padding-top: 90px;
}
.swiper01 {
  margin-top: 9rem;
  width: 100%;
  height: 100vh;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  z-index: 0;
  background-color: #fff;
}
.swiper-wrapper01 {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 0;
  display: flex;
  transition-property: transform;
  box-sizing: content-box;
}
.swiper-slide001 {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
}
.fv-slide{
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index:0;
}
.fv-slide_inner{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;  
}
.fv-txtBox{
  font-size: 1.9rem;
  color: #313131;
  line-height: 1.75;
  font-weight: 500;
  font-family: 'Noto Serif JP', serif;
  letter-spacing: .06em;
  position: absolute;
}

.fv-slide01_inner{
  background: url(../images/fv-sp-img01.png) no-repeat;
  background-size: cover;
  background-position: 0 100%;
}
.fv-slide02_inner{
  background: url(../images/fv-sp-img02.png) no-repeat;
  background-size: cover;
  background-position: 0 100%;
}
.fv-slide03_inner{
  background: url(../images/fv-sp-img03.png) no-repeat;
  background-size: cover;
  background-position: 0 100%;
}
@media screen and (min-width: 415px) and (max-width: 768px) {
  .fv-slide01_inner{
    background: url(../images/fv-sp-img01.png) no-repeat;
    background-size: cover;
    background-position: 100%;
  }
  .fv-slide02_inner{
    background: url(../images/fv-sp-img02.png) no-repeat;
    background-size: cover;
    background-position: 100%;
  }
  .fv-slide03_inner{
    background: url(../images/fv-sp-img03.png) no-repeat;
    background-size: cover;
    background-position: 100%;
  }
}
.swiper-slide-active .fv-slide01{
  background: url(../images/fv-img01_bg.jpg) repeat-x #fff;
  background-size: auto 100%;
  animation: fv-anime01 30s linear infinite;
  animation-directiont: normal;
}
.swiper-slide-active .fv-slide02{
  background: url(../images/fv-img02_bg.jpg) no-repeat #fff;
  animation: fv-anime02 15s linear infinite;
}
.swiper-slide-active .fv-slide03{
  background: url(../images/fv-img03_bg.jpg) no-repeat #fff;
  animation: fv-anime03 15s linear infinite;
  z-index: 1;
}
.swiper-slide-active .fv-slide04{
  background: url(../images/fv-img04_bg.jpg) no-repeat #fff;
  background-size: auto 100%;
  animation: fv-anime04 15s linear infinite;
  z-index: 0;
}

.swiper-slide-active .fv-txt01{
  animation: fv01-fade02 2s linear forwards;
  opacity: 0;
}
.swiper-slide-active .fv-txtBox02{
  animation: fv01-fade02 2s linear forwards;
  opacity: 0;
}
.swiper-slide-active .fv-txtBox03{
  animation: fv01-fade02 2s linear forwards;
  opacity: 0;
}

.fv-txt01{
  top: 3%;
  left: 5%;
  opacity: 0;
}
.fv-txtBox02{
  left: 5%;
  top: 5%;
  padding: 0;
}
.fv-txtBox03{
  text-align: right;
  right: 5%;
  top: 5%;
  padding: 0;
}

.fv-bnrBox{
  position: absolute;
  z-index: 2;
  top: 28%;
  right: 5%;
  max-width: 30%;
}
.fv-bnr01 img{
  width: 100%;
}
.fv-bnr02{
  display: flex;
  gap: 0.5rem;
  margin: 0.5rem auto auto auto;
  max-width: 90%;
  justify-content: center;
}
.fv-bnr02 img{
  width: calc(100% / 3);
}

@media screen and (min-width: 415px) and (max-width: 768px) {
  .fv-txtBox{
    font-size: 4vw;
  }
}

/*キーフレーム*/
@keyframes fv-anime01 {
  0% {
    background-position: -100% 0;
  }
  100% {
    background-position: 0 0;
  }
}
@media screen and (max-width: 768px) {
  @keyframes fv-anime02 {
    from {
      background-size: auto 70%;
      background-position: 60% 100%;
    }
    to {
      background-size: auto 80%;
      background-position: 70% 100%;
    }
  }
  @keyframes fv-anime03 {
    0% {
      background-position: 40% 0;
      background-size: auto 100%;
      opacity: 1;
    }
    30%{
      opacity: 1;
    }
    35% {
      background-position: 40% 0;
      background-size: auto 105%;
      opacity: 0;
    }
    100%{
      opacity: 0;
    }
  }
  @keyframes fv-anime04 {
    30% {
      background-position: 35% 100%;
      background-size: auto 90%;
    }
    100% {
      background-position: 35% 120%;
      background-size: auto 100%;
    }
  }
}
@keyframes fv-anime-zoom {
   0% {
      transform: scale(1);
   }
   100% {
      transform: scale(1.2);
   }
}
@keyframes fv01-fade {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fv01-fade02 {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media screen and (min-width: 769px) {
  .swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
  }
  .fv-slide{
    position: absolute;
    top: 0;
    left: 0;
  }
  .fv-txtBox{
    font-size: clamp(2vw, 3vw, 40px);
  }
  .fv-slide02 .fv-txtBox{
    font-size: 4vh;
  }
  .fv-h2{
    font-size: 1.5rem;
    color: #505050;
    position: absolute;
  }
  .fv-h2_logo{
    display: block;
    margin: 3px 0 0;
    width: 100%;
    max-width: 268px;
  }
  .fv-h1{
    width: 33.455vw;
    font-size: clamp(2rem, 2.123vw, 2.9rem);
    color: #505050;
    position: absolute;
    left: 50px;
    bottom: 25%;
    white-space: nowrap;
  }
  .fv-h1_logo{
    display: block;
    margin: 13px 0 0;
    width: 100%;
    max-width: 45.7rem;
  }
  .fv-txt01{
    top: 65px;
    left: 51px;
    opacity: 0;
  }

  .fv-slide01_inner{
    background: url(../images/fv-img01.png) no-repeat;
    background-size: cover;
    background-position: bottom center;
  }
  .fv-slide02_inner{
    background: url(../images/fv-img02.png) no-repeat;
    background-size: cover;
    background-position: 70% 40%;
  }
  .fv-slide02_inner .fv-h2{
    top: 18px;
    left: 51px;
  }
  .fv-txtBox02{
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    right: 6%;
    top: 5%;
    padding: 0;
  }
  .fv-bnrBox{
    position: absolute;
    z-index: 2;
    top: auto;
    bottom: 3%;
    right: 6.2%;
    max-width: 196px;
  }
  .fv-bnr01 img{
    width: 100%;
  }
  .fv-bnr02{
    display: flex;
    gap: 1rem;
    margin-top: 1rem;
    max-width: 196px;
    justify-content: center;
  }
  .fv-bnr02 img{
    max-width: 58px;
  }
  .fv-slide03_inner{
    background: url(../images/fv-img03.png) no-repeat;
    background-size: cover;
    background-position: right 0 bottom 0;
    z-index: 5 !important;
  }
  .fv-slide03_inner .fv-h2{
    right: 2.5%;
    top: 4.5%;
  }

  .swiper-slide-active .fv-slide02::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url(../images/fv-img02_bg.jpg) no-repeat #fff;
    background-size: 90%;
    background-position: bottom left -60%;
    animation: fv-anime-zoom 15s linear infinite;
  }

  .fv-txtBox03{
    text-align: right;
    right: 1.5%;
    top: 34.5%;
  }
  @keyframes fv-anime02 {
    from {
      background-size: auto 100%;
      background-position: left center;
    }
    to {
      background-size: auto 120%;
      background-position: left center;
    }
  }
  @keyframes fv-anime03 {
    0% {
      background-position: 60% 40%;
      background-size: auto 100%;
      opacity: 1;
    }
    30%{
      opacity: 1;
    }
    35% {
      opacity: 0;
    }
    100%{
      background-position: 40% 30%;
      background-size: auto 130%;
      opacity: 0;
    }
  }
  @keyframes fv-anime04 {
    0% {
      background-position: 60% 0;
      background-size: auto 100%;
    }
    100% {
      background-position: 50% 10%;
      background-size: auto 120%;
    }
  }
}
@media screen and (min-width: 1367px) {
  .fv-txtBox03{
    text-align: right;
    right: 2%;
    top: 35%;
  }
  .fv-slide03_inner{
    background: url(../images/fv-img03_w1366.png) no-repeat;
    background-size: cover;
    background-position: bottom 0 right 0;
  }
  @keyframes fv-anime03 {
    0% {
      background-position: 0 0;
      background-size: auto 100%;
      opacity: 1;
    }
    30%{
      opacity: 1;
    }
    35% {
      background-position: 0 0;
      background-size: auto 105%;
      opacity: 0;
    }
    100%{
      opacity: 0;
    }
  }
  @keyframes fv-anime04 {
    0% {
      background-position: 0 0;
      background-size: auto 100%;
    }
    100% {
      background-position: 0 0;
      background-size: auto 110%;
    }
  }
}

@media screen and (min-width:769px) and (max-width:1024px) {
  .fv-slide03_inner{
    background: url(../images/fv-img03.png) no-repeat;
    background-size: cover;
    background-position: right -120px bottom 0;
    z-index: 5 !important;
  }
}
@media screen and (min-width:1025px) and (max-width:1366px) {
  .fv-txtBox03{
    text-align: right;
    right: 1.5%;
    top: 28%;
  }
}
@media screen and (min-aspect-ratio: 16/9) {
  .swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
  }
  .fv-slide{
    position: absolute;
    top: 0;
    left: 0;
  }
  .fv-slide01_inner{
    background: url(../images/fv-img01.png) no-repeat;
    background-size: cover;
    background-position: 50% 50%;
  }
  .fv-slide02_inner{
    background: url(../images/fv-img02.png) no-repeat;
    background-size: 100%;
    background-position: center bottom;
  }
  .fv-slide03_inner{
    background: url(../images/fv-img03_w1366.png) no-repeat;
    background-size: cover;
    background-position: bottom right;
    z-index: 5 !important;
  }
  .fv-h1{
    font-size: 2.9rem;
    color: #505050;
    position: absolute;
    left: 5%;
    bottom: 30%;
  }
  .fv-h1_logo{
    max-width: 45.7rem;
  }
  .fv-h1_logo img{
    width: 100%;
  }
  .fv-txt01{
    top: 5%;
    left: 5%;
    opacity: 0;
  }
  .fv-h2{
    font-size: 1.5rem;
    color: #505050;
    position: absolute;
  }
  .fv-txtBox02{
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    right: 7%;
    top: 8%;
    padding: 0;
  }
  .fv-bnrBox{
    position: absolute;
    z-index: 2;
    top: auto;
    bottom: 7%;
    right: 7%;
    max-width: 196px;
  }
  .fv-bnr01 img{
    width: 100%;
  }
  .fv-bnr02{
    display: flex;
    gap: 1rem;
    margin-top: 1rem;
    max-width: 196px;
    justify-content: center;
  }
  .fv-bnr02 img{
    max-width: 58px;
  }
  .fv-slide03_inner .fv-h2{
    right: 3%;
    top: 3%;  
  }
  .fv-txtBox03{
    text-align: right;
    right: 1.5%;
    top: unset;
    bottom: 53%;
  }
    @keyframes fv-anime02 {
    from {
      background-size: auto 130%;
      background-position: 0 0;
    }
    to {
      background-size: auto 140%;
      background-position: 0 30%;
    }
  }
  @keyframes fv-anime03 {
    0% {
      background-position: left 0;
      background-size: auto 100%;
      opacity: 1;
    }
    30%{
      opacity: 1;
    }
    35% {
      background-position: left -10%;
      background-size: auto 105%;
      opacity: 0;
    }
    100%{
      opacity: 0;
    }
  }
  @keyframes fv-anime04 {
    30% {
      background-position: left 0;
      background-size: auto 100%;
    }
    100% {
      background-position: left -10%;
      background-size: auto 105%;
    }
  }
}

@media all and (min-width: 1024px) and (max-width: 1280px) {
  .fv-slide03_inner{
    background-position: right -140px bottom 0;
  }
  .fv-bnrBox{
    top: auto;
    right: 7%;
    max-width: 196px;
  }
}
/*------------------------------------------
swiperナビゲーション
------------------------------------------*/
.fv-navi{
  display: block;
  margin-bottom: 30px;
}
.swiper-pagination-bullet{
  display: block !important;
  margin: auto auto 20px 5% !important;
  background: #fff !important;
  border-radius: 0 !important;
  width: 15px !important;
  height: 15px !important;
  border: 1px solid #fff !important;
  opacity: 1 !important;
}
.swiper-pagination-bullet-active{
  background: #765949 !important;
}
@media screen and (min-width:769px) {
  .swiper-pagination-bullet{
    margin: auto 2% 20px auto !important;
  }
}

/*----------------------------------------------------
////スクロールボタン
-----------------------------------------------------*/
.fv-scroll{
  color: #fff;
  position: absolute;
  font-weight: 600;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  width :6.7rem;
  height: 6rem;
  background: url(../images/fv-scroll.png) no-repeat;
  background-size: 67px auto;
  background-position: top center;
  text-align: center;
  letter-spacing: 0.1rem;
  animation: flash 5s linear infinite;
  z-index: 10;
  opacity: 0.5;
}

@keyframes flash{
  0%,100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}
.fv-scroll a{
  display: block;
  width: 6.7rem;
  height: 6rem;
  padding-top: 35px;
}
.fv-scroll:hover{
  opacity: 0.5;
}

/*====================================================
////main-contents
====================================================*/
.contents-wrap{
  position: relative;
}
@media screen and (max-width:768px) {
  .contents-wrap::before {
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100vh;
    background-repeat: no-repeat;
    background-position: 50% 100%;
    background-image: url(../images/img_bg01.png);
    background-size: cover;
  }
}
@media screen and (min-width:769px) {
  .contents-wrap{
    background: url(../images/img_bg01.png) no-repeat center center;
    background-size: cover;
    background-attachment: fixed;
    position: relative;
  }
}
.main-white-box{
  background: rgba(255,255,255,0.8);
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

/*----------------------------------------------------
////section01
-----------------------------------------------------*/
.contents01{
  width: 100%;
  position: relative;
}
.contents01-txt-wrap{
  position: relative;
  z-index: 2;
  max-width: 74.1333%;
  margin: auto;
  padding: 40px 0 63px;
  opacity: 1;
  text-align: center;
  color: #1E444C;
  height: 100%;
}
.contents01-txt-wrap h2 img{
  width: 100%;
  max-width: 278px;
  margin: 0 auto;
}
.contents01-txt-head{
  margin-bottom: 4.75rem;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: bold;
  font-size: 2rem;
  margin-top:  3rem;
  line-height: 2;
  letter-spacing: .07em;
}
.contents01-txt{
  font-size: 1.6rem;
  line-height: 1.9;
  font-weight: bold;
  word-wrap: break-word;
  font-family: 'Noto Serif JP', serif;
  margin: 3rem auto 0 auto;
  opacity: 0;
  text-align: left;
  width: 89.5683%;
}
.contents01-txt a{
  text-decoration: underline;
}
.contents01-txt a:hover{
  color: #CF6F46;
}

.contents02-bnr{
  background: #F1F1F1;
  padding: 21px 23px;
  width: 100%;
  margin: 49px auto 0 auto;
}
.contents02-bnr img{
  display: block;
  text-align: center;
  width: 100%;
}
.contents02-circle-wrap h3 {
  position: absolute;
  top: 291px;
  left: 50%;
  transform: translate(-50%,0);
  width: 85.3333%;
  max-width: 420px;
  border-radius: 50%;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.4);
  z-index: 9;
}
.contents02-circle-wrap .contents02-circle {
  width: 100%;
}
@media screen and (min-width:769px) {
  .contents01-txt-wrap{
    max-width: 90%;
    padding: 110px 0 133px;
    text-align: center;
  }
  .contents01-txt-wrap h2 img{
    max-width: 572px;
  }
  .contents01-txt-head{
    margin-bottom: 5.75rem;
    font-size: 3rem;
    margin-top:  10rem;
    line-height: 2.15;
  }
  .contents01-txt{
    margin-top: 6rem;
    font-size: 2rem;
    line-height: 3.3;
    text-align: center;
    margin: 0 auto;
  }
  .contents01-txt a:hover{
    color: #CF6F46;
  }
  .contents02-bnr{
    display: flex;
    align-items: center;
    margin-top: 8rem;
    max-width: 500px;
    height: 120px;
  }
  .contents02-bnr img{
    max-width: 365px;
    margin: 0 auto;
  }
  .mt01{
    margin-top: 3.5rem;
  }
  .contents02-circle-wrap h3 {
    top: 360px;
    width: 50%;
    max-width: 580px;
  }
}

/*----------------------------------------------------
////section02
-----------------------------------------------------*/
.contents02{
  background: #CF6F46;
  color: #fff;
  text-align: center;
  letter-spacing: .06em;
  padding: 40px 0 30px 0;
  position: relative;
  z-index: 2;
}
.contents02 h2{
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 2.7rem;
  font-weight: bold;
}
.contents02-txt{
  width: 66.6666%;
  font-family: 'Noto Serif JP', serif;
  font-size: 1.6rem;
  line-height: 1.9;
  margin: 34px auto 53px auto;
  text-align: left;
  letter-spacing: .02em;
}

.contents2-slide-wrap{
  position: relative;
  height: 100%;
}
@keyframes imgscroll-01 {
  from {
    background-position: 0 0;
 }
  to {
    background-position: -3297px 0;
  }
}
@keyframes imgscroll-02 {
  from {
    background-position: 0 0;
 }
  to {
    background-position: 3157px 0;
  }
}
@keyframes imgscroll-03 {
  from {
    background-position: 0 0;
 }
  to {
    background-position: -3290px 0;
  }
}
@keyframes imgscroll-04 {
  from {
    background-position: 0 0;
 }
  to {
    background-position: 3157px 0;
  }
}
.scroll-img01-wrap{
  height: 11rem;
  background: url(../images/contents02-01.png) repeat-x;
  animation: imgscroll-01 50s linear infinite;
}
.scroll-img02-wrap{
  height: 19.3rem;
  background: url(../images/contents02-02.png) repeat-x;
  animation: imgscroll-02 50s linear infinite;
}
.scroll-img03-wrap{
  height: 11rem;
  background: url(../images/contents02-03.png) repeat-x;
  animation: imgscroll-03 50s linear infinite;
  margin-top: 23.7rem !important;
}
.scroll-img04-wrap{
  height: 19.2rem;
  background: url(../images/contents02-04.png) repeat-x;
  animation: imgscroll-04 50s linear infinite;
}
.scroll-img01-wrap,
.scroll-img02-wrap,
.scroll-img03-wrap,
.scroll-img04-wrap{
  width: 100%;
  background-size: auto 100%;
  margin: 0 0 30px;
  padding: 0;
}
.contents02-wrap{
  position: relative;
}
.contents02-att{
  margin: -3px auto 5px;
  text-align: center;
  color: #1E444C;
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: normal;
}
@media screen and (min-width:769px) {
  .contents02{
    padding: 110px 0 32px;
  }
  .contents02 h2{
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 4.4rem;
    line-height: 4.4rem;
    font-weight: bold;
    letter-spacing: .06em;
  }
  .contents02-txt{
    margin: 5.25rem auto 3.75rem;
    font-size: 2rem;
    text-align: center;
    line-height: 3.5rem;
    letter-spacing: .02em;
  }
  .scroll-img01-wrap{
    height: 20rem;
    margin: 0 0 55px;
  }
  .scroll-img02-wrap{
    height: 35rem;
    margin: 0 0 55px;
  }
  .scroll-img03-wrap{
    height: 20rem;
    margin-top: 0 !important;
    margin: 0 0 55px;
  }
  .scroll-img04-wrap{
    height: 35rem;
  }
}

/*----------------------------------------------------
////section03
-----------------------------------------------------*/
.contents03{
  padding: 40px 0 25px;
  position: relative;
  z-index: 2;
}
.contents03-inner{
  width: 90%;
  margin: auto;
}
.contents03 h2{
  font-size: 3rem;
  text-align: center;
  font-weight: bold;
  color: #1E444C;
  letter-spacing: .06em;
}
.contents03-head{
  width: 82%;
  margin: 0 auto;
  font-family: 'Noto Serif JP', serif;
  text-align: left;
  font-size: 1.6rem;
  line-height: 1.9;
  margin-top: 3rem;
  letter-spacing: .02em;
}
.contents03-bnr{
  max-width: 98%;
  margin: 78px auto 0 auto;
  background: #fff;
  padding: 1.5rem;
}
.contents03-bnr img{
  display: block;
  text-align: center;
  width: 100%;
}
.contents03-li01{
  width: 88.7573%;
  margin: 52px auto;
}
.contents03-li01 li{
  margin: 0 auto 67px;
  position: relative;
}
.contents03-img-wrap{
  width: 40%;

}
.contents03-img-wrap img{
  width: 100%;
}
.contents03-li_txt_wrap h3{
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.35;
  color: #1E444C;
  letter-spacing: normal;
  width: 60%;
  position: absolute;
  left: 43.5%;
  top: 0;
}
.contents03-li_txt_wrap h3 span{
  display: block;
  margin-right: 1rem;
}
.contents03-li_head{
  padding-bottom: 0.5rem;
  font-size: 1.4rem;
  font-weight: 600;
  color: #1E444C;
  margin-top: 1rem;
}
.contents03-li_txt_wrap .head01{
  border-bottom: 6px solid #960B30;
}
.contents03-li_txt_wrap .head02{
  border-bottom: 6px solid #E73819;
}
.contents03-li_txt_wrap .head03{
  border-bottom: 6px solid #DC007A;
}
.contents03-li_txt{
  margin-top: 10px;
  font-size: 1.4rem;
  line-height: 1.65;
  letter-spacing: -.015em;
  display: block;
}
.contents-h2{
  line-height: 5rem;
  font-size: 3rem;
  line-height: 1.5;
  text-align: center;
  color: #1E444C;
  font-weight: bold;
  letter-spacing: .06em;
}
.contents-h2 img{
  display: block;
  margin: 0 auto 1rem auto;
  width: 65.6804%;
  max-width: 222px;
}

@media screen and (min-width:769px) {
  .contents03{
    padding: 110px 0 71px;
  }
  .contents03-inner{
    max-width: 1201px;
  }
  .contents03 h2{
    font-size: 4.4rem;
  }
  .contents03-head{
    width: 82%;
    margin: 0 auto;
    margin: 4rem auto 3.75rem;
    font-size: 2rem;
    line-height: 1.8;
    text-align: center;
  }
  .contents03-bnr{
    max-width: 700px;
    height: 140px;
    margin: 35px auto 0 auto;
    padding: 35px 72px 35px 70px;
    background: #fff;
  }
  .contents03-bnr img {
    max-width: 559px;
  }
  .contents03-li01{
    max-width: 700px;
    margin: 0 auto;
  }
  .contents03-li01 li{
    display: flex;
    gap: 3rem;
    margin: 53px 0 69px;
  }
  .contents03-img-wrap{
    max-width: 180px;
    width: 100%;
  }
  .contents03-li_txt_wrap h3{
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    font-size: 2.7rem;
  }
  .contents03-li_txt_wrap h3 span{
    display: inline-block;
    margin-right: 1rem;
  }
  .contents03-li_head{
    margin-top: 0;
    font-size: 2rem;
  }
  .contents03-li_txt{
    margin-top: 3px;
    font-size: 1.6rem;
  }
  .contents-h2{
    line-height: 4.4rem;
    font-size: 4.4rem;
  }
  .contents-h2 img{
    display: inline-block;
    margin: 0 1rem 0 0;
    max-width: 337px;
    vertical-align: middle;
    margin-bottom: 25px;
  }
}

/*----------------------------------------------------
////section04
-----------------------------------------------------*/
.contents04{
  position: relative;
  z-index: 2;
}
.contents04-how_wrap{
  margin: auto;
  width: 96.5333%;
}
.contents04-how_txt{
  width: 68.7845%;
  margin: 0 auto;
  font-family: 'Noto Serif JP', serif;
  color: #000000;
  text-align: left;
  line-height: 2.95rem;
  font-size: 1.6rem;
  margin-top: 4rem;
  letter-spacing: .02em;
}
.contents04-how_img{
  max-width: 1201px;
  margin: 4rem auto 0 auto;
}
.contents04-how_img img{
  width: 100%;
}
@media screen and (min-width:769px) {
  .contents04-how_txt{
    margin-top: 0;
    line-height: 3.5rem;
    font-size: 2rem;
    text-align: center;
    letter-spacing: .04em;
  }
  .contents04-how_img{
    margin: 7.6rem auto 0 auto;
  }
}

/*----------------------------------------------------
////section05
-----------------------------------------------------*/
.contents05{
  padding: 40px 0 30px;
  position: relative;
  z-index: 2;
}
.contents05-li02{
  width: 90%;
  margin: 0 auto 52px;
  padding: 0 0 0 21px;
}
.contents05-li02 li::before {
  position: absolute;
  top: 0;
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background: #CF6F46;
}
.contents05-li02 .animate__extendDown::before {
  display: block;
  width: 10px;
  height: 100%;
  transition: height 1s;
  transition-delay: .25s;
}
.contents05-li02 li{
  display: flex;
  align-items: center;
  min-height: 105px;
  margin: 58px 0 0;
  position: relative;
  opacity: 0;
}
.contents05-li02_p_wrap{
  width: 100%;
  height: 100%;
  padding-left: 20px;
}
.contents05-li02_p{
  font-size: 2rem;
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  line-height: 0;
  letter-spacing: .02em;
  color: #1E444C;
  overflow: hidden;
  display: block;
}
.contents05-li02_p span {
  line-height: 1.75;
}
.contents05-li02_p_span{
  opacity: 0;
}

.sprit,
.sprit{
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  width: 0%;
  opacity: 1;
}
.sprit{
  animation: sprit 1.5s linear forwards;
}
@keyframes sprit {
      0% {
        width:0em;
        opacity: 0;
      }
      50% {
        opacity: 1;
      }
      to {
        width:30em;
      }
}
@keyframes extendDown {
  0% {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.animate__extendDown {
  -webkit-animation-name: extendDown;
  animation-name: extendDown
}
.contents05-li02_p_first{
  top: 0.5rem;
}
.contents05-li02_p_last{
  top: 30%;
}
.contents05-merit_underBox{
  position: relative;
  background: #ED8646;
  padding: 4.75rem 5rem 6rem;
  border-radius: 3rem;
  max-width: 80%;
  margin: 0 auto 5rem auto;
  font-size: 1.4rem;
  color: #1E444C;
  background: rgba(237, 134, 70, 0.3);
}
.contents05-merit_underBox p {
  line-height: 1.8;
}
.contents05-merit_under_img{
  width: 90%;
  opacity: 0;
  margin: 2.6rem auto 0;
}
.contents05-merit_under_img img{
  width: 100%;
}

.contents05-li02_p_span_delay01{
  animation-delay: 1s;
}
.contents05-li02_p_span_delay02{
    animation-delay: 2s;
}
@media screen and (min-width:769px) {
  .contents05{
    padding: 110px 0 165px;
  }
  .contents05-li02 .animate__extendDown::before {
    width: 10px;
  }
  .contents05-li02 li{
    min-height: 110px;
    margin: 0 0 105px;
  }
  .contents05-li02{
    max-width: 894px;
    padding: 72px 0 0 32px;
  }
  .contents05-li02_p_wrap{
    padding-left: 40px;
  }
  .contents05-li02_p{
    font-size: 3.5rem;
  }
  .contents05-li02_p span {
    line-height: 1.5;
    letter-spacing: .05em;
  }
  .contents05-li02_p_span_delay01{
    animation-delay: 1s;
  }
  .contents05-li02_p_span_delay02{
      animation-delay: 2s;
  }
  .contents05-merit_under_img{
    position: absolute;
    max-width: 17.8rem;
    right: 5%;
    top: -40%;
    opacity: 0;
  }
  .contents05-merit_underBox{
    max-width: 89.4rem;
    height: 200px;
    padding: 45px 284px 48px 65px;
    font-size: 2rem;
  }
  .contents05-merit_underBox p {
    line-height: 1.75;
  }
}
@media screen and (min-width:769px) and (max-width:1000px) {
  .contents05-li02_p{
    font-size: 3.4vw;
  }
}
/*----------------------------------------------------
////section06
-----------------------------------------------------*/
.contents06{
  background: #EBE8DF;
  padding: 4rem 0 0 0;
  position: relative;
  z-index: 2;
}
.contents06-service_wrap{
  max-width: 90%;
  padding-bottom: 1rem;
  margin: 50px auto 0;
}
.contents06-service_head{
  width: 73.6686%;
  margin: 4rem auto 10.6rem;
  text-align: left;
  line-height: 3rem;
  font-size: 1.6rem;
  color: #000000;
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  letter-spacing: .02em;
}
.contents06-box_wrap{
  background: #CF6F46;
  width: 100%;
  padding: 3.5rem 3rem 3.5rem 3rem;
}
.contents06-box_h3{
  color: #fff;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 500;
}
.contents06-li01{
  width: 100%;
  margin: 50px auto;
}
.contents06-li01 li{
  width: 100%;
  margin-bottom: 10rem;
  position: relative;
}
.contents06-li_box{
  background: #fff;
  border-radius: 1rem;
  box-shadow: 10px 10px 10px rgba(0,0,0,0.4);
  position: relative;
  padding: .1rem 1rem 1.1rem 1rem;
  text-align: center;
  opacity: 0;
  width: 100%;
}
.contents06-li_head{
  border-bottom: 2px solid #CF6F46;
  position: relative;
  height: calc(2.4rem * 3);
}
.contents06-li_head_txt{
  position: absolute;
  line-height: 1.3;
  font-size: 2rem;
  color: #CF6F46;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
  margin: auto;
  width: 100%;
}
.contents06-li_txtBox{
  position: relative;
  height: calc(3rem *4.5);
}
.contents06-li_txt{
  font-size: 2.5rem;
  font-weight: bold;
  color: #1E444C;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
  margin: auto;
  width: 100%;
  line-height: 1.3;
}
.contents06-li01 li:before,
.contents06-li01 li:after{
  content: '';
  width: 30px;
  height: 5px;
  background: #fff;
  position: absolute;
  border-radius: 2px;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  top: 120%;
}
.contents06-li01 li:after{
  transform: rotate(90deg);
  margin-left: -1.5rem;
}
.contents06-li01 li:last-child:before,
.contents06-li01 li:last-child:after{
  display: none;
}

.contents06-02_wrap{
  background: #fff;
  width: 100%;
  padding: 100px 0 50px;
}
.contents06-02_h3{
  color: #CF6F46;
  font-size: 2rem;
  font-weight: 500;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 90%;
  margin: auto;
}
.contents06-02_h3:before,
.contents06-02_h3:after {
  content: "";
  flex-grow: 1;
  border-top: 2px solid;
}
.contents06-02_h3:before {
margin-right: 1rem;
}
.contents06-02_h3:after {
margin-left: 1rem;
}
.contents06-02_txt01{
  text-align: center;
  font-size: 1.6rem;
  line-height: 1.65;
  color: #000;
  margin-top: 3rem;
}
.contents06-02_txt02{
  color: #ED8646;
  font-size: 1.8rem;
  text-align: center;
  margin-top: 5rem;
  font-weight: 500;
}
.contents06-02_img{
  max-width: 90%;
  margin: 2rem auto;
}
.contents06-02_img img{
  width: 100%;
}
.contents06-02-li{
  width: 70%;
  margin: 10rem auto 0 auto;
}
.contents06-02-li li{
  width: 100%;
  font-weight: bold;
  margin-bottom: 5rem;
  opacity: 0;
}
.contents06-02-li li:last-child{
  margin-bottom: 0;
}
.contents06-02-li_head{
  text-align: center;
  font-size: 2rem;
  color: #1E444C;
  letter-spacing: .08em
}
.contents06-02-li_txt{
  border: 2px solid #CF6F46;
  border-radius: 1rem;
  text-align: center;
  color: #CF6F46;
  font-size: 3rem;
  padding: 3.75rem 3.5rem 4.5rem;
  margin-top: 0.5rem;
  background: #fff;
  letter-spacing: .01em;
}
.contents06-installation_wrap{
  margin-top: 15rem;
}
.installation-gallery{
  max-width: 70%;
  margin: 5rem auto;
}
.installation-gallery li{
    width: 100%;
    position: relative;
}
.installation-gallery li img{
  width: 100%;
  position: relative;
}
.modaal-container{
  background: none !important;
}
.installation-gallery li span{
  margin-top: 12px;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  text-align: center;
  display: block;
  font-size: 1.3rem;
  letter-spacing: -0.05rem;
  font-weight: bold;
}
.installation-txt{
  max-width: 74.1333%;
  margin: auto;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 1.4rem;
  text-align: left;
  position: relative;
}

.installation-gallery li span::before{
  position: absolute;
  bottom: 4.2vw;
  right: 0.7vw;
  content: url(../images/gallery-icon.png);
  transform: scale(0.5);
  z-index: 2;
}
.contents06-bottom_txt{
  color: #fff;
  font-size: 1.2rem;
  text-align: center;
}
.modalBtn_wrap{
  position: relative;
  text-align: center;
  display: block;
  margin: 0 auto 3rem auto;
}
.swiperModalButton {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: space-around;
  width: 100%;
  position: relative;
  margin: 5rem auto;
}
.modalOpen{
  display: block;
  width: 71.005%;
  height: 100%;
  margin: 0 auto;
  position: relative;
}
.modalBtn_wrap .modalOpen::after{
  position: absolute;
  bottom: 0;
  right: 0;
  content: url(../images/gallery-icon.png);
  transform: scale(0.5);
  z-index: 0;
}
.swiperModalButton img{
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  position: relative;
}
.modalBtn_wrap-caption {
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-size: 1.3rem;
  font-weight: bold;
  letter-spacing: -.05em;
  display: block;
  width: 71.005%;
  margin: 0 auto;
}

/* モーダル */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  display: none;
  z-index: 999999;
}

/* モーダルがactiveの時 */
.modal.is-active {
  display: block;
  opacity: 1;
  pointer-events: auto;
}

/* モーダル背景のオーバーレイ部分 */
.modal__overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.modalClose {
  z-index: 1;
}

/* モーダルのコンテンツ */
.modal__content {
  position: relative;  
  width: 100%;
}
.modal_inner {
  position: relative;
  width: 100%;
  height: 100vh;
  margin: 0 auto;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.swiper-imgBox {
  position: relative;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  padding: 0 30px;
}
.modalInSlider img{
  width: 100%;
  max-width: 480px;
  margin: auto;
  color: #fff;
  text-align: center;
}
.modalInSlider .caption {
  text-align: center;
  color: #fff;
  line-height: 1.5;
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: -.015em;
  display: block;
  margin: auto;
}

/* 閉じるボタン */
.modal__close-btn {
  position: absolute;
  right: 30px;
  top: -43px;
  width: 43px;
  height: 43px;
  cursor: pointer;
  transition: .25s;
  z-index: 99999;
}
.modal__close-btn:hover {
  opacity: 0.7;
}

/* 閉じるボタンのX */
.lineClose {
  display: inline-block;
  width: 43px;
  height: 1px;
  background: #EDEBDB;
  border-radius: 0.1rem;
  transform: rotate(45deg);
}
.lineClose::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: inherit;
  border-radius: inherit;
  transform: rotate(90deg);
}

.swiper-button-next,
.swiper-button-prev{
  color: #EDEBDB !important;
  top: 50% !important;
  z-index: 99999 !important;
  transition: .25s;
}
.swiper-button-next{
  right: 0 !important;
}
.swiper-button-prev{
  left: 0 !important;
}
.swiper-button-next:after, .swiper-button-prev:after {
  font-size: 30px!important;
}
.swiper-button-next:hover,
.swiper-button-prev:hover{
  opacity: .7;
}

#modal .swiper-container{
  position: relative;
  width: 100%;
  height: auto;
}

@media screen and (min-width: 769px) {
  .contents06-box_wrap {
    padding: 5rem 3rem 3.5rem 3rem;
  }
  .contents06{
    padding: 56px 0 173px;
  }
  .contents06-service_wrap{
    max-width: 90rem;
    margin: 50px auto 0;
    padding-bottom: 0;
  }
  .contents06-service_head{
    width: 100%;
    margin: 2.5rem 0 3.75rem;
    line-height: 3.5rem;
    font-size: 2rem;
    letter-spacing: .04em;
    text-align: center;
  }
  .contents06-box_h3{
    font-size: 3.2rem;
  }
  .contents06-li01{
    display: flex;
    justify-content: center;
    gap: 6rem;
    margin: 59px auto 28px;
  }
  .contents06-li01 li{
    width: calc(100% / 3);
    position: relative;
    margin-bottom: 0;
  }
  .contents06-li_head_txt{
    font-size: 2.4rem;
  }
  .contents06-li_txt{
    font-size: 3rem;
  }
  .contents06-li01 li:before,
  .contents06-li01 li:after{
    right: -60px;
    left: auto;
    top: 110px;
  }
  .contents06-li01 li:after{
    margin-right: 15px;
  }

  .installation-txt{
    font-size: 1.4rem;
    text-align: center;
  }

  .contents06-bottom_txt{
    color: #fff;
    text-align: center;
    font-size: 1.6rem;
  }

  .contents06-02_wrap{
    background: #fff;
    width: 100%;
    padding: 100px 0 50px;
  }
  .contents06-02_h3{
    font-size: 3rem;
    max-width: 95%;
  }
  .contents06-02_h3:before,
  .contents06-02_h3:after {
    margin: 0 1rem;
  }
  .contents06-02_txt01{
    font-size: 2.0rem;
    margin-top: 2.2rem;
  }
  .contents06-02_txt02{
    margin-top: 4.5rem;
    font-size: 2.4rem;
  }
  .contents06-02_img{
    max-width: 76.6rem;
    margin: 2rem auto;
  }
  .contents06-02-li{
    display: flex;
    justify-content: center;
    gap: 5rem;
    width: 90%;
    max-width: 700px;
    margin: 8.5rem auto 0 auto;
  }
  .contents06-02-li li{
    width: calc(100vw / 3);
    margin-bottom: 0;
  }
  .contents06-installation_wrap{
    margin-top: 10.5rem;
  }

  .modalBtn_wrap{
    text-align: center;
    display: block;
    width: 50%;
    margin: 0 auto 2.5rem auto;
  }
  .swiperModalButton div{
    width: 100%;
    max-width: 300px;
  }
  .swiperModalButton div span{
    font-size: 1.6rem;
  }
  .swiperModalButton div span::before{
    bottom: 1.2vw;
    right: 0;
  }
  .swiperModalButton div span:after {
    bottom: 41px;
    right: 29px;
  }

  .modalBtn_wrap-caption {
    width: 100%;
  }
  .swiperModalButton {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem 6rem;
    width: 100%;
    max-width: 660px;
    justify-content: center;
    margin: 6.5rem auto 5.25rem;
  }

 .modalOpen{
    width: 100%;
  }
  .swiperModalButton img{
    width: 100%;
  }
  .modalBtn_wrap .modalOpen::after{
    right: -4px;
    bottom: 5px;
  }
  
  .swiper-imgBox {
    max-width: 800px;
  }
  .modalInSlider img{
    max-width: 800px;
  }
}

/*----------------------------------------------------
////contact
-----------------------------------------------------*/
.contact{
  padding: 35px 0 0;
  position: relative;
  background-color:#fff;
  z-index: 1;
}
.contact-h2{
  font-size: 3.2rem;
  text-align: center;
  color: #1E444C;
  font-weight: 700;
  letter-spacing: .06em;
}
.contact-head{
  width: 66.4%;
  margin: 0 auto;
  font-family: 'Noto Serif JP', serif;
  text-align: left;
  font-size: 1.6rem;
  line-height: 1.9;
  margin-top: 3rem;
  letter-spacing: .02em;
}
.contact-form_wrap{
  max-width: 93.3333%;
  border: 1px solid #707070;
  margin: 12.5rem auto 0;
  background: #fff;
}

.contact-form_head{
  color: #D93954;
  text-align: center;
  margin-top: 3rem;
  font-size: 1.6rem;
  text-align: left;
  padding: 0 2rem;
}
.contact-form_wrap dl{
  width: 90%;
  margin: 3rem auto;
}
.contact-form_wrap dt{
  margin-top: 3rem;
  line-height: 3rem;
}
.contact-form_wrap dt span{
  color: #D93954;
  display: inline-block;
  margin-left: 0.5rem;
}
.form-txt,
.form-contents{
  border: 1px solid #606060;
  width: 100%;
  padding: 0.5rem 1rem;
  position: relative;
  z-index: 99999;
}
.form-tel{
  width: 50%;
}
.form-serect_wrap{
  position: relative;
}
.form-serect_wrap:after{
  content: '';
  position: absolute;
  top: 10px;
  right: 10px;
  width: 10px;
  height: 10px;
  border-top: 2px solid #606060;
  border-right: 2px solid #606060;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
  z-index: 2;
  opacity: 0.7;
}
select {
   border: 1px solid #606060;
   background-color: white;
   padding: 0.4em;
   width: 100%;
}
select:invalid { color: #bbb; }
select option { color: black; }
select option:first-child { color: #bbb; }
.form-contents{
  height:20rem ;
}
.form-policy_wrap{
  text-align: center;
  border-top: 1px solid #707070;
  max-width: 100%;
  margin: auto;
  padding: 6rem 0 2.5rem;
  position: relative;
  font-size: 1.4rem;
}
.form-policy{
  border: 1px solid #606060;
  display: inline-block;
  margin-right: 1rem;
  width: 20px;
  height: 20px;
  border-radius: 0;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}
.submit{
  background: #CF6F46;
  color: #fff;
  width: 24rem;
  margin: 6rem auto 7rem auto;
  text-align: center;
  height: 7rem;
  line-height: 7rem;
  display: block;
  letter-spacing: 1em;
  padding-left: 2rem;
}
.submit[disabled] {
    background-color: #aaa;
    cursor: not-allowed;
}
.submit:hover{
  height: 7rem;
  max-width: 24rem;
}

.contact dd {
  display: flex;
  align-items: center;
}
.contact dd input {
  flex-shrink: 0;
}
.contact dd input.form-tel {
  width: 8em;
}
.note {
  color: #D93954;
  margin-left: .5em;
  font-size: 1.2rem;
  line-height: 1.25;
  text-align: left;
}

@media screen and (min-width:769px) {
  .contact{
    padding: 110px 0 200px;
    background-color:transparent;
  }
  .contact-h2{
    font-size: 4.4rem;
  }
  .contact-head{
    width: 100%;
    max-width: 900px;
    margin: 3.5rem auto 0;
    font-size: 2rem;
    line-height: 1.75;
    letter-spacing: .02em;
    text-align: center;
  }
  .contact-form_wrap{
    max-width: 90rem;
    border: 1px solid #707070;
    margin: 6rem auto;
    background: #fff;
  }
  .contact-form_head{
    margin: 0 auto;
    margin-top: 5rem;
    text-align: left;
    padding: 0 2rem 0 31.5%;
  }
  .contact-form_wrap dl{
    display: flex;
    flex-wrap: wrap;
    max-width: 63rem;
    margin: 2rem auto;
  }
  .contact-form_wrap dt{
    width: 15rem;
    text-align: right;
    padding-right: 2rem;
  }
  .contact-form_wrap dd{
    width: 48rem;
    margin-top: 3rem;
  }
  .form-policy_wrap{
    text-align: center;
    border-top: 1px solid #707070;
    margin: auto;
    padding: 3rem;
    position: relative;
    max-width: 70%;
    font-size: 1.6rem;
  }
  .form-policy{
    position: relative;
    bottom: auto;
    left: auto;
    transform: none;
    -webkit-transform: none;
    -ms-transform: none;
  }
  .submit{
    width: 24rem;
    margin: 8rem auto 7rem auto;
    height: 7rem;
    line-height: 7rem;
  }
}

/*----------------------------------------------------
////thanks
-----------------------------------------------------*/
.thanks {
  padding-top: 9rem;
}
.thanks-inner {
  padding: 0 0 23px;
  background: #fff;
  border-bottom: 1px solid #707070;
}
.thanks-completion {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 70px;
  margin: 0 auto 22px;
  color: #fff;
  font-size: 24px;
  letter-spacing: .2em;
  text-align: center;
  background: #ED8646;
}
.thanks-txt-wrap {
  width: 66.4%;
  margin: 0 auto;
}
.thanks-txt-head {
  font-size: 20px;
  line-height: 32px;
  text-align: center;
  margin-bottom: 1.5em;
}
.thanks-txt {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  line-height: 30px;
  letter-spacing: .02em;
  margin-bottom: 1.8em;
}
.return-btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  height: 70px;
  margin: 0 auto;
  color: #fff;
  font-size: 18px;
  letter-spacing: 1em;
  text-indent: 1em;
  text-align: center;
  background: #D3D3D3;
}
.thankspage footer {
  padding-top: 4rem;
}

@media screen and (min-width:769px) {
  .thanks {
    padding-top: 9rem;
  }
  .thanks-inner {
    max-width: 600px;
    margin: 0 auto;
    padding: 10px 0 29px;
    background: #fff;
    border-bottom: 1px solid #707070;
  }
  .thanks-completion {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 80px;
    margin: 0 auto 27px;
    color: #fff;
    font-size: 24px;
    letter-spacing: .2em;
    text-align: center;
    background: #ED8646;
    border-radius: 26px;
  }
  .thanks-txt-wrap {
    width: 100%;
    text-align: center;
  }
  .thanks-txt-head {
    font-size: 24px;
    line-height: 32px;
    margin-bottom: 1.35em;
  }
  .thanks-txt {
    font-family: 'Noto Serif JP', serif;
    font-size: 20px;
    line-height: 35px;
    letter-spacing: .04em;
    margin-bottom: 1.75em;
  }
  .return-btn {
    margin-top: -.75em;
  }
  .return-btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 240px;
    height: 70px;
    margin: 0 auto;
    color: #fff;
    font-size: 18px;
    letter-spacing: 1em;
    text-indent: 1em;
    text-align: center;
    background: #D3D3D3;
  }
  .return-btn a:hover {
    background: #CF6F46;
    border-radius: 10px;
  }
  .thankspage footer {
    padding-top: 6.5rem;
  }
}

/*====================================================
////上に戻る
====================================================*/
.page-top_btn{
  position: fixed;
  right: 5%;
  bottom: 3%;
  z-index: 9999;
  opacity: 0;
}
.page-top_btn a{
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  background: #6e6e6e;
}
.page-top_btn a:after{
  content: '';
  position: absolute;
  top: 12%;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 12px;
  height: 12px;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: rotate(45deg);
}
.page-top_btn a:hover{
  background: #f48c29;
}
.page-top_btn.UpMove{
  animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }
  to {
    opacity: 1;
  transform: translateY(0);
  }
}
.page-top_btn.DownMove{
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
    opacity: 1;
  transform: translateY(0);
  }
  to {
    opacity: 1;
  transform: translateY(100px);
  }
}
/*====================================================
////footer
====================================================*/
footer{
  background: #fff;
  padding-top: 10rem;
}
.footer-inner{
  max-width: 82%;
  margin: 0 auto;
}
.footer-inner img {
  width: 100%;
  max-width: 100%;
}
.footer-logo{
  margin-bottom: 1.5rem;
  max-width: 222px;
}
.footer-address{
  margin-bottom: 5rem;
  max-width: 260px;
}
.footer-message{
  max-width: 358px;
}
.footer-left{
  font-size: 1.4rem;
  margin-bottom: 5rem;
}
.footer-left-txt_head span{
  font-size: 2.5rem;
  font-weight: bold;
  display: block;
}
.footer-left-txt_box{
  margin-top: 1rem;
  line-height: 2;
}

.footer-address-txt_box {
  margin-bottom: 53px;
}
.footer-txt-name01{
  display: block;
  margin-bottom: -4px;
  font-size: 14px;
}
.footer-txt-name02{
  margin-bottom: 7px;
  font-size: 25px;
  font-weight: bold;
}
.footer-txt-add{
  margin-bottom: 5px;
  font-size: 14px;
}
.footer-txt-tel{
  font-size: 13px;
  line-height: 17px;
}
.footer-txt-tel >span{
  display: inline-flex;
  justify-content: space-between;
  letter-spacing: 4.4px;
  width: 62px;
  white-space: nowrap;
  margin-right: .5em;
}
.footer-txt-mail{
  font-size: 13px;  
  line-height: 17px;
}
.footer-txt-mail >span{
  display: inline-flex;
  justify-content: space-between;
  letter-spacing: 5.5px;
  width: 62px;
  white-space: nowrap;
  margin-right: .5em;
}
.footer-txt-url{
  font-size: 13px;
  line-height: 17px;
}
.footer-txt-url >span{
  display: inline-flex;
  justify-content: space-between;
  letter-spacing: .25px;
  width: 64.5px;
  white-space: nowrap;
  margin-right: .35em;
}
.footer-txt-tel >span::after,
.footer-txt-mail >span::after,
.footer-txt-url >span::after {
  content: "：";
}
.footer-txt-tel >span::after{
  padding-left: 1px;
}

.footer-right-txt_head{
  font-size: 1.3rem;
  display: inline-block;
  letter-spacing: 0.3rem;
  border-bottom: 2px solid #ff0000;
  font-family: serif;
  font-weight: 500;
  padding-bottom: 3px;
  width: 100%;
}
.footer-right-txtwrap{
  display: flex;
  margin: 20px auto 0 auto;
  gap: 3rem;
  box-sizing: border-box;
  width: 100%;
}
.footer-right-txtbox_left{
  width: 40%;
}
.footer-right_img img{
  width: 100%;
  object-fit: cover;
}
.footer-right-txtbox_right{
  width: auto;
}

.footer-right-txt-head{
  font-size: 1.6rem;
  font-family: serif;
  white-space: nowrap;
}
.footer-right-txt-body{
  font-size: 1.3rem;
  margin-top: 0.5rem;
  line-height: 2;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
}
.footer-spimg{
  width: 100%;
}
.footer-spimg img{
  width: 100%;
}
.footer-copy{
  background: #000;
  color: #fff;
  margin-top: 30px;
  padding: 1rem 0 7rem 0;
  font-family: 'Noto Serif JP', serif;
  text-align: center;
}
.privacy-link{
  margin-bottom: 1rem;
  font-family: 'Noto Serif JP', serif;
  font-size: 1.5rem;
  width: 100%;
  transition: 1s;
  height: 2.5rem;
  line-height: 1.5;
}
.privacy-link a:hover{
  color: #ccc;
  font-size: 1.6rem;
  font-weight:bold;
}
.footer-copy small{
  width: 50%;
  text-align: center;
  font-size:  1.4rem;
}

@media screen and (min-width:769px) {
  footer{
    padding-top: 1.5rem;
  }
  .footer-inner{
    max-width: 905px;
    width: 100%;
    margin: 0 auto;
    padding: 0 0 3rem;
    display: flex;
  }
  .footer-left{
    font-size: 1.3rem;
  }
  .footer-logo{
    margin: auto 2.75rem auto 0;
    width: 220px;
    max-width: 220px;
  }
  .footer-message{
    padding-left: 5px;
    max-width: 358px;
  }
  .footer-left-txt_head{
    margin: 10px auto 10px 0;
  }
  .footer-left-txt_head span{
    display: block;
    font-weight: 700;
    font-size: 2.5rem;
  }
  .footer-left-txt_box p{
    margin: 5px 0;
  }
  .footer-left-txt_box p a:hover{
    color: #ccc;
  }
  
  .footer-address-txt_box {
    width: 294px;
    margin-bottom: 0;
  }
  
  .footer-right-txt_head{
    display: inline-block;
    letter-spacing: 0.3rem;
    border-bottom: 2px solid #ff0000;
    font-family: serif;
    font-weight: 500;
    padding-bottom: 3px;
  }
  .footer-right-txtwrap{
    display: flex;
    margin-top: 20px;
    gap: 3rem;
  }
  .footer-right_img{
    max-width: 14.3rem;
  }
  .footer-right_img img{
    width: 100%;
  }
  .footer-right-txt-head{
    font-size: 2.3rem;
    font-family: serif;
  }
  .footer-right-txt-body{
    font-size: 1.3rem;
    margin-top: 10px;
    line-height: 2;
    font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
    font-weight: 500;
  }

  .footer-copy{
    background: #000;
    color: #fff;
    margin-top: 0;
    padding: 20px 0 10px 0;
    text-align: left;
  }
  .privacy-link{
    font-size: 1.5rem;
    width: 50%;
    transition: 1s;
    height: 2.5rem;
    line-height: 1.5;
  }
  .privacy-link a:hover{
    color: #ccc;
    font-size: 1.6rem;
  }
  .footer-copy small{
    margin-top: 4px;
    width: 50%;
    text-align: right;
    font-size:  1.4rem;
  }
}