@charset "UTF-8";
/* ========================
TOPページ全体
======================== */

/* ========================
メインビジュアル部分
======================== */
#mainvisual {
  position: relative;
  /* margin-bottom: var(--margin-hero-pc); */
}

#mainvisual img {
  display: block;
  width: 100%;
  height: 100vh;
  object-fit: cover;
}

#mainvisual .text {
  font: var(--font-hero-title);
  position: absolute;
  text-shadow: 2px 2px 8px var(--color-base);
  top: 50%;
  left: 100px;
  transform: translateY(-50%);
}

/*スマートフォン*/
@media screen and (max-width: 767px) {
  #mainvisual {
    /* margin-bottom: var(--margin-hero-sp); */
  }

  #mainvisual .text {
    font-size: var(--size-hero-title-sp);
    writing-mode: vertical-rl;
    text-orientation: upright;
    height: max-content;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}

/*PCでmax-width超過したら*/
@media screen and (min-width: 1240px) {
  #mainvisual .text {
    /*1240pxを超えたら、その時点に留まるように*/
    left: calc((100vw - 1240px) / 2 + 100px);
  }
}

/* ========================
特徴
======================== */
#features .item-list {
  max-width: var(--width-contents-large);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  gap: var(--gutter-small-pc);
}

#features .item-list li {
  width: 33.333%;
  max-width: 250px;
}

#features .item-list li .content-title {
  margin-bottom: var(--margin-element-small-pc);
  text-align: center;
}

#features .item-list li .img-box {
  margin-bottom: var(--margin-element-small-pc);
  display: flex;
  justify-content: center;
  align-items: center;
}

#features .item-list li img {
  width: 218px;
  border-radius: 50%;
}

/*スマートフォン*/
@media screen and (max-width: 767px) {
  #features .item-list {
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: var(--gutter-extra-large-sp);
  }

  #features .item-list li {
    width: 100%;
    max-width: 250px;
  }
}

/* ========================
座席
======================== */
#seat {
  padding: var(--margin-section-pc) 0;
  background-color: var(--color-base-second);
}

#seat .card-list {
  margin-bottom: var(--margin-element-large-pc);
}

#seat .card-list .card {
  margin: 0 var(--gutter-large-pc);
}

#seat .text-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--margin-element-large-pc);
}

#seat .text-box p {
  max-width: var(--width-contents-medium);
}

/*スマートフォン*/
@media screen and (max-width: 767px) {
  #seat {
    padding: var(--margin-section-sp) 0;
  }

  #seat .card-list {
    margin-bottom: var(--margin-element-large-sp);
  }

  #seat .card-list .card {
    margin: 0 var(--gutter-large-sp);
  }

  #seat .text-box {
    gap: var(--margin-element-large-sp);
  }
}

/* ========================
サービス
======================== */
#service .item-list {
  max-width: var(--width-contents-large);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: var(--margin-element-large-pc);
}

#service .text-box {
  width: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--margin-element-large-pc);
  padding-top: 56px;
}

#service .img-box {
  width: 50%;
  max-width: 470px;
}

.service-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--gutter-medium-pc);
  width: 100%;
  aspect-ratio: 1;
}

.grid-item img {
  width: 100%;
  height: 100%;
  display: block;
}

/*スマートフォン*/
@media screen and (max-width: 767px) {
  #service .item-list {
    flex-direction: column-reverse;
    justify-content: flex-start;
    align-items: center;
    gap: var(--margin-element-large-sp);
  }

  #service .text-box {
    width: 100%;
    max-width: var(--width-contents-medium);
    gap: var(--margin-element-large-sp);
    padding-top: 0;
  }

  #service .img-box {
    width: 99%;
  }

  .service-grid {
    gap: var(--gutter-large-sp);
  }
}
