@charset "utf-8";

:root {
  --zenkakunew: "Zen Kaku Gothic New", sans-serif;
  --zenkakuantique: "Zen Kaku Gothic Antique", sans-serif;
  --mincho: "Zen Old Mincho", serif;
  --default: 0.4s ease;
}

body {
  font-family: var(--zenkakunew);
  color: #401a33;
}

body.is-open {
  position: relative;
  overflow: hidden;
}

body.is-open::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(172, 172, 172, 0.77);
  z-index: 1000;
}

.menu-open {
  overflow: hidden;
}

.w1728 {
  width: min(90%, 1728px);
  margin: 0 auto;
}

.w1536 {
  width: min(80%, 1536px);
  margin: 0 auto;
}

.w1344 {
  width: min(70%, 1344px);
  margin: 0 auto;
}

.w1152 {
  max-width: 1152px;
  width: 90%;
  margin: 0 auto;
}

.w960 {
  max-width: 960px;
  width: 90%;
  margin: 0 auto;
}

.pc-hidden {
  display: none;
}

.sp-hidden {
  display: block;
}

.morebtn {
  clip-path: polygon(10% 0, 100% 0%, 90% 100%, 0% 100%);
  background-color: #401a33;
  overflow: hidden;
  position: relative;
}

.morebtn::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: #000;
  transform: translateX(-100%);
  transition: var(--default);
  z-index: -1;
}

.morebtn:hover::after {
  transform: translateX(0);
}

.morebtn a {
  clip-path: polygon(10% 0, 100% 0%, 90% 100%, 0% 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: clamp(0.688rem, 0.48rem + 0.43vw, 1rem) 0;
}

.morebtn .arrow {
  width: clamp(1.5rem, 1.084rem + 0.87vw, 2.125rem);
  height: auto;
}

.morebtn .link-text {
  font-family: var(--zenkakunew);
  font-weight: 500;
  font-size: clamp(0.875rem, 0.626rem + 0.52vw, 1.25rem);
  color: #fff;
}

.delay-1 {
  animation-delay: 0.1s;
}

.delay-2 {
  animation-delay: 0.2s;
  transition-delay: 0.2s;
}

.delay-3 {
  animation-delay: 0.3s;
}

.delay-4 {
  animation-delay: 0.4s;
}

.delay-5 {
  animation-delay: 0.5s;
}

.delay-6 {
  animation-delay: 0.6s;
}

a.default {
  transition: var(--default);
}

a.default:hover {
  opacity: 50%;
}

.desc p {
  font-family: var(--zenkakunew);
  font-weight: 500;
  letter-spacing: 0.1em;
}

.t_cta {
  background: #401a33;
  position: relative;
  z-index: 5;
}
.t_cta::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  max-width: 737px;
  width: 90%;
  height: 100%;
  background: url(/system_panel/uploads/images/20260619012743310901.svg) no-repeat right bottom/cover;
  z-index: -1;
}

.t_cta .inner {
  padding: 64px 0 72px;
}

.t_cta .tit-ja {
  font-family: var(--zenkakunew);
  font-weight: 500;
  font-size: clamp(1.5rem, 1.334rem + 0.35vw, 1.75rem);
  line-height: calc(40 / 28);
  letter-spacing: 0.4em;
  text-align: center;
  color: #fff;
  margin-bottom: 32px;
}

.t_cta .desc {
  margin-bottom: 56px;
}

.t_cta .desc p {
  font-family: var(--zenkakunew);
  font-weight: 500;
  font-size: clamp(0.75rem, 0.667rem + 0.17vw, 0.875rem);
  letter-spacing: 0.1em;
  line-height: 2;
  text-align: center;
  color: #fff;
}

.t_cta .btnarea {
  display: flex;
  justify-content: center;
  gap: 58px;
}

.t_cta .btnarea .item {
  max-width: 403px;
  width: 90%;
}

.t_cta .btnarea .link-text {
  font-family: var(--zenkakunew);
  font-weight: 700;
  font-size: clamp(0.875rem, 0.459rem + 0.87vw, 1.5rem);
  letter-spacing: 0.4em;
  color: #fff;
}

.t_cta .btnarea a {
  display: flex;
  align-items: center;
  gap: 76px;
  padding: 25px 44px 25px 0;
  justify-content: flex-end;
}

.t_cta .btnarea .arrow {
  width: clamp(1.688rem, 0.981rem + 1.47vw, 2.75rem);
  height: auto;
}

.t_cta .btnarea .btn-line {
  border-radius: 46.5px;
  background: #03c755;
}

.t_cta .btnarea .btn-reserve {
  border-radius: 46.5px;
  background: #fff;
}

.t_cta .btnarea .btn-reserve .link-text {
  color: #4a1d3c;
}

@media (max-width: 767px) {
  .desc p {
    font-feature-settings: "palt";
  }
  .t_cta .inner {
    width: 95%;
  }
  .t_cta .btnarea .item {
    max-width: 251px;
    width: 100%;
  }
  .t_cta .btnarea a {
    padding: 15px 27px 15px 0;
  }
  .t_cta .desc p {
    letter-spacing: 0.05em;
  }
  .t_cta .btnarea {
    flex-direction: column;
    gap: 30px;
    align-items: center;
  }
  .t_cta .tit-ja {
    letter-spacing: 0.2em;
  }
  .t_cta::before {
    background-image: url(/system_panel/uploads/images/20260620115937146088.svg);
    height: 339px;
    background-position: left bottom;
  }
}

.gjs-dashed .back-top {
  transform: translateY(0);
}
