@charset "UTF-8";

body { opacity: 1; }
.ppd1{ display: none;}

@media screen and (min-width: 768px),print {  
header .h-logo,
header .head-glnavi
{ display: none!important;}

header{ background: none;height: 0;}
#fixbtn{ display: none; }

.fade {opacity: 0;transform: translateY(10px);transition: opacity 1s ease, transform 1s ease;}
.fade.show {opacity: 1;transform: translateY(0);}

#contentsmain { margin: 0 auto; position: relative; }
#contentsmain figure.logo {position: absolute;top: 40px;left: 40px;}
#contentsmain figure.logo img{  }
#contentsmain::before{
    content: url(../images/index/contentsmain-img02.png);
    position: absolute;
    top: -15px;
    right: -10px;
    animation: sway 10s ease-in-out infinite;
    transform-origin: top right;
}
#contentsmain::after{content: url(../images/index/contentsmain-img03.png);position: absolute;bottom: -116px;left: -10px;z-index: 4;animation: sway 10s ease-in-out infinite;
    transform-origin: bottom left;}
@keyframes sway {
    0% { transform: rotate(0deg); }
    25% { transform: rotate(1.2deg); }
    50% { transform: rotate(0deg); }
    75% { transform: rotate(-1.2deg); }
    100% { transform: rotate(0deg); }
  }
#contentsmain .inner-Box {margin: 0 auto;position: relative;min-height: 594px;padding: 203px 2.6rem 0;max-width: 1250px;}
#contentsmain .inner-Box h1.f-kaku {font-size: 3.2rem;line-height: 1.88;font-weight: 700;letter-spacing: 0.32rem;margin-bottom: 56px;position: relative;}
#contentsmain .inner-Box figure.mainimg {position: relative;top: 0;left: 0;width: 600px;margin: 0 0 0 auto;}
#contentsmain .inner-Box figure.mainimg img{  }

#contentsmain .snsbtn{width: 30px;position: absolute;bottom: 11px;right: 34px;}
#contentsmain .snsbtn img{width: 30px;}
#contentsmain .snsbtn a{font-size: 1.2rem;letter-spacing: 0.12rem;font-weight: 500;}
#contentsmain .snsbtn span{position: relative;top: -5px;left: 2px;}

#contentsmain .areaBox {position: relative;width: 295px;height: 130px;background: rgba(255,255,255,0.8);border-radius: 32px;margin-bottom: -217px;padding: 0 0 0 51px;z-index: 5;}
#contentsmain .areaBox h2 {font-size: 1.4rem;line-height: 1.5;font-weight: 700;letter-spacing: 0.14rem;margin-bottom: -2px;position: relative;color: #639360;top: -14px;left: -34px;}
#contentsmain .areaBox h2 span {background: #CEDFBC;display: inline-block;border-radius: 20px;padding: 3px 20px;}
#contentsmain .areaBox h3 {font-size: 1.6rem;line-height: 1.5;font-weight: 700;letter-spacing: 0.16rem;margin-bottom: 5px;position: relative;}
#contentsmain .areaBox p.text {font-size: 1.4rem;line-height: 1.6;font-weight: 400;letter-spacing: 0.14rem;margin-bottom: 30px;position: relative;}

#contentsmain .topnaviBox {width: 330px;height: 273px;position: absolute;top: 75px;right: 212px;background: url(../images/index/contentsmain-img05.png)no-repeat top left;padding: 66px 0 0 27px;}
#contentsmain .topnaviBox::before{content: url(../images/index/contentsmain-icon01.png);position: absolute;top: 6px;left: -106px;}

#contentsmain .topnaviBox ul.toplist {display: -webkit-box; display: -moz-flex; display: -ms-flex; display: -o-flex; display: -ms-flexbox; display: flex; -webkit-box-lines: multiple; -moz-box-lines: multiple; -ms-flex-wrap: wrap; flex-wrap: wrap;}
#contentsmain .topnaviBox ul.toplist{margin: 0 0 15px 49px;/* display: none; *//* width: 210px; */display: -webkit-box;display: -moz-flex;display: -ms-flex;display: -o-flex;display: -ms-flexbox;display: flex;-webkit-box-lines: multiple;-moz-box-lines: multiple;-ms-flex-wrap: wrap;flex-wrap: wrap;position: relative;z-index: 3;}
#contentsmain .topnaviBox ul.toplist li{font-size: 1.4rem;font-weight: bold;line-height: 1;letter-spacing: 0.14rem;margin-bottom: 40px;margin-right: 25px;width: 14px;height: 160px;}
#contentsmain .topnaviBox ul.toplist li a{writing-mode: vertical-rl; transition: all 0.3s ease-in-out;}
#contentsmain .topnaviBox ul.toplist li a:hover{ color: #639360; }

#contentsloop {margin: 0 auto 92px;position: relative;background: url('../images/index/contentsloop-back01.png')repeat-x top center;height: 500px;animation: loopScroll 120s linear infinite;}
#contentsloop .inner-Box {margin: 0 auto;position: relative;height: 400px;}
@keyframes loopScroll {
0% { background-position: 0 0; }
100% { background-position: 2821px 0; } /* 横に2821pxずらす */
}

.wave-mask-box {
    width: 100%;
    height: 50px;
    background: url('../images/common/common-back.jpg') repeat; /* 固定パターン */
    mask-image: url('../images/index/contentsloop-mask01.svg');
    mask-repeat: repeat-x;
    mask-size: auto 100%;
    animation: maskMove 40s linear infinite;
    -webkit-mask-image: url('../images/index/contentsloop-mask01.svg');
    -webkit-mask-repeat: repeat-x;
    -webkit-mask-size: auto 100%;
    -webkit-animation: maskMove 40s linear infinite;
    position: relative;
    z-index: 3;
    top: -2px;
  }
  @keyframes maskMove {
    0% {
      mask-position: 0 0;
      -webkit-mask-position: 0 0;
    }
    100% {
      mask-position: 1920px 0; /* ←波形1周期分動かす */
      -webkit-mask-position: 1920px 0;
    }
  }
  @keyframes maskMove2 {
    0% {
      mask-position: 0 0;
      -webkit-mask-position: 0 0;
    }
    100% {
      mask-position: 1920px 0; /* ←波形1周期分動かす */
      -webkit-mask-position: -1920px 0;
    }
  }
  .wave-mask-box2 {
    width: 100%;
    height: 50px;
    background: url('../images/common/common-back.jpg') repeat; /* 固定パターン */
    mask-image: url('../images/index/contentsloop-mask02.svg');
    mask-repeat: repeat-x;
    mask-size: auto 100%;
    animation: maskMove 30s linear infinite;
    -webkit-mask-image: url('../images/index/contentsloop-mask02.svg');
    -webkit-mask-repeat: repeat-x;
    -webkit-mask-size: auto 100%;
    -webkit-animation: maskMove2 50s linear infinite;
  }
  .wave-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 77px;
    background: url('../images/index/contentsloop-mask03.svg') repeat-x;
    background-size: auto 100%;
    mix-blend-mode: overlay;
    opacity: 1;
    animation: loopScroll2 30s linear infinite; /* 速度変えてもOK */
    z-index: 0;
  }
  @keyframes loopScroll2 {
    0% { background-position: 0 0; }
    100% { background-position: -1920px 0; } /* 横に2821pxずらす */
    }

#contents01{padding: 0 2.6rem 0;margin-bottom: 138px;}
#contents01 #topics{max-width: 1200px;position: relative;margin: 0 auto;}
#contents01 #topics .system-list{margin-left: 300px;margin-bottom: 60px;}
#contents01 #topics .system-list li{ }

#contents01 .inner-Box ul.system-list {}
#contents01 .inner-Box ul li {position: relative;border-bottom: 1px solid #C5D0B9;margin-bottom: 27px;padding-bottom: 12px;}
#contents01 .inner-Box ul li a {position: relative;display: block;padding: 0 80px 0 31px;transition: all 0.3s ease-in-out;}
#contents01 .inner-Box ul li a::before{content: "";background: url(../images/index/contents01-icon01.svg)no-repeat;display: block;background-size: 100% auto;width: 36px;height: 32px;position: absolute;top: -2px;right: 33px;}
#contents01 .inner-Box ul li a:hover { opacity: 0.6; }
#contents01 .inner-Box p.system-date {font-size: 1.4rem;line-height: 1.5;font-weight: 500;letter-spacing: 0.098rem;margin-bottom: 10px;position: relative;top: 0;left: 0;padding: 0 0 0 128px;width: 274px;float: left;}
#contents01 .inner-Box p.system-date span.date {display: inline-block;position: absolute;top: 0;left: 0;font-size: 1.8rem;letter-spacing: 0.054rem;font-weight: 400;}
#contents01 .inner-Box p.system-date span.cate {display: inline-block;font-size: 1.4rem;letter-spacing: 0.084rem;font-weight: 500;padding: 3px 18px;border-radius: 30px;margin-bottom: 2px;position: relative;border: 1px solid #225333;border-radius: 14px;}
#contents01 .inner-Box .system-ttl-01 {font-size: 1.6rem;line-height: 1.5;font-weight: 400;letter-spacing: 0.048rem;margin-bottom: 13px;position: relative;padding-top: 3px;}
#contents01 .inner-Box .system-ttl-01 span{  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden;}
#contents01 .inner-Box .contactbtn a{ width: 197px; }

#contents02 {margin: 0 auto;position: relative;background: url('../images/index/contents02-back01.png')no-repeat bottom center;background-size: 100% auto;padding: 0 2.6rem;}
#contents02 .inner-Box {margin: 0 auto;position: relative;max-width: 1400px;padding-right: 39vw;z-index: 3;}
#contents02 .inner-Box p.text1 {font-size: 1.8rem;line-height: 1.7;font-weight: 500;letter-spacing: 0.048rem;margin-bottom: 70px;position: relative;}
#contents02 .inner-Box p.text1 span {display: block;margin-bottom: 16px;}
#contents02 .inner-Box p.text2 {font-size: 1.8rem;line-height: 1.7;font-weight: 500;letter-spacing: 0.048rem;margin-bottom: 78px;position: relative;margin-left: 48px;}
#contents02 .inner-Box p.text2 span {display: block;margin-bottom: 16px;}
#contents02 .inner-Box .photo-Box{position: absolute;top: 0;right: -134px;width: 44.69vw;height: 37.50vw;}
#contents02 .inner-Box figure.photo01,
#contents02 .inner-Box figure.photo02,
#contents02 .inner-Box figure.photo03,
#contents02 .inner-Box figure.photo04,
#contents02 .inner-Box figure.photo05
{width: 14.43vw;overflow: hidden;border-radius: 4.2vw;}
#contents02 .inner-Box figure.photo01 {position: absolute;top: 0;left: 15.2vw;}
#contents02 .inner-Box figure.photo02 {position: absolute;top: 0;left: 30.2vw;}
#contents02 .inner-Box figure.photo03 {position: absolute;top: 12.8vw;left: 0;}
#contents02 .inner-Box figure.photo04 {position: absolute;top: 12.8vw;left: 15.2vw;}
#contents02 .inner-Box figure.photo05 {position: absolute;top: 25.5vw;left: 15.2vw;}
#contents02 .inner-Box figure.img01 {position: absolute;top: 29px;left: -32px;}
#contents02 .inner-Box figure.img01 img{}
#contents02 figure.img02 {position: absolute;bottom: 47px;left: 0;}
#contents02 figure.img02 img{  }
#contents02 .inner-Box .contactbtn{text-align: left;position: relative;top: 10px;}
#contents02 .inner-Box .contactbtn a{width: 345px;}
.fadeup { opacity: 0; transform: translateY(20px); transition: opacity 1s ease, transform 1s ease; }
.fadeup.show { opacity: 1; transform: translateY(0); }

#contents03 {margin: 0 auto;position: relative;background: url('../images/index/contents03-back01.jpg')repeat top center;padding: 110px 2.6rem 1px;}
#contents03 .inner-Box {margin: 0 auto;position: relative;max-width: 1620px;padding: 0 0 0 642px;}
#contents03 .inner-Box h2.f-kaku {font-size: 3.2rem;line-height: 1.5;font-weight: 700;letter-spacing: 0.32rem;margin-bottom: 0px;position: absolute;left: 0px;top: 4px;}
#contents03 .inner-Box p.text {font-size: 1.8rem;line-height: 2.2;font-weight: 500;letter-spacing: 0.054rem;margin-bottom: 30px;position: absolute;left: 0;top: 85px;}
#contents03 .inner-Box p.text span.f-kaku {  }
#contents03 .inner-Box ul{ padding-top: 7px; }
#contents03 .inner-Box ul li {position: relative;padding: 0 0 0 248px;margin-bottom: 46px;min-height: 181px;}
#contents03 .inner-Box ul li:nth-child(3n) { margin-right: 0px; }
#contents03 .inner-Box figure.photo {position: absolute;top: 0;left: 0;width: 220px;height: 181px;border-radius: 52px;overflow: hidden;}
#contents03 .inner-Box figure.photo img{  }
#contents03 .inner-Box h3.f-kaku {font-size: 2.4rem;line-height: 1.5;font-weight: 700;letter-spacing: 0.24rem;margin-bottom: 13px;position: relative;}
#contents03 .inner-Box p.litext { font-size: 1.6rem; line-height: 1.7; font-weight: 400; letter-spacing: 0.048rem; margin-bottom: 30px; position: relative; }
#contents03 .contactbtn{text-align: left;position: absolute;top: 345px;left: 0;}
#contents03 .contactbtn a{text-align: left;position: relative;top: 10px;width: 400px;}

#contents04 {margin: 0 auto;position: relative;background: url('../images/index/contents04-back01.png')no-repeat top center;padding-bottom: 164px;}
#contents04 .ttl-Box {margin: 0 auto 71px;position: relative;padding: 0 2.6rem;max-width: 1577px;}
#contents04 .ttl-Box span.bird2 {display: block;line-height: 1;height: 43px;width: 36px;position: absolute;right: 11px;top: 7px;}
#contents04 .ttl-Box span.bird2.show{animation: popZoomUp 0.3s ease-out forwards; }
#contents04 .ttl-Box span.bird2 img {  }

/* アニメーション定義 */
@keyframes popZoomUp {
  0% {
    transform: scale(0.3) translateY(60px);
    opacity: 0;
  }
  80% {
    transform: scale(1.05) translateY(-12px);
    opacity: 1;
  }
  100% {
    transform: scale(1) translateY(0);
    opacity: 1;
  }
}

#contents04 .ttl-Box h2 {width: 210px;height: 208px;background: url(../images/index/contents04-icon01.png)no-repeat;font-size: 2.5rem;line-height: 1.4;font-weight: 700;letter-spacing: 0.25rem;margin-bottom: 0px;position: relative;text-align: center;padding: 67px 0 0;}
#contents04 .ttl-Box h2 span {font-size: 1.9rem;}
#contents04 .inner-Box { margin: 0 auto; position: relative; }

#contents04 .inner-Box ul.systemlist {display: flex;gap: 15px;}

#contents04 .galleryslide-outer {margin-bottom: 35px;overflow: hidden;width: 100%;}
#contents04 .galleryslide-track { display: flex; will-change: transform; }
#contents04 .slide {flex: 0 0 auto;margin-left: 30px;width: 290px;}
#contents04 .stop,#contents04 .play { cursor: pointer; }
#contents04 .play { display: none; } /* 初期非表示に */


#contents04 .slide:nth-child(2n){ padding-top: 60px;}
#contents04 .slide a {  }
#contents04 .slide a:hover {  }
#contents04 .slide a figure.photo {position: relative;top: 0;left: 0;width: 290px;height: 240px;overflow: hidden;border-radius: 30px;margin-bottom: 10px;}
#contents04 .slide a figure.photo.fit{ }
#contents04 .slide a figure.photo img{transition: transform 0.4s ease;transform-origin: center center;height: 240px;}
#contents04 .slide a:hover figure.photo img {
transform: scale(1.03);
}
#contents04 .inner-Box p.sys-ttl {font-size: 1.4rem;line-height: 1.6;font-weight: 400;letter-spacing: 0.042rem;margin-bottom: 8px;position: relative;}
#contents04 .inner-Box p.cate { font-size: 1.6rem; line-height: 1.7; font-weight: 400; letter-spacing: 0.048rem; margin-bottom: 30px; position: relative; }
#contents04 .inner-Box p.cate span {background: #CEDFBC;display: inline-block;font-size: 1.2rem;margin-right: 5px;padding: 0 5px;}
#contents04 .stop,
#contents04 .play {cursor: pointer;position: absolute;top: 457px;left: 584px; /* 位置は任意 */z-index: 10;background: none;border: none;}
.swiper-container,
.swiper-wrapper,
.swiper-slide { will-change: transform; transform: translateZ(0); /* ← モバイルで効果大 */ }

#contents04 .contactbtn{padding: 0 15rem;text-align: left;position: relative;}
#contents04 .contactbtn a{width: 383px;}

#contents05{background: #F6F5EC;padding: 0 2.6rem 100px;border-radius: 150px;margin-bottom: -79px;z-index: 3;position: relative;}
#contents05 h2{font-size: 3.2rem;letter-spacing: 0.32rem;text-align: center;font-weight: bold;position: relative;top: -32px;margin-bottom: 20px;}
#contents05 p.subttl{font-size: 1.6rem;line-height: 1.7;font-weight: 400;letter-spacing: 0.048rem;text-align: center;margin-bottom: 45px;position: relative;top: -32px;}
#contents05 .inner-Box{max-width: 1508px;margin: 0 auto;}
#contents05 .inner-Box ul.system-list {display: -webkit-box;display: -moz-flex;display: -ms-flex;display: -o-flex;display: -ms-flexbox;display: flex;-webkit-box-lines: multiple;-moz-box-lines: multiple;-ms-flex-wrap: wrap;flex-wrap: wrap;margin-bottom: 19px;}
#contents05 .inner-Box ul li {position: relative;margin-bottom: 27px;padding-bottom: 12px;width: 30.8%;margin-right: 3.8%;}
#contents05 .inner-Box ul li:nth-child(3n) { margin-right: 0px; }
#contents05 .inner-Box ul li a {position: relative;display: block;}
#contents05 .inner-Box p.system-date {font-size: 1.4rem;line-height: 1.5;font-weight: 500;letter-spacing: 0.098rem;margin-bottom: 4px;position: relative;padding: 0 0 0 11px;}
#contents05 .inner-Box p.system-date span.date {display: inline-block;font-size: 2.5rem;letter-spacing: 0.054rem;font-weight: 300;}
#contents05 .inner-Box p.system-date span.cate {display: inline-block;font-size: 1.4rem;letter-spacing: 0.084rem;font-weight: 500;padding: 3px 18px;border-radius: 30px;margin-bottom: 2px;position: relative;border: 1px solid #225333;border-radius: 14px;}
#contents05 .inner-Box .system-ttl-01 {font-size: 1.6rem;line-height: 1.5;font-weight: 500;letter-spacing: 0.048rem;margin: 0 9px 8px;position: relative;}
#contents05 .inner-Box .system-ttl-01 span{  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden;}
#contents05 .inner-Box .contactbtn a{width: 254px;}
#contents05 .inner-Box .system-pic{border-radius: 30px;overflow: hidden;margin-bottom: 5px;aspect-ratio: 3 / 2;width: 100%;}
#contents05 .inner-Box .system-pic img{transition: transform 0.4s ease;transform-origin: center center;width: 100%;height: 100%;object-fit: cover;display: block;}
#contents05 .inner-Box ul li a:hover .system-pic img { transform: scale(1.03); }
#contents05 .inner-Box .cate{margin: 0 10px 0;}
#contents05 .inner-Box .cate span{font-size: 1.6rem;font-weight: 400;letter-spacing: 0.048rem;background: #CEDFBC;line-height: 1;display: inline-block;padding: 6px 11px;}


}

@media screen and (min-width:768px) and ( max-width:1920px) {
#contents02 {background: url('../images/index/contents02-back01.png')no-repeat bottom center;background-size: auto auto;height: 995px;}


}
@media screen and (min-width:768px) and ( max-width:1510px) {
  #contents02{ padding: 0 5%;}
  #contents03{ padding-left: 5%; padding-right: 5%;}
  #contents05{padding-left: 5%;padding-right: 5%;border-radius: 50px;}

}
@media screen and (min-width:768px) and ( max-width:1510px) {
    .ppd1{ display: block;}
    #contentsmain .inner-Box {margin: 0 auto  0 130px;}
    #contents02 .inner-Box .photo-Box{ right: 30px;}

}
@media screen and (min-width:768px) and ( max-width:1280px) {

#contents03 .inner-Box{padding: 0 0 0 510px;}
}

@media screen and (min-width:768px) and ( max-width:1150px) {
#contents03 .inner-Box {padding: 0 0 0 432px;}
#contents03 .inner-Box h2.f-kaku {left: 0px;top: 4px;}
#contents03 .inner-Box p.text {position: absolute;left: 0;top: 85px;font-size: 1.6rem;}
#contents03 .contactbtn a{width: 360px;}

}

@media screen and (min-width:768px) and ( max-width:1000px) {
    #contentsmain::before{ transform: scale(0.7); transform-origin: top right; }
    #contentsmain::after{transform: scale(0.7); transform-origin: bottom left;}
    
    #contentsmain .inner-Box figure.mainimg {width: 400px;padding-top: 40px;left: 20px;}
    #contentsmain .topnaviBox {width: 290px;position: absolute;right: 82px;background: url(../images/index/contentsmain-img05.png)no-repeat top left;padding: 56px 0 0 17px;background-size: 100% auto;}

    #contents02 .inner-Box .photo-Box{}
    #contents02 .inner-Box figure.photo01,
    #contents02 .inner-Box figure.photo02,
    #contents02 .inner-Box figure.photo03,
    #contents02 .inner-Box figure.photo04,
    #contents02 .inner-Box figure.photo05
    {width: 20vw;overflow: hidden;border-radius: 4.2vw;}
    #contents02 .inner-Box figure.photo01 {position: absolute;top: 0;left: 7.2vw;}
    #contents02 .inner-Box figure.photo02 {position: absolute;top: 0;left: 28.2vw;}
    #contents02 .inner-Box figure.photo03 {position: absolute;top: 17.8vw;left: 7.2vw;}
    #contents02 .inner-Box figure.photo04 {position: absolute;top: 17.8vw;left: 28.2vw;}
    #contents02 .inner-Box figure.photo05 {position: absolute;top: 35.5vw;left: 28.2vw;}
    

}
@media screen and (min-width:768px) and ( max-width:950px) {
    #contents03 .inner-Box {padding: 0 0 0 0px;}
    #contents03 .inner-Box h2.f-kaku {position: relative;left: 0px;top: 4px;margin-bottom: 50px;}
    #contents03 .inner-Box p.text {position: relative;left: 0;top: 0;font-size: 1.8rem;margin-bottom: 150px;}
    #contents03 .contactbtn {position: absolute;top: 290px;left: 0;}
    #contents03 .contactbtn a{width: 360px; position: relative;}


}



@media screen and (max-width: 767px) {
    .fade {opacity: 0;transform: translateY(10px);transition: opacity 1s ease, transform 1s ease;}
    .fade.show {opacity: 1;transform: translateY(0);}
    

    .ppd1{ display: block;}
header{background: none;position: absolute;top: 0;left: 0;z-index: 10;}
    #contentsmain {margin: 0 0 2.3vw;background: url(../images/index/sp-contentsmain-back01.png)no-repeat top center;background-size: 100% auto;position: relative;}
    #contentsmain figure.logo {position: relative;top: 10.67vw;left: 10.67vw;}
    #contentsmain figure.logo img{  }

    #contentsmain .inner-Box {margin: 0 4vw;position: relative;padding: 34.73vw 2.6rem 0;}
    #contentsmain .inner-Box h1.f-kaku {font-size: 4.53vw;line-height: 2.18;font-weight: 700;letter-spacing: 0.55vw;margin: 0 auto 13.63vw;position: relative;writing-mode: vertical-rl;}
    #contentsmain .inner-Box figure.mainimg {position: relative;top: 0;left: 8vw;margin: 0 0 0 auto;z-index: 5;width: 72vw;}
    #contentsmain .inner-Box figure.mainimg img{  }
    
    #contentsmain .snsbtn{ display: none; }
    #contentsmain .snsbtn img{}
    #contentsmain .snsbtn a{font-size: 3.2vw;letter-spacing: 0.32vw;font-weight: 500;}
    #contentsmain .snsbtn span{position: relative;top: 0vw;left: 0.53vw;}
    
    #contentsmain .areaBox {position: relative;height: 29.37vw;background: rgba(255,255,255,0.8);border-radius: 8.53vw;margin: 0 8.7vw -8.3vw;z-index: 5;}
    #contentsmain .areaBox h2 {font-size: 2.67vw;line-height: 1.5;font-weight: 700;letter-spacing: 0.37vw;margin-bottom: 0.9vw;position: relative;color: #639360;top: -2.7vw;left: 4vw;}
    #contentsmain .areaBox h2 span {background: #CEDFBC;display: inline-block;border-radius: 5.33vw;padding: 0.8vw 5.33vw;}
    #contentsmain .areaBox h3 {font-size: 3.47vw;line-height: 1.5;font-weight: 700;letter-spacing: 0.35vw;margin: 0 1vw 2.33vw 10.6vw;position: relative;}
    #contentsmain .areaBox p.text {font-size: 2.93vw;line-height: 1.6;font-weight: 400;letter-spacing: 0.29vw;margin: 0 10.7vw 8.0vw;position: relative;}
    
    #contentsmain .topnaviBox {display: none;}

    #contentsloop {margin: 0 auto 15.53vw;position: relative;background: url('../images/index/contentsloop-back01.png')repeat-x top center;animation: loopScroll 80s linear infinite;background-size: auto 100%;height: 77.2vw;}
    #contentsloop .inner-Box {margin: 0 4vw;position: relative;height: 43vw;}
    @keyframes loopScroll {
    0% { background-position: 0 0; }
    100% { background-position: -100% 0; } /* 横に0vwずらす */
    }
    
    .wave-mask-box {
        width: 100%;
        height: 27vw;
        background: url('../images/common/common-back.jpg') repeat; /* 固定パターン */
        mask-image: url('../images/index/sp-contentsloop-mask01.svg');
        mask-repeat: repeat-x;
        mask-size: 1000px auto;
        animation: maskMove 40s linear infinite;
        -webkit-mask-image: url('../images/index/sp-contentsloop-mask01.svg');
        -webkit-mask-repeat: repeat-x;
        -webkit-mask-size: 1000px auto;
        -webkit-animation: maskMove 40s linear infinite;
        position: relative;
        z-index: 3;
        top: -0.2vw;
        background-size: auto 100%;
        }
      @keyframes maskMove {
        0% {
          mask-position: 0 0;
          -webkit-mask-position: 0% 0;
        }
        100% {
          mask-position: 0vw 0; /* ←波形1周期分動かす */
          -webkit-mask-position: -1000px 0;
        }
      }
      @keyframes maskMove2 {
        0% {
          mask-position: 0 0;
          -webkit-mask-position: 0% 0;
        }
        100% {
          mask-position: 0vw 0; /* ←波形1周期分動かす */
          -webkit-mask-position: 1000px 0;
        }
      } 
      .wave-mask-box2 {
        width: 100%;
        height: 27vw;
        background: url('../images/common/common-back.jpg') repeat; /* 固定パターン */
        mask-image: url('../images/index/sp-contentsloop-mask02.svg');
        mask-repeat: repeat-x;
        mask-size: 1000px auto;
        animation: maskMove 40s linear infinite;
        -webkit-mask-image: url('../images/index/sp-contentsloop-mask02.svg');
        -webkit-mask-repeat: repeat-x;
        -webkit-mask-size: 1000px auto;
        -webkit-animation: maskMove2 40s linear infinite;
        position: relative;
        z-index: 3;
        top: -0.2vw;
        background-size: auto 100%;
        }

      .wave-overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 16vw;
        background: url('../images/index/sp-contentsloop-mask03.svg') repeat-x;
        /* -webkit-mask-size: 100vw auto; */
        mix-blend-mode: overlay;
        opacity: 1;
        animation: loopScroll2 30s linear infinite; /* 速度変えてもOK */
        z-index: 0;
        background-size: -1000px auto;
      }
      @keyframes loopScroll2 {
        0% { background-position: 0% 0; }
        100% { background-position: -150vw 0; } /* 横に0vwずらす */
        }
    
    #contents01{padding: 0 5.1vw 0;margin-bottom: 20.5vw;}
    #contents01 #topics{position: relative;margin: 0 3.6vw;}
    #contents01 #topics .system-list{margin-bottom: 13vw;}
    #contents01 #topics .system-list li{ }
    #contents01 h2{font-size: 5.9vw;line-height: 1.5;font-weight: 700;letter-spacing: 0.14vw;margin-bottom: 11.17vw;position: relative;}

    #contents01 .inner-Box ul.system-list {}
    #contents01 .inner-Box ul li {position: relative;border-bottom: 0.37vw solid #C5D0B9;margin-bottom: 7.2vw;padding-bottom: 3.2vw;}
    #contents01 .inner-Box ul li a {position: relative;display: block;transition: all 0.3s ease-in-out;}
    #contents01 .inner-Box ul li a::before{content: "";background: url(../images/index/contents01-icon01.svg)no-repeat;display: block;background-size: 100% auto;width: 8.1vw;height: 8.53vw;position: absolute;top: 38%;right: 0.6vw;}
    #contents01 .inner-Box ul li a:hover { opacity: 0.6; }
    #contents01 .inner-Box p.system-date {font-size: 3.20vw;line-height: 1.5;font-weight: 500;letter-spacing: 0.26vw;margin-bottom: 0.97vw;position: relative;top: 0;left: 0;padding: 0 0 0 18.63vw;}
    #contents01 .inner-Box p.system-date span.date {display: inline-block;position: absolute;top: 0.6vw;left: -0.4vw;font-size: 3.20vw;letter-spacing: 0.14vw;font-weight: 400;}
    #contents01 .inner-Box p.system-date span.cate {display: inline-block;font-size: 3.20vw;letter-spacing: 0.22vw;font-weight: 500;padding: 0.4vw 3.7vw;border-radius: 8.0vw;margin-bottom: 0.53vw;position: relative;border: 0.27vw solid #225333;border-radius: 3.73vw;}
    #contents01 .inner-Box .system-ttl-01 {font-size: 3.73vw;line-height: 1.5;font-weight: 400;letter-spacing: 0.13vw;margin-bottom: 2.57vw;position: relative;padding-top: 0.8vw;padding-right: 9vw;}
    #contents01 .inner-Box .system-ttl-01 span{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
    #contents01 .inner-Box .contactbtn a{width: 43vw;border-radius: 6vw;}
    
    #contents02 {padding: 0 4vw 29.3vw;position: relative;background: url('../images/index/sp-contents02-back01.png')no-repeat bottom center;background-size: 100% auto;margin-bottom: -1vw;}
    #contents02 .inner-Box {position: relative;z-index: 3;}
    #contents02 .inner-Box p.text1 {font-size: 3.73vw;line-height: 2.24;font-weight: 500;letter-spacing: 0.11vw;margin: 0 4.2vw 8.87vw;position: relative;}
    #contents02 .inner-Box p.text1 span {display: block;margin-bottom: -0.33vw;}
    #contents02 .inner-Box p.text2 {font-size: 3.73vw;line-height: 2.24;font-weight: 500;letter-spacing: 0.11vw;margin: 0 4.2vw 8.77vw 11vw;position: relative;}
    #contents02 .inner-Box p.text2 span {display: block;margin-bottom: -0.33vw;}
    #contents02 .inner-Box .photo-Box{position: relative;top: 0;right: 0vw;height: 105.5vw;width: 100%;margin-bottom: 4.8vw;}
    #contents02 .inner-Box figure.photo01,
    #contents02 .inner-Box figure.photo02,
    #contents02 .inner-Box figure.photo03,
    #contents02 .inner-Box figure.photo04,
    #contents02 .inner-Box figure.photo05
    {width: 37.03vw;overflow: hidden;border-radius: 9.2vw;}
    #contents02 .inner-Box figure.photo01 {position: absolute;top: 0;left: 16.2vw;}
    #contents02 .inner-Box figure.photo02 {position: absolute;top: 0.4vw;left: 54.9vw;}
    #contents02 .inner-Box figure.photo03 {position: absolute;top: 32.6vw;left: 0;}
    #contents02 .inner-Box figure.photo04 {position: absolute;top: 32.5vw;left: 39vw;}
    #contents02 .inner-Box figure.photo05 {position: absolute;top: 65.1vw;left: 20.5vw;}
    #contents02 .inner-Box figure.img01 {position: absolute;bottom: -121.57vw;left: 64.5vw;}
    #contents02 .inner-Box figure.img01 img{}
    #contents02 figure.img02 {position: absolute;bottom: 15.33vw;left: 0vw;width: 53.4vw;}
    #contents02 figure.img02 img{  }
    #contents02 .inner-Box .contactbtn{text-align: left;position: relative;top: 4.27vw;}
    #contents02 .inner-Box .contactbtn a{ width: 72.7vw; left: -9.6vw; }
    .fadeup { opacity: 0; transform: translateY(5.33vw); transition: opacity 1s ease, transform 1s ease; }
    .fadeup.show { opacity: 1; transform: translateY(0); }
    
    #contents04 .ttl-Box span.bird2.show{ animation: popZoomUp 0.3s ease-out forwards;}

/* アニメーション定義 */
@keyframes popZoomUp {
  0% {
    transform: scale(0.3) translateY(2.49vw);
    opacity: 0;
  }
  80% {
    transform: scale(1.05) translateY(-2vw);
    opacity: 1;
  }
  100% {
    transform: scale(1) translateY(0);
    opacity: 1;
  }
}

    #contents03 {position: relative;background: url('../images/index/contents03-back01.jpg')repeat top center;background-size: 100% auto;}
    #contents03 .inner-Box {position: relative;padding: 5.3vw 0 10vw 0vw;}
    #contents03 .inner-Box h2.f-kaku {font-size: 5.87vw;line-height: 1.5;font-weight: 700;letter-spacing: 0.35vw;margin-bottom: 9.1vw;text-align: center;}
    #contents03 .inner-Box p.text {font-size: 3.73vw;line-height: 2.14;font-weight: 500;letter-spacing: 0.11vw;margin: 0 8vw 7.3vw;}
    #contents03 .inner-Box p.text span.f-kaku {  }
    #contents03 .inner-Box ul{padding-top: 1.87vw;margin-bottom: -11vw;}
    #contents03 .inner-Box ul li {position: relative;margin: 0 4.00vw 12.27vw;width: 71.47vw;}
    #contents03 .inner-Box figure.photo {position: relative;top: 0;left: 0;height: 58.87vw;border-radius: 15.87vw;overflow: hidden;margin-bottom: 6.3vw;}
    #contents03 .inner-Box figure.photo img{  }
    #contents03 .inner-Box h3.f-kaku {font-size: 4.80vw;line-height: 1.5;font-weight: 700;letter-spacing: 0.48vw;margin-bottom: 3.47vw;position: relative;}
    #contents03 .inner-Box p.litext {font-size: 3.47vw;line-height: 1.6;font-weight: 500;letter-spacing: 0.10vw;margin-bottom: 8.0vw;position: relative;}
    #contents03 .contactbtn{text-align: left;position: relative;left: 0;}
    #contents03 .contactbtn a{text-align: left;position: relative;top: 2.67vw;width: 80vw;margin: 0 auto;}
    #contents03 .prev-arrow{position: absolute;top: 26.3vw;left: 10vw;width: 9.6vw;transform: rotate(180deg);transform-origin: center;z-index: 3;}
    #contents03 .next-arrow{position: absolute;top: 27.3vw;right: 10.4vw;width: 9.6vw;z-index: 3;}

    #contents04 {position: relative;background: url('../images/index/sp-contents04-back01.png')no-repeat top center;padding-bottom: 22.73vw;background-size: 100% auto;padding-top: 10vw;}
    #contents04 .ttl-Box {margin: 0 auto 4.03vw;position: relative;padding: 0vw 8vw;}
    #contents04 .ttl-Box span.bird2 {display: block;line-height: 1;height: 11.47vw;width: 6.6vw;position: absolute;right: 0.53vw;top: 0.87vw;}
    #contents04 .ttl-Box span.bird2 img {  }
    #contents04 .ttl-Box h2 {height: 34.47vw;width: 33.47vw;background: url(../images/index/contents04-icon01.png)no-repeat;font-size: 4.00vw;line-height: 1.4;font-weight: 700;letter-spacing: 0.40vw;margin-bottom: 0.0vw;position: relative;text-align: center;padding: 10.97vw 0 0;background-size: 100% auto;}
    #contents04 .ttl-Box h2 span {font-size: 2.93vw;}
    #contents04 .inner-Box {position: relative;}
    #contents04 .galleryslide-outer {margin-bottom: 9.33vw;overflow: hidden;width: 100%;}
    #contents04 .galleryslide-track { display: flex; will-change: transform; }
    #contents04 .slide {flex: 0 0 auto;margin-left: 8.00vw;width: 48.00vw;}
    #contents04 .stop,#contents04 .play { cursor: pointer; }
    #contents04 .play { display: none; } /* 初期非表示に */
    
    
    #contents04 .slide:nth-child(2n){ padding-top: 12.0vw;}
    #contents04 .slide a {  }
    #contents04 .slide a:hover {  }
    #contents04 .slide a figure.photo {position: relative;top: 0;left: 0;height: 40.00vw;overflow: hidden;border-radius: 8.0vw;margin-bottom: 2.5vw;}
    #contents04 .slide a figure.photo.fit{ }
    #contents04 .slide a figure.photo img{ transition: transform 0.4s ease; transform-origin: center center; width: 100%; height: 40.00vw; }
    #contents04 .slide a:hover figure.photo img { transform: scale(1.03); }
    #contents04 .inner-Box p.sys-ttl {font-size: 3.47vw;line-height: 1.6;font-weight: 400;letter-spacing: 0.10vw;margin-bottom: 1.13vw;position: relative;}
    #contents04 .inner-Box p.sys-ttl span{ display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;}
    #contents04 .inner-Box p.cate { font-size: 4.27vw; line-height: 1.7; font-weight: 400; letter-spacing: 0.13vw; margin-bottom: 8.0vw; position: relative; }
    #contents04 .inner-Box p.cate span {background: #CEDFBC;display: inline-block;font-size: 3.2vw;margin-right: 1.33vw;padding: 0 1.33vw;}
    #contents04 .stop,
    #contents04 .play {cursor: pointer;position: absolute;bottom: 19vw;left: 43.5vw; /* 位置は任意 */z-index: 10;width: 13vw;background: none;border: none;}
    .swiper-container,
    .swiper-wrapper,
    .swiper-slide { will-change: transform; transform: translateZ(0); /* ← モバイルで効果大 */ }
    
    #contents04 .contactbtn{padding: 7.5vw 0vw 0vw;text-align: left;position: relative;}
    #contents04 .contactbtn a{ width: 81vw; margin: 0 auto; position: relative; }
    
    #contents05{background: #F6F5EC;border-radius: 13vw;margin-bottom: -4vw;z-index: 3;position: relative;padding-bottom: 1vw;}
    #contents05 h2{font-size: 5.87vw;letter-spacing: 0.35vw;text-align: center;font-weight: bold;position: relative;top: -5vw;left: -2.2vw;margin-bottom: 2.03vw;}
    #contents05 p.subttl{font-size: 3.73vw;line-height: 1.8;font-weight: 400;letter-spacing: 0.11vw;text-align: center;margin: 0 15vw 12.0vw;position: relative;top: 0vw;}
    #contents05 .inner-Box{margin: 0 6vw;}
    #contents05 .inner-Box ul.system-list {display: -webkit-box;display: -moz-flex;display: -ms-flex;display: -o-flex;display: -ms-flexbox;display: flex;-webkit-box-lines: multiple;-moz-box-lines: multiple;-ms-flex-wrap: wrap;flex-wrap: wrap;margin-bottom: 7.47vw;}
    #contents05 .inner-Box ul li {position: relative;margin-bottom: 7.2vw;padding-bottom: 1.2vw;width: 100%;}
    #contents05 .inner-Box ul li:nth-child(3n) { margin-right: 0.0vw; }
    #contents05 .inner-Box ul li a {position: relative;display: block;}
    #contents05 .inner-Box p.system-date {font-size: 3.73vw;line-height: 1.5;font-weight: 500;letter-spacing: 0.26vw;margin-bottom: 0.07vw;position: relative;padding: 0 0 0 2.93vw;}
    #contents05 .inner-Box p.system-date span.date {display: inline-block;font-size: 4.80vw;letter-spacing: 0.14vw;font-weight: 300;position: relative;top: -0.5vw;}
    #contents05 .inner-Box p.system-date span.cate {display: inline-block;font-size: 3.73vw;letter-spacing: 0.22vw;font-weight: 500;padding: 0.8vw 4.8vw;border-radius: 8.0vw;margin-bottom: 0.53vw;position: relative;border: 0.27vw solid #225333;border-radius: 3.73vw;}
    #contents05 .inner-Box .system-ttl-01 {font-size: 3.73vw;line-height: 1.5;font-weight: 500;letter-spacing: 0.13vw;margin: 0 2.4vw 2.37vw;position: relative;}
    #contents05 .inner-Box .system-ttl-01 span{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;}
    #contents05 .inner-Box .contactbtn a{width: 53.3vw;left: -4vw;}
    #contents05 .inner-Box .text-box{width: 50vw;float: left;}
    #contents05 .inner-Box .system-pic{border-radius: 3.6vw;height: 23.9vw;overflow: hidden;margin-bottom: 1.33vw;width: 36vw;float: left;margin-right: 1.1vw;}
    #contents05 .inner-Box .system-pic img{width: 100%;height: 23.9vw;transition: transform 0.4s ease;transform-origin: center center;}
    #contents05 .inner-Box ul li a:hover .system-pic img { transform: scale(1.03); }
    #contents05 .inner-Box .cate{margin: 0 2.67vw 0;}
    #contents05 .inner-Box .cate span{font-size: 2.93vw;font-weight: 400;letter-spacing: 0.13vw;background: #CEDFBC;line-height: 1;display: inline-block;padding: 1.4vw 2.93vw;}
    



}

