@charset "UTF-8";
*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  font-size: 62.5%;
}
@media screen and (max-width: 750px) {
  html {
    font-size: 1.3333333333vw;
  }
}

body,
p,
h1,
h2,
h3,
ul,
ol,
li,
figure {
  margin: 0;
  padding: 0;
}

h1,
h2,
h3 {
  font-size: inherit;
  font-weight: inherit;
}

ul,
ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

button {
  -webkit-appearance: none;
  appearance: none;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: inherit;
  cursor: pointer;
}

del,
s {
  text-decoration: none;
}

body {
  font-family: "A1明朝", "A1 Mincho", "Noto Serif JP", "游明朝", "Yu Mincho", serif;
  font-weight: 500;
  font-feature-settings: "palt";
  color: #000;
  background: #000;
}

#top {
  overflow-x: hidden;
}
#top .pc-bg {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  background: #000 url("../images/pc-bg.jpg") no-repeat center/cover;
}
#top .inner {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  width: 100%;
  max-width: 75rem;
  background: #fdf6e2;
}

.banner {
  height: 9rem;
  padding-top: 1rem;
  background: #b7282d;
  color: #fff;
  text-align: center;
}
.banner__title {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 4.8rem;
  font-weight: 700;
  letter-spacing: -0.067em;
}
.banner__title .s1 {
  font-size: 3.05rem;
}
.banner__title .s2 {
  font-size: 4.15rem;
}
.banner__title .s3 {
  font-size: 3.6rem;
}
.banner__title .s4 {
  font-size: 4.7rem;
}
.banner__note {
  font-size: 1.74rem;
  line-height: 2.4rem;
  letter-spacing: 0;
}

.head {
  margin-top: var(--mt, 4.4rem);
  text-align: center;
}
.head__title {
  font-size: var(--fs, 4.4rem);
  font-weight: 700;
  line-height: 6rem;
  letter-spacing: var(--ls, 0.02em);
}
.head__title::after {
  content: "";
  display: block;
  margin: 1.6rem auto 0;
  width: 62.4rem;
  height: 0.5rem;
  background: #ed8f26;
}
.head__sub {
  margin-top: 1.1rem;
  height: 4rem;
  font-size: 3.1rem;
  line-height: 4rem;
  letter-spacing: var(--sls, 0.02em);
}

.u-mt-49 {
  margin-top: 4.9rem;
}

.heading-img {
  display: block;
  height: auto;
}

.heading-lead {
  margin: 7.4rem 0 5.1rem 9rem;
  width: 58rem;
}

.plan-section__label {
  position: absolute;
  top: -2.6rem;
  left: 15.1rem;
  width: 44.7rem;
  height: auto;
}

.plan-section__head--weekday {
  margin: 6.7rem 0 5rem 9.5rem;
  width: 56.5rem;
}
.plan-section__head--weekend {
  margin: 5.1rem 0 5.2rem 16rem;
  width: 43rem;
}

.caution-photo {
  margin-top: 1rem;
  padding-right: 6.5rem;
  font-size: 1.84rem;
  line-height: 2.8rem;
  letter-spacing: -0.046em;
  text-align: right;
}

.reserve {
  margin-inline: auto;
  width: 58rem;
}
.reserve .grid-accordion {
  overflow: hidden;
  border-radius: 4rem;
  isolation: isolate;
}
.reserve .grid-accordion > button {
  position: relative;
  display: block;
  width: 100%;
  height: 8.1rem;
  background: #af1f24;
  color: #fff;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 8.1rem;
  text-align: center;
  letter-spacing: 0.1em;
  transition: opacity 0.3s;
}
.reserve .grid-accordion > button:hover {
  opacity: 0.85;
}
.reserve .grid-accordion > button::before, .reserve .grid-accordion > button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 3rem;
  width: 2.6rem;
  height: 0.3rem;
  background: #fff;
}
.reserve .grid-accordion > button::before {
  transform: translateY(-50%);
}
.reserve .grid-accordion > button::after {
  transform: translateY(-50%) rotate(90deg);
  transition: transform 0.5s;
}
.reserve .grid-accordion > button.is-open-button::after {
  transform: translateY(-50%) rotate(0deg);
}
.reserve .grid-accordion-container {
  height: 0;
  overflow: hidden;
  background: #fff;
  transition: height 0.5s ease-out;
}
.reserve .grid-accordion-sub > button {
  position: relative;
  display: block;
  width: 100%;
  padding: 2.6rem 8rem 2.4rem 4rem;
  background: #c4b098;
  color: #fff;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1;
}
.reserve .grid-accordion-sub > button::before, .reserve .grid-accordion-sub > button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 3rem;
  width: 2.6rem;
  height: 0.3rem;
  background: #fff;
}
.reserve .grid-accordion-sub > button::before {
  transform: translateY(-50%);
}
.reserve .grid-accordion-sub > button::after {
  transform: translateY(-50%) rotate(90deg);
  transition: transform 0.5s;
}
.reserve .grid-accordion-sub > button.is-open-sub-button::after {
  transform: translateY(-50%) rotate(0deg);
}
.reserve .grid-accordion-sub + .grid-accordion-sub > button {
  border-top: 1px solid rgba(255, 255, 255, 0.6);
}
.reserve .grid-accordion-container-sub {
  height: 0;
  overflow: hidden;
  transition: height 0.5s ease-out;
}
.reserve .grid-accordion-inner-sub li {
  position: relative;
  margin-inline: 4rem;
  background: #fff linear-gradient(to right, #c4b098 2px, transparent 1px) repeat-x left bottom/10px 2px;
  color: #000;
  font-size: 2.2rem;
  line-height: 1.2;
}
.reserve .grid-accordion-inner-sub li:last-child {
  margin-bottom: 3rem;
}
.reserve .grid-accordion-inner-sub li a {
  display: block;
  padding-block: 2.4rem;
}
.reserve .grid-accordion-inner-sub li a::before {
  content: "";
  position: absolute;
  inset: 0 -4rem;
  transition: background-color 0.2s;
}
.reserve .grid-accordion-inner-sub li a:hover::before {
  background: rgba(196, 176, 152, 0.15);
}

.plan-section {
  position: relative;
  display: flow-root;
  padding-bottom: 5.5rem;
  text-align: center;
}
.plan-section--pink {
  background: #f7dcd2;
  --accent: #b4282c;
}
.plan-section--lime {
  padding-bottom: 6.5rem;
  background: #e7e8bb;
  --accent: #088c44;
}

.plan {
  margin-inline: auto;
  width: 62.4rem;
}
.plan__name {
  font-size: 4.65rem;
  font-weight: 700;
  line-height: 5.6rem;
  letter-spacing: -0.045em;
}
.plan__name .bk {
  letter-spacing: 0;
}
.plan__name .bk:first-of-type {
  margin-left: -0.2em;
}
.plan__name .bk:last-of-type {
  margin-right: -0.2em;
}
.plan__name--bk {
  letter-spacing: 0.043em;
}
.plan__price {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin-top: 1.8rem;
  padding-right: 1.4rem;
  height: 10.3rem;
}
.plan__lead {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin-right: 1.2rem;
  width: 13.4rem;
  height: 100%;
  padding-bottom: 2rem;
  text-align: left;
}
.plan__old {
  margin-bottom: 1.2rem;
  padding-left: 0.7rem;
  font-size: 3rem;
  line-height: 2.8rem;
  white-space: nowrap;
}
.plan__old del {
  position: relative;
  display: inline-block;
}
.plan__old del::after {
  content: "";
  position: absolute;
  left: -0.2rem;
  right: -0.2rem;
  top: 55%;
  border-top: 0.2rem solid var(--accent);
  transform: rotate(-8deg);
}
.plan__old small {
  font-size: 1.7rem;
}
.plan__unit {
  padding-left: 2.2rem;
  font-size: 3.8rem;
  line-height: 3.6rem;
  white-space: nowrap;
}
.plan__main {
  display: flex;
  align-items: baseline;
  position: relative;
  top: -0.7rem;
  margin-left: -1.3rem;
  color: var(--accent);
  line-height: 1;
  white-space: nowrap;
}
.plan__main strong {
  font-size: 11.7rem;
  font-weight: 500;
  letter-spacing: -0.05em;
}
.plan__main strong .c {
  margin: 0 -0.035em 0 -0.015em;
}
.plan__main .yen {
  font-size: 8.4rem;
}
.plan__main .tax {
  position: relative;
  top: -0.5rem;
  margin-left: 0;
  color: #000;
  font-size: 3.3rem;
  letter-spacing: 0.08em;
}
.plan__rule {
  margin: 0.9rem 0 0;
  height: 0.3rem;
  background: #000;
}
.plan__feature {
  display: flex;
  align-items: center;
  margin-top: 1.8rem;
  padding-left: 2.7rem;
  text-align: left;
}
.plan__time {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  margin-right: 2rem;
  width: 8.5rem;
  height: 8.5rem;
  border: 0.2rem solid #000;
  border-radius: 50%;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: 0;
}
.plan__list {
  font-size: 2.26rem;
  line-height: 3.6rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.plan__list li span {
  display: inline-block;
  margin-right: 0.3em;
}
.plan__list .point {
  color: var(--accent);
  font-weight: 700;
  letter-spacing: -0.035em;
}
.plan + .plan {
  margin-top: 3.1rem;
}
.plan--points {
  margin-bottom: -0.4rem;
}
.plan + .reserve {
  margin-top: 5.8rem;
}
.plan__note {
  margin-top: 1.5rem;
  font-size: 1.9rem;
  line-height: 2.6rem;
  letter-spacing: 0;
  text-align: center;
}

.info {
  padding: 4.6rem 0 8rem;
  background: #fdf6e2;
  text-align: center;
}
.info__label {
  font-size: 2.4rem;
  line-height: 3.4rem;
  letter-spacing: 0.18em;
}
.info__label--store {
  margin-top: 7.5rem;
}
.info__label--caution {
  margin-top: 7.8rem;
}
.info__period {
  margin-top: 3.1rem;
  line-height: 4.8rem;
  font-feature-settings: "palt";
  letter-spacing: -0.03em;
}
.info__period .y {
  font-size: 3.85rem;
}
.info__period .d {
  margin-left: 0.6rem;
  font-size: 4.9rem;
  letter-spacing: -0.07em;
}
.info__period .w {
  margin-left: -0.2rem;
  font-size: 3.2rem;
}
.info__period .e {
  margin-left: 0.7rem;
  font-size: 3rem;
}
.info__store {
  margin-top: 2rem;
  font-size: 2.39rem;
  line-height: 4.8rem;
  letter-spacing: 0;
}
.info__caution {
  margin-inline: auto;
  margin-top: 2.1rem;
  width: 66rem;
  font-size: 1.8rem;
  line-height: 3.3rem;
  font-feature-settings: normal;
  text-align: justify;
}
.info__caution .emphasis {
  color: #ac282c;
  font-weight: 700;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.intro {
  position: relative;
  height: 215rem;
  overflow: hidden;
  background: #150406;
}
.intro img {
  position: absolute;
  height: auto;
}
.intro__band {
  position: absolute;
  top: 87rem;
  left: 0;
  width: 100%;
  height: 77.1rem;
  background: #060101;
}
.intro__title {
  position: absolute;
  top: 3rem;
  left: 6rem;
  width: 64rem;
}
.intro__title img {
  position: static;
  width: 100%;
}
.intro__pot {
  top: 9.5rem;
  left: 3rem;
  width: 69.5rem;
}
.intro__lead {
  top: 64.5rem;
  left: 5rem;
  width: 65rem;
}
.intro__way {
  top: 86.5rem;
  width: 37.5rem;
}
.intro__way--1 {
  left: 0;
}
.intro__way--2 {
  left: 37.5rem;
}
.intro__flow {
  top: 95rem;
  left: 35rem;
  width: 5rem;
}
.intro__pot-final {
  top: 166.7rem;
  left: 4rem;
  width: 67rem;
}

.circles {
  position: relative;
  margin-top: 4.9rem;
  height: 103.8rem;
}
.circles li {
  position: absolute;
  top: var(--y);
  left: var(--x);
  width: 32.4rem;
}
.circles img {
  width: 100%;
  height: auto;
}

.frame-wrap {
  position: relative;
  margin: 0 auto;
  width: 62.6rem;
}
.frame-wrap .caption {
  position: absolute;
  top: 27.1rem;
  left: var(--x);
  width: var(--w);
  height: auto;
}
.frame-wrap--tall {
  margin-top: 3.2rem;
  height: 30.1rem;
}
.frame-wrap--option {
  margin-top: 3.2rem;
  height: 16.5rem;
}
.frame-wrap--set {
  margin-top: 13.4rem;
}

.frame {
  display: flex;
  padding: 0.5rem;
  border: 0.3rem solid #c4b098;
  gap: 0.5rem;
  width: 62.6rem;
}
.frame li {
  position: relative;
  width: 20rem;
}
.frame img {
  width: 100%;
  height: auto;
}
.frame-wrap--tall .frame {
  height: 26.5rem;
}
.frame-wrap--option .frame {
  height: 16.5rem;
}
.frame-wrap--set .frame {
  height: 42.6rem;
}
.frame__name, .frame__price {
  position: absolute;
  left: -0.5rem;
  width: 21rem;
  text-align: center;
  white-space: nowrap;
}
.frame__name {
  top: 16.3rem;
  font-size: 2.36rem;
  line-height: 3rem;
  letter-spacing: -0.04em;
}
.frame__name small {
  font-size: 2.1rem;
}
.frame__price {
  top: 19.7rem;
  left: 0.5rem;
  color: #b4282c;
  font-size: 3.4rem;
  line-height: 4rem;
  letter-spacing: -0.07em;
}
.frame__price strong {
  font-weight: 500;
}
.frame__price span {
  font-size: 2.75rem;
}
.frame__price small {
  color: #000;
  font-size: 1.7rem;
}

@media (prefers-reduced-motion: reduce) {
  .reserve .grid-accordion-container,
  .reserve .grid-accordion-container-sub {
    transition: none;
  }
}
