@charset "UTF-8";
/*============================================================
	Base
============================================================*/
html,
body {
  width: 100%;
  overflow-x: hidden;
}
@media only screen and (max-width: 767px) {
  html,
  body {
    min-height: 100vh;
  }
}

html {
  font-family: "Noto Serif JP", serif;
  font-size: 18px;
  font-weight: 400;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0.05em;
  -webkit-font-feature-settings: "palt";
     -moz-font-feature-settings: "palt";
          font-feature-settings: "palt";
  color: #333;
  word-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media only screen and (max-width: 767px) {
  html {
    font-size: 3.7333333333vw;
    -webkit-text-size-adjust: 100%;
  }
}
@media print, screen and (min-width: 768px) and (max-width: 1500px) {
  html {
    font-size: 1.2vw;
  }
}
html * {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
  letter-spacing: 0.05em;
}

body {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
     -moz-box-orient: vertical;
     -moz-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
}
body.cn {
  font-family: "Noto Serif SC", serif;
}
body.kr {
  font-family: "Noto Serif KR", serif;
}

img {
  width: 100%;
  height: auto;
}
img[src$=".svg"] {
  max-width: 100%;
}

a,
a * {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  color: #333;
  text-decoration: none;
  outline: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

@media print, screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

header,
main,
section,
footer {
  width: 100%;
}

main {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
     -moz-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  min-height: 1px;
}

section {
  padding: 5.5555555556rem 0;
}
@media only screen and (max-width: 767px) {
  section {
    padding: 3.5714285714rem 0;
  }
}

/*============================================================
	Commmon
============================================================*/
@media only screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
}

@media print, screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

.inner {
  width: 80vw;
  max-width: 1200px;
  margin-inline: auto;
}
@media only screen and (max-width: 767px) {
  .inner {
    width: 86.6666666667%;
    max-width: 86.6666666667vw;
  }
}
@media print, screen and (min-width: 768px) {
  .inner .container {
    width: 83.3333333333%;
    max-width: 1000px;
    margin-inline: auto;
  }
}

/*============================================================
	Layout
============================================================*/
.route {
  counter-reset: route;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  .route {
    grid-template-columns: 100%;
    gap: 1.7857142857rem;
  }
}
.route li figure {
  counter-increment: route;
  position: relative;
  margin-bottom: 0.5555555556rem;
}
@media only screen and (max-width: 767px) {
  .route li figure {
    margin-bottom: 0.3571428571rem;
  }
}
.route li figure::before, .route li figure::after {
  position: absolute;
  width: 2.7777777778rem;
  height: 2.7777777778rem;
  right: 0;
  top: 0;
}
.route li figure::before {
  content: "";
  background: #333;
}
.route li figure::after {
  content: counter(route);
  line-height: 2.7777777778rem;
  text-align: center;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
}
.route li p {
  line-height: 1.4;
  padding: 0.5555555556rem 0;
  border-bottom: solid 1px #ccc;
}
.route li p:nth-of-type(3) {
  font-family: "Noto Serif SC", serif;
}
.route li p:last-of-type {
  font-family: "Noto Serif KR", serif;
}

h2 {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1em;
  text-align: center;
}

h3 {
  width: 100%;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1em;
  margin-top: 1.5em;
  border-top: solid 3px #333;
  border-bottom: solid 3px #333;
  padding: 0.8333333333rem;
  text-align: center;
  position: relative;
  line-height: 1.4;
}
h3::before, h3::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 1px;
  left: 0;
  background: #333;
}
h3::before {
  top: 0.2777777778rem;
}
h3::after {
  bottom: 0.2777777778rem;
}

strong {
  color: #f00;
}

#guide .inner .container .tab__wrap {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
     -moz-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
@media only screen and (max-width: 767px) {
  #guide .inner .container .tab__wrap {
    width: 100vw;
    margin-left: -6.6666666667vw;
  }
}
#guide .inner .container .tab__wrap .tab a {
  display: block grid;
  place-items: center;
  height: 3.3333333333rem;
  background: #333;
}
#guide .inner .container .tab__wrap .tab a span {
  text-align: center;
  color: #fff;
  white-space: nowrap;
}
@media only screen and (max-width: 767px) {
  #guide .inner .container .tab__wrap .tab a span {
    font-size: 80%;
    line-height: 1.2;
  }
}
#guide .inner .container .tab__wrap .tab a.selected {
  height: 4.4444444444rem;
  background: transparent;
  border-top: solid 1px #333;
  border-right: solid 1px #333;
  border-left: solid 1px #333;
}
#guide .inner .container .tab__wrap .tab a.selected span {
  color: #333;
}
#guide .inner .container .tab__wrap .tab:first-child a {
  border-left: solid 1px #333;
}
#guide .inner .container .tab__wrap .tab:not(:last-child) {
  position: relative;
}
#guide .inner .container .tab__wrap .tab:not(:last-child)::after {
  position: absolute;
  content: "";
  background: #333;
  width: 5px;
  height: 1px;
  right: -5px;
  bottom: 0;
}
#guide .inner .container .tab__wrap.bottom {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
     -moz-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
#guide .inner .container .tab__wrap.bottom .tab::after {
  top: 0;
}
#guide .inner .container .tab__wrap.bottom .tab a.selected {
  border-top: none;
  border-bottom: solid 1px #333;
}
#guide .inner .container .contents {
  padding: 2.7777777778rem 0;
}
#guide .inner .container .contents .tab__main {
  display: none;
}
#guide .inner .container .contents .tab__main.active {
  display: block;
}

@media print, screen and (min-width: 768px) {
  #checkin dl {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
  }
}
#checkin dl:not(:last-child) {
  padding-bottom: 1em;
  margin-bottom: 1em;
  border-bottom: solid 1px #ccc;
}
#checkin dl dt, #checkin dl dd {
  line-height: 1.5;
}
@media print, screen and (min-width: 768px) {
  #checkin dl dt {
    width: 20%;
  }
}
@media only screen and (max-width: 767px) {
  #checkin dl dt {
    margin-bottom: 0.2em;
  }
}
@media print, screen and (min-width: 768px) {
  #checkin dl dd {
    width: 80%;
  }
}
#checkin dl dd span {
  display: block;
}
#checkin dl dd span::before {
  content: "■";
}
#checkin dl dd span:not(:first-child) {
  margin-top: 1em;
}
#checkin dl dd ul li {
  padding-left: 1em;
  text-indent: -1em;
}
#checkin dl dd ul li::before {
  content: "・";
}
#checkin dl dd .modal {
  display: block;
  margin-top: 0.5em;
  width: 15.5555555556rem;
  height: 2.7777777778rem;
  line-height: 2.7777777778rem;
  border-radius: 1.3888888889rem;
  background: #333;
  color: #fff;
  text-align: center;
  position: relative;
}
#checkin dl dd .modal::after {
  position: absolute;
  content: "";
  width: 0.5555555556rem;
  height: 0.5555555556rem;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  top: 50%;
  right: 1.3888888889rem;
  -webkit-transform: translateY(-50%) rotate(-45deg);
          transform: translateY(-50%) rotate(-45deg);
}
#checkin .data {
  background: #f2f2f2;
  padding: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #checkin .data {
    padding: 1.0714285714rem;
  }
}
#checkin .data dd span:first-child {
  margin-top: 0;
}

#checkout {
  display: none;
}

.modaal-container {
  max-width: 800px;
  text-align: center;
}
.modaal-container ul {
  display: inline-block;
  margin-inline: auto;
  text-align: left;
}
.modaal-container ul li {
  padding-left: 1.35em;
  text-indent: -1.35em;
  line-height: 1.4;
}
.modaal-container ul li::before {
  content: "□ ";
}
.modaal-container ul li:not(:last-child) {
  margin-bottom: 0.5em;
}

#terms p {
  line-height: 1.5;
  margin-bottom: 1em;
}
#terms p.center {
  text-align: center;
}
#terms ol li {
  line-height: 1.5;
}
#terms > ol {
  counter-reset: terms;
}
#terms > ol > li {
  counter-increment: terms;
  padding-left: 1.25em;
  text-indent: -1.25em;
}
#terms > ol > li::before {
  content: counter(terms) ". ";
}
#terms > ol > li:not(:last-child) {
  margin-bottom: 0.5em;
}
#terms > ol > li > ol {
  counter-reset: terms2;
  padding-top: 0.5em;
}
#terms > ol > li > ol > li {
  counter-increment: terms2;
  padding-left: 1.5em;
  text-indent: -1.5em;
}
#terms > ol > li > ol > li::before {
  content: "(" counter(terms2) ")";
  width: 1.5em;
  display: inline-block;
  text-align: right;
}
#terms > ol > li > ol > li:not(:last-child) {
  margin-bottom: 0.5em;
}
#terms > ol > li > ol > li > ol {
  counter-reset: terms3;
  padding-top: 0.5em;
}
#terms > ol > li > ol > li > ol > li {
  counter-increment: terms3;
  padding-left: 1.5em;
  text-indent: -1.5em;
}
#terms > ol > li > ol > li > ol > li::before {
  content: counter(terms3, lower-roman) ". ";
  width: 1.5em;
  display: inline-block;
  text-align: right;
}
#terms > ol > li > ol > li > ol > li:not(:last-child) {
  margin-bottom: 0.5em;
}

#rule > ul > li {
  background: #f2f2f2;
  padding: 2.7777777778rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
     -moz-box-orient: vertical;
     -moz-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
     -moz-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media only screen and (max-width: 767px) {
  #rule > ul > li {
    padding: 1.0714285714rem;
  }
}
#rule > ul > li h3 {
  margin-top: unset;
}
#rule > ul > li > ul:not(.list) {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
     -moz-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.5555555556rem;
}
#rule > ul > li figure {
  width: 5.5555555556rem;
  margin-bottom: 1.6666666667rem;
}
#rule > ul > li p {
  width: 100%;
  line-height: 1.5;
}
#rule > ul > li .list {
  margin: 1em 0;
  width: 100%;
  padding-left: 1em;
}
#rule > ul > li .list li {
  padding-left: 1em;
  text-indent: -1em;
  line-height: 1.5;
}
#rule > ul > li .list li::before {
  content: "・";
}
#rule > ul > li .list li:not(:last-child) {
  margin-bottom: 0.5em;
}
#rule > ul > li:not(:last-child) {
  margin-bottom: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #rule > ul > li:not(:last-child) {
    margin-bottom: 1.7857142857rem;
  }
}
@media only screen and (max-width: 767px) {
  #rule > ul > li:nth-child(4) figure {
    width: 4.2857142857rem;
  }
}
@media only screen and (max-width: 767px) {
  #rule > ul > li:nth-child(4) li:nth-child(-n+4) figure {
    margin-bottom: 0;
  }
}

#emergency > ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #emergency > ul {
    grid-template-columns: 100%;
    gap: 1.7857142857rem;
  }
}
#emergency > ul > li:not(:first-child) {
  background: #f2f2f2;
  padding: 1.6666666667rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
     -moz-box-orient: vertical;
     -moz-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
     -moz-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media only screen and (max-width: 767px) {
  #emergency > ul > li:not(:first-child) {
    padding: 1.0714285714rem;
  }
}
#emergency > ul > li:not(:first-child) dl {
  width: 100%;
}
#emergency > ul > li:not(:first-child) dl dt {
  margin-bottom: 0.5em;
}
#emergency > ul > li:not(:first-child) dl dt::before {
  content: "■";
}
#emergency > ul > li:not(:first-child) dl dd {
  line-height: 1.4;
}
#emergency > ul > li:not(:first-child) dl dd strong {
  font-size: 250%;
}
#emergency > ul > li:not(:first-child) dl:not(:last-child) {
  padding-bottom: 1.5em;
  margin-bottom: 1.5em;
  border-bottom: solid 1px #ccc;
}
#emergency > ul > li:not(:first-child) h3 {
  margin-top: unset;
}
#emergency > ul > li:not(:first-child) figure {
  width: 5.5555555556rem;
  margin-bottom: 1.6666666667rem;
}
#emergency > ul > li:not(:first-child) p {
  width: 100%;
  line-height: 1.5;
}
#emergency > ul > li:not(:first-child) ol {
  width: 100%;
  counter-reset: step;
}
#emergency > ul > li:not(:first-child) ol li {
  counter-increment: step;
  padding-left: 1.25em;
  text-indent: -1.25em;
  line-height: 1.5;
}
#emergency > ul > li:not(:first-child) ol li::before {
  content: counter(step) ". ";
}
#emergency > ul > li:not(:first-child) ol li:not(:last-child) {
  margin-bottom: 0.5em;
}
#emergency > ul > li:not(:first-child) ol + p {
  padding-top: 0.5em;
}
#emergency .attention {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
     -moz-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
     -moz-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 2.7777777778rem;
}
@media only screen and (max-width: 767px) {
  #emergency .attention {
    margin-top: 1.7857142857rem;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
       -moz-box-orient: vertical;
       -moz-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
#emergency .attention figure {
  width: 5.5555555556rem;
  margin-right: 1.6666666667rem;
}
@media only screen and (max-width: 767px) {
  #emergency .attention figure {
    margin-right: unset;
    margin-bottom: 1.0714285714rem;
  }
}
#emergency .attention p {
  font-size: 1.2rem;
  line-height: 1.5;
  font-weight: 700;
  color: #f00;
}
@media print, screen and (min-width: 768px) {
  #emergency .attention p {
    max-width: calc(100% - 7.2222222222rem);
  }
}