@charset "UTF-8";

@media (min-width: 320px) {
.container-fluid {
    padding-right: 0;
    padding-left: 0;
    margin-top: -4.5rem;
}
}

@media (min-width: 768px) {
.container-fluid {
    padding-right: 0;
    padding-left: 0;
    margin-top: -3rem;
}
}

/* トップページメインビジュアル */
/* 
body {
  background: #FFFDF2;
} */

body {
  background: #ccc;
}

.main_v {
  top: 0;
  left: 0;
  overflow: hidden;
  width: 100vw;
  background: #FFF;
}

@media (min-width: 320px) {
  .main_v {
    z-index: -1;
    height: 85vh;
    overflow: hidden;
    position: fixed;
  }

}


@media (min-width: 768px) {

  .main_v {
    width: 100vw;
  }

  .main_v {
    height: 90vh;
  }


  .main_v img {
    width: 100%;
    height: 100%;
  }
}

@media (min-width: 1400px) {
  .main_v {
    z-index: -1;
    height: 100vh;

  }
}


.main_v .main_bg {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  -webkit-animation-delay: 0;
  animation-delay: 0;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

.main_v .main_bg:nth-of-type(1) {
  background-image: url(../images/toppage/main_v.jpg);
}

.main_v .main_bg:nth-of-type(2) {
  background-image: url(../images/toppage/main_v.jpg);
  animation-name: slide1;
  animation-delay: 0s;
  animation-duration: 15s;
  background-position: 60%;
}

.main_v .main_bg:nth-of-type(3) {
  background-image: url(../images/toppage/main_v_2.jpg);
  animation-name: slide2;
  animation-delay: 5s;
  animation-duration: 15s;
  background-position: right;
}

.main_v .main_bg:nth-of-type(4) {
  background-image: url(../images/toppage/main_v_3.jpg);
  animation-name: slide3;
  animation-delay: 5s;
  animation-duration: 15s;
}

@keyframes slide1 {
  0% {
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  40% {}

  50% {
    opacity: 1;
  }

  60% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: scale(1.);
  }
}

/*２枚目*/
@keyframes slide2 {
  0% {
    opacity: 0;
  }

  25% {
    opacity: 0;
  }

  35% {
    opacity: 1;
  }

  65% {}

  75% {
    opacity: 1;
  }

  85% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: scale(1.05);
  }
}

/*3枚目*/
@keyframes slide3 {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0;
  }

  60% {
    opacity: 1;
  }

  80% {
    opacity: 1;
  }

  90% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: scale(1.1);
  }
}

/* h1タイトル部分 */
.top_page #first {
  margin-top: 90vh;
}

@media (min-width: 320px) {
  .top_page #first .bg_1 {
    background: #FFFDF2;
    margin-top: 90vh;
    position: relative;
    padding: 30vw 0;
    display: grid;
  }
}

@media (min-width: 768px) {
  .top_page #first .bg_1 {
    margin-top: 90vh;
    padding: 10vw 0;
  }
}


@media (min-width: 320px) {

  .top_page #first .title {
    display: flex;
    justify-content: center;
    position: relative;
    order: 2;
  }

  .top_page #first .block_image {
    position: absolute;
  }
}

@media (min-width: 768px) {

  .top_page #first .title {
    order: 2;
  }

  .top_page #first .block_image,
  .top_page #first .h1_image {
    position: absolute;
  }
}

.top_page #first .block_image.right {
  top: 1vw;
  right: 0;
  max-width: 60rem;
  width: 40vw;
  display: flex;
  justify-content: flex-end;
}

.top_page #first .block_image.left {
  bottom: 1vw;
  max-width: 57rem;
  max-width: 60rem;
  width: 40vw;
  display: flex;
  justify-content: flex-start;
}

@media (min-width: 320px) {

  .top_page #first .h1_image.left {
    position: relative;
    top: -8vh;
    max-width: 32rem;
    width: 40vw;
    order: 4;
  }

  .top_page #first .h1_image.right {
    top: 26vh;
    right: 0;
    max-width: 45rem;
    width: 65vw;
    order: 3;
    margin-left: auto;
  }



  @media (min-width: 768px) {

    .top_page #first .h1_image.left {
      position: absolute;
      top: 17vh;
      left: 0;
      max-width: 32rem;
      width: 20vw;
      order: 1;
    }

    .top_page #first .h1_image.right {
      top: 28vh;
      right: 0;
      max-width: 45rem;
      width: 24vw;
      position: absolute;
    }

  }
}



/* h1文字部分 */

@media (min-width: 320px) {
  .top_page #first .title {
    margin-bottom: 10rem;
  }

  .top_page #first .title .box {
    max-width: 5rem;
    position: absolute;
    z-index: 1;
  }

  .top_page #first .title .box:first-child {
    bottom: -5rem;
    left: 3rem;
  }

  .top_page #first .title .box:last-child {
    top: -5rem;
    right: 3rem;
  }
}

@media (min-width: 768px) {
  .top_page #first .title {
    margin-bottom: 22rem;
  }

  .top_page #first .title .box {
    max-width: 9rem;
    position: relative;
    z-index: 1;
  }

  .top_page #first .title .box:first-child {
    bottom: -6rem;
    display: flex;
    align-items: flex-end;
  }

  .top_page #first .title .box:last-child {
    top: -7rem;
  }
}


@media (min-width: 320px) {

  .top_page #first .title h1 {
    line-height: 3;
    text-align: center;
    white-space: nowrap;
  }

  .top_page #first .title h1 {
    font-size: 3.8vw;
  }

  .top_page #first .title h1 span {
    font-size: 4vw;
    line-height: 3;
    border-radius: 8rem;
  }

}


@media (min-width: 768px) {

  .top_page #first .title h1 {
    writing-mode: vertical-rl;
    line-height: 3.2;
  }

  .top_page #first .title h1 {
    font-size: 2.4rem;
    letter-spacing: 1px;
  }

  .top_page #first .title h1 span {
    font-size: 2.8rem;
    line-height: 2.8;
    border-radius: 8rem;
  }

}

.top_page #first .title h1 span.orange {
  background: rgba(255, 223, 128, 0.16);
  box-shadow: 0 2px 40px 8px rgba(255, 223, 128, 0.24);
}

.top_page #first .title h1 span.yellow {
  background: rgba(255, 244, 128, 0.18);
  box-shadow: 0 4px 40px 8px rgba(255, 244, 128, 0.24);
}




@media (min-width: 320px) {
  .top_page #first .bg_1 .explain {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4rem;
    order: 4;
  }

  .top_page #first .bg_1 .explain img {
    order: 2;
    margin-left: auto;
    right: -1.5rem;
    position: relative;
    width: 70vw;
  }

  .top_page #first .bg_1 .explain p {
    font-size: 3.6vw;
    letter-spacing: 2px;
    line-height: 2;
    order: 1;
  }

}

@media (min-width: 768px) {
  .top_page #first .bg_1 .explain {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6rem;
    order: 3;
  }

  .top_page #first .bg_1 .explain img {
    order: 1;
  }

  .top_page #first .bg_1 .explain p {
    font-size: 2.2rem;
    letter-spacing: 2px;
    line-height: 2;
    order: 2;
  }

  .top_page #first .bg_1 .explain img {
    position: relative;
    max-width: 45%;
    order: 1;
  }

}

@media (min-width: 320px) {
#cuisine_section {
  overflow: hidden;
  padding-bottom: 4rem;
}

}


@media (min-width: 768px) {
  #cuisine_section {
    overflow: hidden;
    padding-bottom: 3rem;
  }
  
  }
#cuisine_section {
  overflow: hidden;
}

/* ディナー--------------------------- */

#cuisine_section .dinner {
  background: url(../images/common/bg_pattern_01.png);
  background-position: top;
  padding: 10vw 0;
}


@media (min-width: 320px) {
  .h2_bg {
    display: flex;
    background: #FFF;
    border-radius: 7px;
    z-index: 1;
    writing-mode: vertical-rl;
    padding: 2rem 2rem;
    white-space: nowrap;
  }

  .h2_block {
    display: flex;
    position: relative;
    margin-bottom: 10rem;

  }

  .right .h2_block {
    justify-content: flex-end;
  }
}

@media (min-width: 1080px) {
  .h2_bg {
    display: flex;
    border-radius: 7px;
    max-width: 360px;
    padding: 3rem 3rem;
  }

  .h2_block {
    margin-bottom: calc(15rem + 5vw);
  }

  .right .h2_block {
    justify-content: flex-end;
  }
}

@media (min-width: 320px) {
  .h2_bg h2 {
    font-family: "Yuji Syuku";
    font-size: 30px;
    letter-spacing: 2px;
    margin: 0 1rem;
    margin-top: 5rem;
  }

  .h2_bg p {
    font-size: 18px;
    letter-spacing: 1px;
    margin: 0.5rem;
  }

  .h2_bg p:nth-child(2) {
    margin-top: 3rem;
  }
}

@media (min-width: 1080px) {
  .h2_bg h2 {
    font-size: 46px;
    letter-spacing: 3px;
    margin: 0 2rem 1rem;
    margin-top: 16rem;
  }

  .h2_bg p {
    font-size: 27px;
    letter-spacing: 3px;
    margin: 2rem 1.25rem 2.5rem;
  }

  .h2_bg p:nth-child(2) {
    margin-top: 14rem;
  }
}

@media (min-width: 320px) {
  .title_image {
    z-index: 0;
    max-width: 1180px;
    width: 70vw;
    height: 45vw;
    bottom: -6rem;
    position: absolute;
    order: 2;
  }

  .right .title_image {
    right: 10rem;

  }

  .left .title_image {
    left: 10rem;

  }

  .title_image img {
    object-fit: cover;
    height: 100%;
  }

  .right .h2_block .h2_bg {
    order: 1;
    right: -1.5rem;
    position: relative;
    white-space: nowrap;
  }

  .h2_bg .illust {
    width: 7rem;
    position: relative;
    top: -2rem;
    margin-bottom: -2rem;
  }
}


@media (min-width: 1080px) {
  .title_image {
    max-width: 1080px;
    width: 110vw;
    margin-top: 5vw;
    right: 8vw;
    bottom: auto;
    height: auto;
    position: absolute;
    order: 1;
  }

  .right .h2_bg {
    order: 2;
    right: -1.5rem;
  }

  .h2_bg .illust {
    width: 9rem;
  }
}



@media (min-width: 320px) {
  #cuisine_section .left {
    margin-bottom: 4rem;
  }

  #cuisine_section .explain_block {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem;
  }

  #cuisine_section .explain_block .explain p {
    font-size: 16px;
    letter-spacing: 1px;
    line-height: 2;
    margin-bottom: 4rem;
  }

  #cuisine_section .explain_block .image {
    display: flex;
    position: relative;
    gap: 2rem;
    width: 90vw;
    padding-right: 5rem;
  }

  #cuisine_section .explain_block .image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }

  #cuisine_section .dinner .image img:nth-child(1) {
    width: 50%;

  }

  #cuisine_section .dinner .image img:nth-child(2) {
    width: 40%;

  }
}


@media (min-width: 768px) {
  #cuisine_section .explain_block {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
  }

  #cuisine_section .explain_block .explain {
    width: 40%;
  }

  #cuisine_section .explain_block .explain p {
    font-size: 18px;
    letter-spacing: 1.4px;
    line-height: 2.2;
    margin-bottom: 6rem;
  }

  #cuisine_section .explain_block .image {
    display: flex;
    position: relative;
    gap: 3rem;
    right: -4vw;
    width: 50%;
  }
}


/* ランチ--------------------------- */
#cuisine_section .lunch {
  background: url(../images/common/bg_pattern_02.png);
  background-position: top;
  padding: 10vw 0;
  background-color: #FFFDF2;
}

@media (min-width: 320px) {
  .left .h2_block {
    justify-content: flex-start;
  }

  #cuisine_section .explain_block .notes {
    position: absolute;
    writing-mode: vertical-rl;
    right: -2vw;
    top: -3rem;
    height: 170px;
  }
  #cuisine_section .lunch .h2_bg h2{
    margin-top: 4rem;
  }
  #cuisine_section .explain_block .notes p {
    z-index: 1;
    position: absolute;
    padding: 0.75rem 0.75rem 0.75rem 1.5rem;
    margin: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.6rem;
    line-height: normal;
  }

  #cuisine_section .explain_block .notes img {
    position: relative;
    z-index: 0;
  }

  #cuisine_section .left .explain_block .image {
    order: 2;
    justify-content: flex-end;
  }

  #cuisine_section .explain_block .image .notes+img {
    width: 82%;
  }

  #cuisine_section .left .explain {
    order: 1;
  }
}

@media (min-width: 1080px) {
  #cuisine_section .left {
    margin-bottom: 10rem;
  }

  .left .h2_block .title_image {
    left: 8vw;
    order: 1;
  }
  #cuisine_section .lunch .h2_bg h2{
    margin-top: 8rem;
  }
  #cuisine_section .explain_block .notes {
    right: -0.75vw;
    top: -4rem;
    height: 195px;
  }

  #cuisine_section .left .explain_block {
    justify-content: flex-end;
  }

  #cuisine_section .explain_block .notes p {
    padding: 1rem 1rem 1rem 2rem;
    font-size: 2rem;
  }

  #cuisine_section .left .explain_block .image {
    right: -1vw;
    order: 1;
  }

  #cuisine_section .left .explain {
    right: -4vw;
    position: relative;
  }

  .h2_bg.left {
    order: 2;
    right: -1.5rem;
  }


}


/* 宴会コース */
@media (min-width: 320px) {
  .banquet_menu {
    background: url(../images/toppage/banquet_bg.jpg)center center / cover no-repeat;
    padding: 3vw 0 33vw;
    position: relative;
  }
  
   .banquet_box{
display: grid;
justify-items: center;
width: 100%;
  }
}

@media (min-width: 1080px) {
  .banquet_menu {
    padding: 3vw 0 15vw;
    position: relative;
  }
}

@media (min-width: 320px) {
  .course__sub {
    font-size: 15px;
    letter-spacing: .1em;
    margin-bottom: 2rem;
  }

  .course__title {
    font-family: "Yuji Syuku";
    font-size: 3.6rem;
    font-weight: 500;
    margin-bottom: 3rem;
  }


  .course__text {
    letter-spacing: 2px;
    font-size: 1.4rem;
    line-height: 2;
    margin-bottom: 4rem;
    width: 100%;
  }

  .course__content {
    text-align: center;
    display: grid;
    justify-items: center;
    color: #fff;
    margin: auto;
    padding-top: 3rem;
    z-index: 6;
    position: relative;
  }

  .course__content .basic_btn {
    margin: auto;
    z-index: 6;
    width: 86%;
  }
}

@media (min-width: 768px) {
  .course__sub {
    font-size: 18px;
    letter-spacing: .15em;
    margin-bottom: 2.5rem;
  }

  .course__title {
    font-size: 5rem;
    margin-bottom: 4rem;
  }

  .course__text {
    letter-spacing: 2px;
    font-size: 1.6rem;
    line-height: 2.4;
    margin-bottom: 5rem;
    width: 50%;
  }
  .course__content .basic_btn {
    width: 100%;
  }
}

@media (min-width: 320px) {
  .banquet_menu .image_content {
    position: relative;
    bottom: 32vw;
  }

  .floating {
    position: absolute;
    z-index: 5;
    box-shadow:
      0 20px 40px rgba(0, 0, 0, .3);
    max-width: 200px;
    width: 16.5vw;
  }

  .cat_illust {
    position: absolute;
    z-index: 5;
    width: 20vw;
    right: 2vw;
    top: 12rem;
  }

  .floating01 {

    left: 0vw;
    top: 15.28vw;
  }

  .floating02 {
    left: 4.44vw;
    top: 35.5vw;
  }

  .floating03 {
    right: 0vw;
    top: 17.36vw;
  }

  .floating04 {
    right: 5vw;
    top: 36vw;
  }

}

@media (min-width: 1080px) {
  .banquet_menu .image_content {
    position: relative;
    bottom: 29vw;
  }

  .floating {
    max-width: 260px;
    width: 12.5vw;
  }

  .cat_illust {
    width: 16vw;
        right: 4vw;
        max-width: 220px;
        top: 13rem;
  }

  .floating01 {

    left: 0vw;
    top: 15.28vw;
  }

  .floating02 {
    left: 15.44vw;
    top: 24.5vw;
  }

  .floating03 {
    right: 0vw;
    top: 17.36vw;
  }

  .floating04 {
    right: 14vw;
    top: 25vw;
  }
}

@media (min-width: 320px) {
  .noren_course_bg {
    background: url(../images/toppage/noren_course_sp.png)center center / cover no-repeat;
    height: 34vw;
    max-height: 220px;
    width: 100vw;
    z-index: 4;
    position: relative;
    width: auto;
  }

}


@media (min-width: 768px) {
  .noren_course_bg {
    background: url(../images/toppage/noren_course.png)center center / cover no-repeat;
    height: 14vw;
    max-height: 220px;
  }

}

@media (min-width: 320px) {
  .seating-infomation {
    background: #E4DED1;
    padding-top: 30vw;
    padding-bottom: 12rem;
    margin-top: -34vw;

  }
}

@media (min-width: 1080px) {
  .seating-infomation {
    padding-top: 40rem;
    padding-bottom: 18rem;
    margin-top: -22rem;
  }
}

.seating-infomation .ex {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: 2rem;
}

@media (min-width: 320px) {
  .seating-infomation .image_content {
    width: 100%;
  }

  .garary_block {
    width: 90vw;
  }

  .seating-infomation .text_content {
    width: 100%;
    padding-top: 8rem;
  }

  .seating-infomation .text {
    writing-mode: vertical-rl;
    display: grid;
    align-content: center;
    margin-bottom: 0;
    width: 100%;
  }

  .seating-infomation .basic_btn {
    margin: auto;
    position: absolute;
    bottom: 5rem;
    width: 90%;
  }
}

@media (min-width: 1080px) {
  .seating-infomation .image_content {
    width: auto;
  }

  .garary_block {
    position: absolute;
    width: 52vw;
  }

  .seating-infomation .text_content {
    width: 35%;
    display: grid;
    justify-items: center;
    padding-top: 0;
  }

  .seating-infomation .text p {
   height: 26vw;
        letter-spacing: -1px;
        max-height: 400px;
        font-size: 1.5rem;
        line-height: 2.2;
  }

  .seating-infomation .text {
    margin-bottom: 3rem;
  }

  .seating-infomation .basic_btn {
    margin: auto;
    bottom: 11rem;
  }
}

.seating-infomation .text h2 {
  font-family: "Yuji Syuku";
  font-size: 4.4rem;
}