/*==========================
common
==========================*/
html {
    font-size: calc(100vw / 192);
  }
  
  body {
    font-family: "Shippori Mincho", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
  }
  body::after {
    /* content: ""; */
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    background-image: url(../images/bg-texture_new.png);
  }
        body.subpage::after {
          content: "";
        }
  a {
    text-decoration: none;
    color: #000;
  }
  * {
    letter-spacing: 0.1em;
  }
  .subpage .main {
    padding-top: 8rem;
    padding-top: 0;
  }
  .forPc {
    display: block;
  }
  .forSp {
    display: none;
  }
  @media screen and (max-width: 800px) {
    html {
      font-size: calc(100vw / 75);
    }
    .forPc {
      display: none;
    }
    .forSp {
      display: block;
    }
  }
  
  
  /*==========================
  header
  ==========================*/
  
  .header {
    display: flex;
    /* justify-content: space-between; */
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    height: 120px;
    height: 12rem;
    padding: 0 50px;
    position: absolute;
    z-index: 2;
  }
    /* Header */
    .subpage .header {
      position: static;
      justify-content: space-between;
    }
  .header * {
    color: #fff;
  }
  .header_logo a {
    font-size: 2.6rem;
    letter-spacing: 0.1em;
    display: none;
  }
  @media screen and (min-width: 801px) {
    .gnav {
      display: flex;
      align-items: center;
      gap: 3rem;
      /* filter: drop-shadow(0px 0px 8px #00000055); */
    }
  
    .gnav_list {
      display: flex;
      align-items: center;
      gap: 4rem;
    }
  
    .gnav_item {
      font-size: 1.7rem;
    }
  
    .gnav_cta a {
      display: inline-block;
      padding: 0 15px;
      line-height: 3rem;
      text-align: center;
      border: solid 1px #fff;
      font-size: 1.7rem;
      transition: all ease 0.4s;
    }
  
    .gnav_cta a:hover {
      background-color: #fff;
      color: #000;
    }
  }
  
  /* ハンバーガーボタンのスタイル */
  .hamburger {
    width: 50px;
    height: 45px;
    display: flex;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    position: relative;
    z-index: 100;
  }
  
  /* 各ラインの共通スタイル */
  .hamburger_line {
    display: block;
    width: 30px;
    height: 3px;
    background: white;
    border-radius: 4px;
    position: absolute;
    transition: all 0.4s ease-in-out;
  }
  
  /* 上のライン */
  .hamburger_line:nth-child(1) {
    top: 10px;
  }
  
  /* 中央のライン */
  .hamburger_line:nth-child(2) {
    top: 20px;
  }
  
  /* 下のライン */
  .hamburger_line:nth-child(3) {
    top: 30px;
  }
  
  /* ハンバーガーが「×（バツ）」に変形するアニメーション */
  .hamburger.active .hamburger_line:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }
  
  .hamburger.active .hamburger_line:nth-child(2) {
    opacity: 0;
  }
  
  .hamburger.active .hamburger_line:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }
  @media screen and (max-width: 800px) {
    .header {
      padding: 0 4rem;
      height: 100px;
      height: 16rem;
    }
  /* ナビゲーションの初期状態（非表示 & 透明 & 縮小） */
  .gnav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    /* 半透明の黒背景 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  
    transform: scale(0.85);
    /* 初期縮小 */
    opacity: 0;
    /* 初期は透明 */
    visibility: hidden;
  
    /* フェード + ズームの切れ目をなくす */
    transition:
      transform 0.7s cubic-bezier(0.19, 1, 0.22, 1),
      opacity 0.7s ease-in-out,
      visibility 0s linear 0.7s;
    /* visibility は最後に変更 */
  }
  
  /* ナビゲーションを開いたとき */
  .gnav.active {
    transform: scale(1);
    /* 拡大 */
    opacity: 1;
    /* 透明度を上げる */
    visibility: visible;
    transition: transform 0.7s cubic-bezier(0.19, 1, 0.22, 1), opacity 0.7s ease-in-out;
  }
  
  /* メニューリストのスタイル */
  .gnav_list {
    list-style: none;
    padding: 0;
    text-align: center;
  }
  
  .gnav_item {
    margin: 30px 0;
  }
  .gnav_cta a {
    display: inline-block;
    padding: 0 20px;
    line-height: 40px;
    text-align: center;
    border: solid 1px #fff;
    font-size: 18px;
    transition: all ease 0.4s;
  }
  
  /* 各メニュー項目のアニメーション */
  .gnav_item a {
    color: #fff;
    font-size: 18px;
    text-decoration: none;
  
    /* 初期状態（フェードアウト & 下から少しズレる） */
    opacity: 0;
    transform: translateY(15px);
  
    /* フェードとズームのタイミングを揃える */
    transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
  }
  
  /* メニューを開くと1つずつフェードイン */
  .gnav.active .gnav_item a {
    opacity: 1;
    transform: translateY(0);
  }
  
  /* 遅延フェードイン（1つずつ少し遅れて表示） */
  .gnav.active .gnav_item:nth-child(1) a {
    transition-delay: 0.2s;
  }
  
  .gnav.active .gnav_item:nth-child(2) a {
    transition-delay: 0.3s;
  }
  
  .gnav.active .gnav_item:nth-child(3) a {
    transition-delay: 0.4s;
  }
  
  .gnav.active .gnav_item:nth-child(4) a {
    transition-delay: 0.5s;
  }
  
  .gnav.active .gnav_item:nth-child(5) a {
    transition-delay: 0.6s;
  }
  
  .gnav.active .gnav_item:nth-child(6) a {
    transition-delay: 0.7s;
  }
  
  /* ナビゲーションを閉じる時もスムーズにフェードアウト */
  .gnav:not(.active) .gnav_item a {
    opacity: 0;
    transform: translateY(15px);
    transition: none;
  }
    .hamburger {
      display: flex;
    }
      .hamburger.active {
        position: fixed;
      }
      body.lock {
        overflow: hidden;
      }
  }

  /*==========================
Footer
==========================*/
.footer {
    background-image: url(../images/footer-bg.webp);
    background-size: cover;
    position: relative;
  }
  .footer .container {
    max-width: 120rem;
    margin: 0 auto;
    padding: 0 5rem;
    display: flex;
    align-items: center;
  }
  .footer * {
    color: #fff;
  }
  .footer_left {
    width: 60%;
    padding: 14rem 0 3rem;
  }
  .footer_group {
    font-size: 1.5rem;
    line-height: 1.3;
  }
  .footer_ttl {
    margin: 1rem 0 6rem;
    font-size: 2.8rem;
  }
  .footer_add {
    font-size: 2rem;
    line-height: 1.4;
    margin-bottom: 3rem;
  }
  .footer_tel {
    font-size: 2rem;
  }
  .footer_map {
    margin-top: 4rem;
  }
  .footer_map a {
    display: inline-block;
    border: solid 1px #fff;
    padding: 3rem;
    font-size: 2rem;
  }
  .footer_sns {
    display: flex;
    align-items: center;
    gap: 3rem;
    margin: 5rem 0;
  }
  .footer_sns_item {
    width: 5rem;
    list-style: none;
  }
  .footer_sns_item img {
    width: 100%;
  }
  .footer_prapori {
    font-size: 1.6rem;
  }
  .footer_right {
    width: 40%;
  }
  .footer_cta {
    font-size: 2.4rem;
    text-align: center;
    border: solid 1px #fff;
    padding: 4rem 4.5rem;
    display: inline-block;
  }
  
  .footer_copy {
    position: absolute;
    bottom: 4rem;
    right: 30rem;
  }
  @media screen and (max-width: 800px) {
    .footer .container {
      flex-direction: column-reverse;
      padding: 5rem;
      padding-bottom: 0;
    }
    .footer_left {
      width: 100%;
      padding: 5rem 0;
      text-align: center;
    }
    .footer_right {
      width: fit-content;
    }
    .footer_group {
      font-size: 2rem;
    }
    .footer_ttl {
      font-size: 3.6rem;
      margin: 2rem 0 5rem;
    }
    .footer_add {
      font-size: 2.4rem;
    }
    .footer_tel {
      font-size: 2.4rem;
    }
    .footer_map a {
      font-size: 2.4rem;
    }
    .footer_sns {
      justify-content: center;
    }
    .footer_sns_item {
      width: 7rem;
    }
    .footer_prapori {
      font-size: 2rem;
    }
    .footer_copy {
      position: static;
      text-align: center;
      padding-bottom: 3rem;
    }
  }
  


  /*==========================
下層
==========================*/

/* Main */
.subpage .main {
  max-width: 150rem;
  margin: 0 auto;
  padding-bottom: 15rem;
  padding-right: 50px;
  padding-left: 50px;
}

  .pageHead {
    margin: 2rem 0 8rem; 
    padding-bottom: 5rem;
    border-bottom: solid 1px #000;
    display: flex;
    align-items: flex-end;
    gap: 3rem;
    width: 100%;
}
.pageHead_ttl {
    font-size: 6rem;
    font-weight: 100;
}
.pageHead_sub {
  font-size: 2rem;
}
@media screen and (max-width: 800px) {
      .subpage .main {
          padding: 0 4rem 20rem;
        }
}