:root{
  --main-font: fot-tsukuaoldmin-pr6n, "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "リュウミン R-KL", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  --main-font-color: #ffffff;
  --sub-font-color: #000000;
  --main-bg-color: #f0f0f1;
  --sub-bg-color: #24242e;
}
a{
  text-decoration: none;
}
body{
  margin: 0;
  padding: 0;
  background-color: var(--main-bg-color);
  overflow-x: hidden;  /* デフォルトでは横スクロールを無効化 */
  overflow-y: auto; 
}
h4{
  font-weight: normal;
}

  .container{
    height: 100dvh;
  }
  .header{
    margin: 0;
  }
  .side-menu{
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;

    width: 68px;
    height: 100dvh;
    background-color: var(--main-bg-color);
    border-right: solid 0.5px var(--sub-bg-color);
    }
      .header-nav-container{
        display: flex;
        justify-content: space-between;
        flex-direction: column;
        margin-bottom: 300px;
        height: calc(100% - 300px);
        width: 100%;
      }
        .logo{
          width: 1.5rem;
          margin: 30px auto 0 auto;
        }
          .logo h1{
            font-size: 1.5rem;
            font-weight: normal;
            margin: 0;
            transform: rotate(90deg);
            color: var(--sub-font-color);
            font-family: var(--main-font);
          }

      .menu {
        margin: 0 auto;
        background-color: transparent;
        border: none;
        cursor: pointer;
        display: flex;
        padding: 0;
        margin: 0 auto 30px auto;
        transform: scale(0.6);
      }
        .line {
          fill: none;
          stroke: black;
          stroke-width: 4;
          transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
          stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
        }
        .line1 {
          stroke-dasharray: 60 207;
          stroke-width: 4;
        }
        .line2 {
          stroke-dasharray: 60 60;
          stroke-width: 4;
        }
        .line3 {
          stroke-dasharray: 60 207;
          stroke-width: 4;
        }
        .opened .line1 {
          stroke-dasharray: 90 207;
          stroke-dashoffset: -134;
          stroke-width: 4;
        }
        .opened .line2 {
          stroke-dasharray: 1 60;
          stroke-dashoffset: -30;
          stroke-width: 4;
        }
        .opened .line3 {
          stroke-dasharray: 90 207;
          stroke-dashoffset: -134;
          stroke-width: 4;
        }

  .side-btn{
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 100;
    width: 68px;
    height: 300px;
    border-top: solid 0.5px var(--sub-bg-color);
    border-bottom: solid 0.5px var(--sub-bg-color);
  }
    .booking-btn{
      height: 100%;
      width: 100%;
    }
      .booking-btn a{
        height: 100%;
        width: 100%;
        writing-mode: vertical-rl;
        text-decoration: none;
        color: var(--sub-font-color);
        display: flex;
        justify-content: center;
        align-items: center;
        font-family: var(--main-font);
      }
        .booking-btn a span{

        }

  .menu-container{
    height: 100dvh;
    width: 100vw;
    position: fixed;
    top: 0;
    right: -100vw;
    z-index: 10;
    background-color: var(--sub-bg-color);

    transition: 1s ease;
  }
  .menu-container.open{
    right: 0;

    transition: 1s ease;
  }
    .menu-card{
      display: flex;
      flex-direction: column;
      height: 100%;
      width: 100%;
      padding: 100px 200px;
    }
      .menu-desc{
        display: flex;
        flex-direction: column;
        gap: 20px;
        width: 100%;
        height: 100%;
      }
        .menu-desc a{
          text-decoration: none;
          color: var(--main-font-color);
          font-family: var(--main-font);
          font-size: 1.5rem;
        }
        .menu-desc a:hover{
          color: #404040;
        }


  .main-container{
    display: flex;         /* 横に並べる */
    width: max-content;    /* コンテンツの幅に応じて広がる */
    height: 100vh;         /* 画面全体の高さを維持 */
    overflow-x: auto;  
  }
    .blocks{
      height: 100dvh;
      border-right: solid 1px var(--sub-font-color);
    }
    .box-title{
    }
      .box-title h4{
        font-size: 1rem;
        font-weight: normal;
        color: var(--sub-font-color);
        font-family: var(--main-font);
      }
    .block-top-title{
      width: 500px;
      border-right: solid 1px var(--sub-font-color);
    }
      .top-brand-copy-box{
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding-left: 128px;
      }
        .block-top-title h2{
          font-size: 1rem;
          font-weight: normal;
          font-family: var(--main-font);
          color: var(--sub-font-color);
        }
    .block-top{
      width: calc(100vw - 600px);
      height: 100%;
      position: relative;
      top: 0;
      left: 0;
      background-color: var(--main-bg-color);
    }
      .box-top-nav{
        width: calc(100% - 300px);
        height: calc(100% - 20%);
        padding: 10vh 150px;
        display: flex;
        justify-content: center;
        align-items: center;
      }
        .top-nav-list{
          max-width: 500px;
          max-height: 400px;
          height: 100%;
          width: 100%;
          display: flex;
          flex-direction: column;
          justify-content: space-around;
        }
          .top-nav-list a{
            width: 100%;
            height: 30%;
            position: relative;
            top: 0;
            left: 0;
            overflow: hidden;
          }
            .top-nav-list a img{
              position: absolute;
              top: 0;
              left: 0;
              width: 100%;
              height: 100%;
              object-fit: cover;
              filter: brightness(0.7);

              transition: 1s ease;
            }
            .top-nav-list a:hover img{
              transform: scale(1.1);
              transition: 1s ease;
            }
            .top-nav-list a p{
              position: absolute;
              top: 50%;
              left: 50%;
              transform: translate(-50%, -50%);
              -webkit-transform: translate(-50%, -50%);
              -ms-transform: translate(-50%, -50%);
              margin: 0;

              color: var(--main-font-color);
              font-family: var(--main-font);
            }

    .block-stay{
      width: 1000px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      /* padding: 200px 0; */
    }
      .box-plans{
        height: 100%;
        display: flex;
      }
        .box-plans .box-text{
          width: 40%;
          height: 100%;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
        }
          .stay-text{
            width: auto;
            font-family: var(--main-font);
          }
            .stay-text h6{
              font-size: 1.5rem;
              font-weight: normal;
            }
            .stay-text span{
              font-size: 1rem;
              color: #a5a5a5;
            }
            .stay-text p{
              font-size: 1rem;
              font-weight: lighter
            }
      .box-plan-list{
        margin-left: 10%;
        width: 50%;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
      }
        .box-plan-list h5{
          font-size: 1rem;
          font-weight: normal;
          color: var(--sub-font-color);
          font-family: var(--main-font);
        }
        .box-plan-list .plan{
          width: 100%;
          height: 50px;
          border-bottom: solid black 1px;
          transition: ease 1s;
          cursor: pointer;
        }
          .plan-img-box{
            width: 100%;
            height: 0;
            transition: ease 0.6s;
          }
            .plan-img-box img{
              width: 100%;
              height: 100%;
              object-fit: cover;
            }
          .plan-desc{
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
          }
            .plan-desc h6{
              font-size: 1.2rem;
              font-weight: normal;
              color: var(--sub-font-color);
              font-family: var(--main-font);

              margin: 0;
            }
            .plan-info{
              display: none;
            }
              .desc{
                font-size: 0.6rem;
                color: var(--sub-font-color);
                font-family: var(--main-font);
                margin: 0;
                display: flex;
                align-items: end;
              }
              .price{
                font-size: 1rem;
                color: var(--sub-font-color);
                font-family: var(--main-font);
                margin: 0;
                display: flex;
                align-items: end;
              }
                .price span{
                  font-size: 0.6rem;
                }
        .plan.active{
          height: 60%;
          cursor: default;
        }
          .plan.active .plan-img-box{
            height: 200px;
            margin-top: 20px;
          }
          .plan.active .plan-desc{
            display: block;
          }
            .plan.active .plan-desc h6{
              margin: 30px 0 10px 0;
            }
              .plan.active .plan-info{
                width: 100%;
                display: flex;
                justify-content: space-between;
                align-items: end;
              }
          

    .block-experience{
      width: 1000px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      background-color: var(--main-bg-color);
    }
        .block-experience .box-title h4{
          color: var(--sub-font-color);
        }
        .block-experience .stay-text{
          color: var(--sub-font-color);
        }
      .block-experience .box-plan-list .plan{
        color: var(--sub-font-color);
      }
        .block-experience .box-plan-list h5{
          color: var(--sub-font-color);
        }
            .block-experience .plan-desc h6{
              color: var(--sub-font-color);
            }
              .block-experience .plan-info p{
                color: var(--sub-font-color);
              }

    .block-food{
      width: 1000px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      background-color: var(--main-bg-color);
    }
        .block-food .box-title h4{
          color: var(--sub-font-color);
        }
        .block-food .stay-text{
          color: var(--sub-font-color);
        }
      .block-food .box-plan-list .plan{
        color: var(--sub-font-color);
      }
        .block-food .box-plan-list h5{
          color: var(--sub-font-color);
        }
            .block-food .plan-desc h6{
              color: var(--sub-font-color);
            }
              .block-food .plan-info p{
                color: var(--sub-font-color);
              }

    .block-howto{
      width: 700px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      background-color: var(--sub-bg-color);
    }
      .box-howto{
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
      }
        .box-howto .box-title h4{
          color: var(--main-font-color);
        }
        .box-howto .howto-text p{
          color: var(--main-font-color);
          font-size: 0.7rem;
          font-weight: 100;
          font-family: var(--main-font);
          line-height: 1.3rem;
        }
        .howto-section{
          font-size: 1rem !important;
        }

    .block-info{
      width: 1000px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      background-color: var(--main-bg-color);
    }
      .box-info{
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
      }
        .box-info .box-title{
          color: var(--sub-font-color);
        }
        .box-info .info-text p{
          color: var(--sub-font-color);
          font-size: 0.8rem;
          font-weight: 100;
          font-family: var(--main-font);
        }


    .block-footer{
      width: 100vw;
      height: 100dvh;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10%;
      background-color: var(--sub-bg-color);
    }
      .box-footer-nav{
        max-width: 600px;
        width: 100%;
        max-height: 70%;
        height: 100%;

        display: flex;
        flex-direction: column;
        justify-content: center;
      }
        .footer-nav-links{
          border-bottom: #ffffff solid 1px;
          padding: 30px 0;
          display: flex;
          flex-direction: column;
        }
          .footer-nav-links a{
            color: var(--main-font-color);
            font-family: var(--main-font);
          }
        .footer-nav-contact{
          display: flex;
          justify-content: space-between;
          align-items: center;

          color: var(--main-font-color);
          font-family: var(--main-font);
        }
      .box-footer-map{
        max-width: 600px;
        width: 100%;
        max-height: 70%;
        height: 100%;

        display: flex;
        flex-direction: column;
        justify-content: center;
      }
        .box-footer-map iframe{
          width: 100%;
          height: auto;
          aspect-ratio: 5 / 3;
        }