: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;  
    overflow-y: hidden;
  }
    .blocks{
      height: 100dvh;
    }
    .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;
    }
      .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: 100vw;
      height: 100%;
      position: relative;
      top: 0;
      left: 0;
    }
      .top-video-box{
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
      }
        .top-video-box video{
          width: 100%;
          height: 100%;
          object-fit: cover;
        }
      .top-video-desc{
        position: absolute;
        top: 50%;
        right: 15%;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        z-index: 2;
        width: auto;
        max-width: 900px;
        width: 100%;
      }
        .top-video-desc span{
          display: flex;
          align-items: center;
          justify-content: end;
          gap: 20px;
        }
        .top-video-desc span::after{
          content: '';
          display: block;
          width: 50%;
          height: 1px;
          background: var(--main-font-color);
        }
          .top-video-desc span a{
            color: var(--main-font-color);
            font-family: var(--main-font);
            white-space: nowrap;
          }

    .block-concept{
      width: 1000px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      /* padding: 200px 0; */
    }
      .box-concept{
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
      }
        .box-concept-video{
          width: 100%;
          height: 35%;
        }
          .box-concept-video iframe{
            width: 100%;
            height: 100%;
          }
        .concept-text{
          width: auto;
          font-family: var(--main-font);
        }
          .concept-text h6{
            font-size: 1.5rem;
            font-weight: normal;
          }
          .concept-text span{
            font-size: 1rem;
            color: #a5a5a5;
          }
          .concept-text p{
            font-size: 1rem;
            font-weight: lighter
          }

    .block-service{
      width: 1000px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      background-color: var(--sub-bg-color);
    }
      .all-service{
        height: 100%;
        position: relative;
      }
        .box-texts{
          position: absolute;
          top: 0;
          left: 0;
          height: 100%;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
        }
          .block-service .box-title h4{
            color: var(--main-font-color);
          }
          .service-text{
            width: auto;
            font-family: var(--main-font);
            color: var(--main-font-color);
          }
            .service-text h6{
              margin: 5px 0 30px;
              font-size: 1.5rem;
              font-weight: normal;
            }
            .service-text span{
              font-size: 1rem;
              color: #a5a5a5;
            }
            .service-text p{
              font-size: 1rem;
              font-weight: 100;
            }
            .service-text a{
              text-decoration: none;
              color: var(--sub-bg-color);
              background-color: #ffffff;
              padding: 10px 20px;
            }
        .box-slider{
          position: absolute;
          height: 100vh;
          width: 300px;
          right: 0;
          top: 50%;
          transform: translateY(-50%);
          -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
          overflow: hidden;
        }
          .vertical-slider{
            width: 100%;
            height: 100%;
          }
            .vertical-slider ul{
              width: 100%;
              height: 100%;
              display: flex;
              flex-direction: column;
              gap: 30px;
              list-style: none;

              margin: 0;
              padding: 0;
            }
              .vertical-slider ul li{
                width: 300px;
                height: 400px;
                flex-shrink: 0;
              }
                .vertical-slider ul li img{
                  width: 100%;
                  height: 100%;
                  object-fit: cover;
                }
    .block-about-us{
      width: 1000px;
      height: calc(100% - 20vh);
      padding: 10vh 150px;
      background-color: var(--main-bg-color);
    }
      .box-about-us{
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
      }
        .box-about-us .box-title{
          color: var(--sub-font-color);
        }
      .about-family{
        width: 100%;
        height: auto;
        display: flex;
        justify-content: space-between;
        gap: 50px;
      }
        .about-messege{
          width: 50%;
          height: auto;
          display: flex;
          justify-content: left;
        }
          .about-family-desc{
            width: 100%;
            padding: 0 30px;
          }
          .about-family-desc p{
            font-family: var(--main-font);
            color: var(--sub-font-color);
            font-size: 0.7rem;
          }
          .about-family-img{
            width: 200px;
            height: 200px;
          }
            .about-family-img img{
              width: 100%;
              height: 100%;
              object-fit: cover;
            }
        .box-about-us .about-us-text p{
          color: var(--sub-font-color);
          font-weight: 100;
          font-family: var(--main-font);
        }
          .about-us-concept{
            padding-bottom: 30px;
            border-bottom: solid #000000 1px ;
            font-size: 1rem;
          }
          .about-us-info{
            margin-top: 20px;
            line-height: 2rem;
            font-size: 0.7rem;
          }


    .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;
        }