@charset "utf-8";
/* CSS Document */
body:not(.gjs-dashed) .fv {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 420px;
  overflow: hidden;
}
body:not(.gjs-dashed) .fv .swiper-container,
body:not(.gjs-dashed) .fv .swiper-wrapper,
body:not(.gjs-dashed) .fv .swiper-slide,
body:not(.gjs-dashed) .fv .bg_img_wrap2 {
  position: relative;
  width: 100%;
  height: 100%;
}
.fv .bg_img_wrap2 {
  display: block;
}
body:not(.gjs-dashed) .fv .bg_img_wrap2::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(154, 131, 108, .4);
  mix-blend-mode: multiply;
  z-index: 1;
}
.fv .bg_img_wrap2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.fv_txt {
  position: absolute;
  right: clamp(36px, 8vw, 120px);
  top: 60%;
  transform: translateY(-50%);
  z-index: 3;
  flex-direction: column;
  align-items: flex-start;
  color: #fff;
}
.fv_txt .site_logo {
  width: clamp(200px, 24vw, 310px);
}
.fv_txt .site_logo img {
  display: block;
  width: 100%;
  height: auto;
}
.fv_txt .catch_copy h1 {
  font-size: clamp(18px, 2.2vw, 28px);
  line-height: 1.7;
  letter-spacing: .12em;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 3px 16px rgba(0, 0, 0, .26);
}
@media screen and (max-width:1080px) {
  body:not(.gjs-dashed) .fv {
    height: min(62vh, 560px);
    min-height: 420px;
  }
  .fv_txt {
    right: clamp(28px, 6vw, 70px);
  }
}
@media screen and (max-width:768px) {
  body:not(.gjs-dashed) .fv {
    height: 68vh;
    min-height: 500px;
  }
  .fv .bg_img_wrap2 img {
    object-position: 42% center;
  }
  body:not(.gjs-dashed) .fv .bg_img_wrap2::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, .06), rgba(0, 0, 0, .16));
  }
  .fv_txt {
    right: auto;
    left: 7%;
    top: auto;
    bottom: clamp(48px, 10vw, 70px);
    transform: none;
  }
}
@media screen and (max-width:576px) {
  body:not(.gjs-dashed) .fv {
    height: 70vh;
    min-height: 470px;
  }
  .fv .bg_img_wrap2 img {
    object-position: 40% center;
  }
  .fv_txt {
    width: 86%;
    left: 7%;
    bottom: 42px;
  }
  .fv_txt .site_logo {
    width: clamp(180px, 58vw, 230px);
  }
  .fv_txt .catch_copy h1 {
    font-size: clamp(17px, 4.8vw, 22px);
  }
}
.section01 {
 
}
.section01 .calendar_wrap {
  max-width: 1280px;
  margin: 0 auto;
}

.section01 .calendar_box {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: clamp(18px, 2.6vw, 30px);
  background: rgba(255, 255, 255, .68);
  border-radius: 6px;
}
.section01 .calendar_inner {
  width: 100%;
  aspect-ratio: 16/5.8;
  background: #D0D0D0;
  overflow: hidden;
}
.section01 .calendar_inner iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
@media screen and (max-width: 768px) {
  .section01 .calendar_box {
    width: 100%;
  }
  .section01 .calendar_inner {
    aspect-ratio: 16/8;
  }
}
@media screen and (max-width: 576px) {

  .section01 .calendar_inner {
    aspect-ratio: 1/1.1;
  }
}
.section02 {}

.section02 .about_wrap {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
}

.section02 .about_box {
  background: #E7DED1;
  border-radius: 30px;
  padding:
    clamp(60px,8vw,100px)
    clamp(30px,7vw,50px)
    clamp(140px,12vw,180px);
}

.section02 .headbox {
  margin-top: clamp(-150px, -10vw, -120px);
}

.section02 .txtbox {
  max-width: 900px;
    margin-right: auto;
     margin-left: auto;

}


.section02 .txtbox p {
  line-height: 2.2;
  letter-spacing: .08em;
}



.section02 .img_wrap {
  width: calc(100% - 180px);
  margin: -90px auto 0;
  gap: clamp(15px,3vw,50px);
  justify-content: center;
}

.section02 .imgbox {
  width: calc((100% - 100px) / 3);
  aspect-ratio: 1.25 / 0.85;
  overflow: hidden;
  border-radius: 10px;
}

.section02 .imgbox img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .4s;
}



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

  .section02 .about_box{
    padding:
      50px
      30px
      110px;
  }

  .section02 .img_wrap{
    width: calc(100% - 60px);
    margin-top: -60px;
    gap: 15px;
  }

  .section02 .imgbox{
    width: calc((100% - 30px) / 3);
  }
}

@media screen and (max-width:576px){
.section02 .headbox {
    margin-top: -80px;
}
  .section02 .about_box{
    border-radius: 20px;
    padding:
      40px
      20px
      40px;
  }

  .section02 .img_wrap{
    width: 100%;
    margin-top: 30px;
    flex-direction: column;
    gap: 15px;
  }

  .section02 .imgbox{
    width: 100%;
    aspect-ratio: 16/10;
  }

}
.section03 .link_wrap {
  max-width: 1280px;
  margin: 0 auto;
}

.section03 .link_box {
  align-items: center;
  justify-content: space-between;
  gap: clamp(40px, 7vw, 90px);
}

.section03 .link_box + .link_box {
  margin-top: clamp(70px, 9vw, 110px);
}

.section03 .link_box.reverse {
  flex-direction: row-reverse;
}

.section03 .imgbox {
  width: 48%;
  aspect-ratio: 1.48 / 1;
  overflow: hidden;
  border-radius: 14px;
}

.section03 .imgbox img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .4s;
}


.section03 .txtbox {
  width: 42%;
}

.section03 .txtbox h2 {
  line-height: 1;
}

.section03 .txtbox p {
  line-height: 2.1;
  letter-spacing: .08em;
}

.section03 .btn_wrap {
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.section03 .more_btn {
  justify-content: flex-start;
}

.section03 .more_btn a {
  min-width: 230px;
  height: 46px;
}

.section03 .more_btn p {
  font-size: 13px;
}

@media screen and (max-width: 768px) {
  .section03 .link_box,
  .section03 .link_box.reverse {
    flex-direction: column;
    gap: 30px;
  }

  .section03 .imgbox,
  .section03 .txtbox {
    width: 100%;
  }

  .section03 .link_box + .link_box {
    margin-top: 70px;
  }

  .section03 .btn_wrap {
    align-items: center;
  }

  .section03 .more_btn {
    justify-content: center;
  }
}

@media screen and (max-width: 576px) {
  .section03 .link_box {
    gap: 24px;
  }

  .section03 .imgbox {
    aspect-ratio: 16 / 11;
    border-radius: 10px;
  }

  .section03 .txtbox p br {
    display: none;
  }

  .section03 .more_btn,
  .section03 .more_btn a {
    width: 100%;
  }

  .section03 .more_btn a {
    min-width: auto;
  }
}
.section04 {
  position: relative;
  overflow: hidden;
}

.section04 .gallery_wrap {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.section04 .title_wrap {
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
}

.section04 .titlebox h2 {
  line-height: 1;
}

.section04 .gallery_img_wrap {
  position: relative;
  min-height: clamp(500px, 52vw, 680px);
  margin-top: clamp(30px, 4vw, 50px);
}

.section04 .imgbox {
  position: absolute;
  overflow: hidden;
  border-radius: 14px;
}

.section04 .imgbox img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.section04 .imgbox1 {
  width: 24%;
  aspect-ratio: 0.82 / 1;
  left: 8%;
  top: 20%;
}

.section04 .imgbox2 {
  width: 44%;
  aspect-ratio: 1.75 / 1;
  right: 14%;
  top: 0;
}

.section04 .imgbox3 {
  width: 35%;
  aspect-ratio: 1.35 / 1;
  left: 36%;
  bottom: 0;
}

.section04 .loop_txt {
  position: absolute;
  left: 0;
  top: 80%;
  transform: translateY(-50%);
  width: 100%;
  z-index: 3;
  pointer-events: none;
}

.section04 .loop_txt_inner {
  display: flex;
  width: max-content;
  animation: loop_txt 28s linear infinite;
}

.section04 .loop_txt_inner p {
  font-family: "Lato", sans-serif;
  font-size: clamp(56px, 8vw, 110px);
  line-height: 1;
  letter-spacing: .08em;
  color: #C6B7A7;
  white-space: nowrap;
}

@keyframes loop_txt {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@media screen and (max-width: 768px) {
  .section04 .title_wrap {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .section04 .gallery_img_wrap {
    min-height: auto;
    display: flex;
    flex-direction: column;
    gap: 18px;
  }

  .section04 .imgbox {
    position: relative;
    width: 100%;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    aspect-ratio: 16 / 10;
  }


}
.section05 .product_wrap {
  max-width: 1280px;
  margin: 0 auto;
}

.section05 .product_box {
  background: #E7DED1;
  border-radius: 30px;
  padding:
    clamp(54px, 7vw, 90px)
    clamp(30px, 6vw, 90px)
    clamp(50px, 7vw, 70px);
}

.section05 .titlebox {

    margin-top: clamp(-120px, -10vw, -50px);

}

.section05 .titlebox h2 {
  line-height: 1;
}

.section05 .product_list {
  justify-content: center;
  align-items: stretch;
  gap: clamp(20px, 3vw, 36px);
}

.section05 .product_item {
  width: calc((100% - 72px) / 3);
}

.section05 .product_item a {
  display: block;
  text-decoration: none;
}

.section05 .product_item .imgbox {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
}

.section05 .product_item .imgbox img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .4s;
}

.section05 .product_item a:hover .imgbox img {
  transform: scale(1.04);
}

.section05 .product_item .txtbox {
  margin-top: 14px;
}

.section05 .product_item .txtbox h3 {
  font-weight: 500;
  line-height: 1.6;
}

.section05 .product_item .txtbox p {
  margin-top: 4px;
  letter-spacing: .08em;
}

@media screen and (max-width: 768px) {
  .section05 .product_box {
    padding:
      48px
      30px
      50px;
  }

  .section05 .titlebox {
    margin-top: -76px;
  }

  .section05 .product_list {
    gap: 20px;
  }

  .section05 .product_item {
    width: calc((100% - 40px) / 3);
  }
}

@media screen and (max-width: 576px) {
  .section05 .product_box {
    border-radius: 20px;
    padding:
      42px
      20px
      40px;
  }

  .section05 .titlebox {
    margin-top: -68px;
  }

  .section05 .product_list {
    flex-direction: column;
    gap: 26px;
  }

  .section05 .product_item {
    width: 100%;
  }


}
.section06 .news_wrap {
  max-width: 1280px;
  margin: 0 auto;
}

.section06 .titlebox h2 {
  line-height: 1;
}

.section06 .newstop_b .webgene-item {
  border-bottom: 1px solid rgba(198, 183, 167, .35);
}

.section06 .newstop_b .webgene-item a {
  display: block;
  padding: clamp(20px, 2.4vw, 28px) 0;
  text-decoration: none;
}

.section06 .newstop_b .item {
  align-items: center;
  gap: clamp(18px, 2.5vw, 30px);
}

.section06 .newstop_b .label {
  align-items: center;
  flex-shrink: 0;
  gap: 14px;
}

.section06 .newstop_b .date {
  color: #4A4745;
  letter-spacing: .08em;
}

.section06 .newstop_b .catelabel {
  padding: 3px 12px;
  border-radius: 999px;
  background: #4A4745;
  color: #fff;
  line-height: 1.3;
  font-size: 13px;
}

.section06 .newstop_b h3 {
  color: #4A4745;
  font-weight: 500;
  letter-spacing: .06em;
}

.section06 .more_btn {
  justify-content: flex-end;
}

@media screen and (max-width: 768px) {
  .section06 .titlebox {
    text-align: center;
  }

  .section06 .newstop_b .item {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .section06 .more_btn {
    justify-content: center;
  }
}
.section06 .news_wrap {
  max-width: 1280px;
  margin: 0 auto;
}

.section06 .titlebox h2 {
  line-height: 1;
}

.section06 .more_btn {
  justify-content: flex-end;
}

.newstop_b .contents {
  width: 100%;
}

.newstop_b .webgene-blog .webgene-item {

  border-bottom: 1px solid rgba(198, 183, 167, .35);
}

.newstop_b .webgene-blog .webgene-item a > .flex {
  gap: 20px;
  padding: 10px 0;
    flex-wrap: nowrap;
}


.newstop_b .webgene-blog .webgene-item a .catelabel {
  border: #4A4745 solid 1px;
  border-radius: 50px;
  background: #4A4745;
  color: #fff;
}




@media screen and (max-width: 768px) {
  .section06 .titlebox {
    text-align: center;
  }

  .section06 .more_btn {
    justify-content: center;
  }
}

@media screen and (max-width: 576px) {
  .newstop_b .webgene-blog .webgene-item a .item {
    flex-direction: column;
  }

  .newstop_b .webgene-blog .webgene-item a .item .label,
  .newstop_b .webgene-blog .webgene-item a .item h3 {
    width: 100%;
    justify-content: flex-start;
  }

  .newstop_b .webgene-blog .webgene-item a .item .catelabel {
    font-size: 12px;
  }

  .newstop_b .webgene-blog .webgene-item a .cate_txt {
    width: 64px;
    padding: 2px 5px;
  }

  .newstop_b .webgene-blog .webgene-item a > .flex {
    gap: 10px;
  }

  .newstop_b .webgene-blog .webgene-item {
    padding-bottom: 0;
    margin-bottom: 10px;
  }
}

/* ---------- IEのみ ---------- */
@media all and (-ms-high-contrast: none) {
}
/* ---------- 1280px ~ ---------- */
@media screen and (max-width: 1280px){
}
/* ---------- 1080px ~ ---------- */
@media screen and (max-width: 1080px){
}
/* ---------- 768px ~ ---------- */
@media screen and (max-width: 768px){
}
/* ---------- 576px ~ ---------- */
@media screen and (max-width: 576px){
}
/* ---------- 350px ~ ---------- */
@media screen and (max-width: 350px){
}

