@charset "UTF-8";
/*==================================================

** index
==================================================*/
#mainvisual {
  background: url("../img/index/mainvisual_bg_pc.webp") no-repeat center center/cover;
  height: 728px;
  position: relative; }
  #mainvisual .txtbox {
    position: absolute;
    left: 4.7%;
    bottom: 88px; }
  #mainvisual .mv-ttl, #mainvisual .mv-txt {
    color: #fefefe;
    font-weight: 900;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8); }
  #mainvisual .mv-ttl {
    font-size: 4.0rem; }
  #mainvisual .mv-txt {
    margin-top: 12px;
    font-size: 2.4rem; }
  #mainvisual .reserve-btn {
    width: 360px;
    margin-top: 32px; }
  #mainvisual .reserve-a {
    background: #fefefe;
    width: 100%;
    position: relative;
    font-weight: 900;
    font-size: 1.8rem;
    padding: 24px; }
    #mainvisual .reserve-a:before {
      content: "";
      background: url("../img/common/ico_reserve_bk.svg") no-repeat center center/contain;
      display: block;
      width: 18px;
      aspect-ratio: 1;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 32px;
      margin: auto; }
    #mainvisual .reserve-a:hover {
      opacity: .7; }

#indexContent .contentsec .phtbox {
  width: 53.9%; }
#indexContent .contentsec .txtbox {
  width: 40.4%; }
  #indexContent .contentsec .txtbox .catch {
    width: 40px; }
  #indexContent .contentsec .txtbox .txt {
    margin-top: 60px;
    width: calc(100% - 14% - 40px); }
    #indexContent .contentsec .txtbox .txt .jp {
      font-size: 1.4rem; }
#indexContent .contentsec + .contentsec {
  margin-top: 96px; }

#indexExperience {
  color: #fefefe;
  padding-block: 124px;
  clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0);
  position: relative; }
  #indexExperience:before {
    content: "";
    background: url("../img/index/index_experience_bg_pc.webp") no-repeat center center/cover;
    position: fixed;
    inset: 0;
    z-index: -1; }
  #indexExperience h2 {
    margin-top: 0; }
    #indexExperience h2 .en {
      font-size: 3.2rem; }
    #indexExperience h2 .jp {
      font-size: 2.0rem;
      margin-top: 16px; }
  #indexExperience p.en {
    font-size: 1.8rem; }
  #indexExperience p.jp {
    font-size: 1.4rem;
    line-height: 160%; }
  #indexExperience p + p {
    margin-top: 40px; }

#indexVideo .videobox iframe {
  width: 100%;
  aspect-ratio: 960/540; }

#indexPrice .box + .box {
  margin-top: 56px;
  padding-block: 56px 0;
  border-top: 1px solid #ccc; }
#indexPrice .note {
  margin-top: 32px;
  font-size: 1.4rem; }
  #indexPrice .note:before {
    content: "※ "; }
#indexPrice .price-box {
  width: 50%; }
  #indexPrice .price-box dt, #indexPrice .price-box dd {
    font-weight: 900;
    text-align: center; }
  #indexPrice .price-box dt {
    font-size: 3.2rem; }
    #indexPrice .price-box dt:before {
      content: "";
      background: url("") no-repeat center center/contain;
      display: block;
      width: 32px;
      aspect-ratio: 1;
      margin-inline: auto;
      margin-bottom: 12px; }
    #indexPrice .price-box dt.ico-fee:before {
      background-image: url("../img/common/ico_yensign_bk.svg"); }
    #indexPrice .price-box dt.ico-time:before {
      background-image: url("../img/common/ico_time_bk.svg"); }
  #indexPrice .price-box dd {
    margin-top: 12px; }
    #indexPrice .price-box dd .fs-l {
      font-size: 2.4rem; }

#indexLocation .location-map iframe {
  width: 100%;
  height: 360px; }
#indexLocation .location-tbl {
  margin-top: 32px;
  width: 47.1%; }
  #indexLocation .location-tbl tr {
    border-bottom: 1px solid #ddd; }
  #indexLocation .location-tbl th, #indexLocation .location-tbl td {
    padding: 24px 16px 24px 0; }
  #indexLocation .location-tbl th {
    width: 154px;
    font-weight: 900; }

#indexReservation h3 span {
  display: block; }
#indexReservation h3 .jp {
  font-size: 2.0rem;
  margin-top: 12px; }
#indexReservation .calendarbox {
  margin-top: 64px; }
  #indexReservation .calendarbox iframe {
    height: 700px; }
  #indexReservation .calendarbox img {
    display: inline;
    width: auto; }

@media screen and (max-width: 960px) {
  #indexContent .contentsec .phtbox {
    width: 100%; }
  #indexContent .contentsec .txtbox {
    margin-top: 32px;
    width: 100%; }
    #indexContent .contentsec .txtbox .catch {
      width: 40px; }
    #indexContent .contentsec .txtbox .txt {
      margin-top: 0;
      width: calc(100% - 70px); }
  #indexContent .contentsec + .contentsec {
    margin-top: 64px; }

  #indexLocation .location-tbl th, #indexLocation .location-tbl td {
    display: block;
    width: 100%; }
  #indexLocation .location-tbl th {
    padding-bottom: 6px; }
  #indexLocation .location-tbl td {
    padding-top: 6px; } }
@media screen and (max-width: 767px) {
  #mainvisual {
    background-image: url("../img/index/mainvisual_bg_sp.webp");
    height: 100svh;
    min-height: 600px; }
    #mainvisual .txtbox {
      width: 90%;
      left: 5%;
      bottom: 40px; }
    #mainvisual .mv-ttl {
      font-size: 7vw; }
    #mainvisual .mv-txt {
      margin-top: 16px;
      font-size: 5.5vw; }
    #mainvisual .reserve-btn {
      width: 100%;
      margin-top: 24px; }

  #indexContent .contentsec .txtbox .catch {
    width: 7.7%; }
  #indexContent .contentsec .txtbox .txt {
    width: calc(100% - 8.3% - 7.7%); }

  #indexExperience {
    padding-block: 96px; }
    #indexExperience h2 {
      margin-top: 0; }
      #indexExperience h2 .en {
        font-size: min(6.5vw, 2.6rem); }
      #indexExperience h2 .jp {
        font-size: 1.6rem;
        margin-top: 16px; }
    #indexExperience:before {
      background-image: url("../img/index/index_experience_bg_sp.webp"); }

  #indexPrice .note {
    margin-top: 32px;
    padding-left: 24px;
    position: relative; }
    #indexPrice .note:before {
      position: absolute;
      top: 0;
      left: 0; }
  #indexPrice .price-box {
    width: 100%; }
    #indexPrice .price-box + .price-box {
      margin-top: 48px; }
    #indexPrice .price-box dt {
      font-size: 2.6rem; }

  #indexLocation .location-tbl {
    margin-top: 8px;
    width: 100%; }
    #indexLocation .location-tbl + .location-tbl {
      margin-top: 24px; }

  #indexReservation h3 .en {
    font-size: 2.6rem; }
  #indexReservation h3 .jp {
    font-size: 1.6rem; }
  #indexReservation .calendarbox iframe {
    height: 80svh; } }
