@charset "UTF-8";
.mst-hero {
  padding: 0.24rem 0 0;
}
.mst-hero__inner {
  width: 21rem;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .mst-hero__inner {
    width: auto;
    margin-inline: 0.36rem;
  }
}
.mst-hero__photos {
  display: flex;
  gap: 0.3rem;
  height: 4rem;
}
@media screen and (max-width: 767px) {
  .mst-hero__photos {
    gap: 0.16rem;
    height: 2.96rem;
  }
}
.mst-hero__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mst-hero__photo--main {
  width: 13.14rem;
  transform: rotate(-0.4deg);
}
.mst-hero__photo--sub {
  width: 7.56rem;
  transform: rotate(0.6deg);
}
@media screen and (max-width: 767px) {
  .mst-hero__photo--main {
    width: 4.24rem;
  }
  .mst-hero__photo--sub {
    width: 2.38rem;
  }
}
.mst-hero__mv {
  position: relative;
  height: 13.5rem;
  margin-top: 0.12rem;
  transform: rotate(-1deg);
}
@media screen and (max-width: 767px) {
  .mst-hero__mv {
    height: 8.92rem;
    margin-top: 0.1rem;
    transform: rotate(-0.6deg);
  }
}
.mst-hero__mvimg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 16%;
}
@media screen and (max-width: 767px) {
  .mst-hero__mvimg {
    object-position: 50% 12%;
  }
}
.mst-hero__tagline {
  position: absolute;
  top: 1.4rem;
  left: 2.04rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.66rem;
  height: 5.22rem;
  background: rgba(255, 255, 255, 0.96);
  color: #1a1a1a;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.34rem;
  font-weight: 500;
  letter-spacing: 0.5em;
  line-height: 1;
  white-space: nowrap;
  writing-mode: vertical-rl;
}
@media screen and (max-width: 767px) {
  .mst-hero__tagline {
    top: 0.66rem;
    left: auto;
    right: 0.26rem;
    width: 1.36rem;
    height: 4.4rem;
    font-size: 0.3rem;
  }
}
.mst-hero__title {
  position: absolute;
  right: 0.42rem;
  bottom: 0.6rem;
  text-align: right;
}
@media screen and (max-width: 767px) {
  .mst-hero__title {
    right: 0;
    left: 0;
    bottom: 0.38rem;
    text-align: center;
  }
}
.mst-hero__logo {
  position: relative;
  width: 14.4rem;
  height: 2.022rem;
  margin: 0 0 0 auto;
}
@media screen and (max-width: 767px) {
  .mst-hero__logo {
    width: 5.7rem;
    height: 0.8rem;
    margin-inline: auto;
  }
}
.mst-hero__logo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/logo_mirokusta2026.png") no-repeat 50% 46.6%/cover;
  filter: url("#mst-logo-white");
}
.mst-hero__logo img {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 46.6%;
  filter: url("#mst-logo-key");
}
.mst-hero__sub {
  margin-top: 0.06rem;
  color: #1080B3;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.38rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-shadow: 0 0 4px #fff, 0 0 8px #fff, 1px 1px 0 #fff, -1px -1px 0 #fff;
}
@media screen and (max-width: 767px) {
  .mst-hero__sub {
    font-size: 0.3rem;
  }
}
.mst-hero__lead {
  margin: 0.34rem auto 0;
  text-align: center;
  display: block;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.3rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .mst-hero__lead {
    margin-top: 0.28rem;
    font-size: 0.26rem;
  }
}
.mst-hero__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  min-height: 1.76rem;
  margin-top: 0.3rem;
  padding: 0.24rem 0.34rem 0.24rem 0.48rem;
  border-radius: 0.2rem;
  background: #10B37B;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .mst-hero__bar {
    flex-direction: column;
    gap: 0.18rem;
    min-height: 0;
    padding: 0.36rem 0.3rem 0.4rem;
    text-align: center;
  }
}
.mst-hero__date {
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.38rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.4;
}
.mst-hero__date span {
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .mst-hero__date {
    font-size: 0.34rem;
  }
}
.mst-hero__en {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.24rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .mst-hero__en {
    font-size: 0.22rem;
  }
}
.mst-hero__barbtn {
  flex: none;
  min-height: 0.68rem;
  padding: 0.1rem 0.44rem;
  font-size: 0.26rem;
}
@media screen and (max-width: 767px) {
  .mst-hero__barbtn {
    width: 100%;
  }
}

.mst-nav {
  padding: 0.68rem 0 0.4rem;
}
@media screen and (max-width: 767px) {
  .mst-nav {
    padding: 0.5rem 0 0.3rem;
  }
}
.mst-nav__inner {
  position: relative;
  width: 21rem;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .mst-nav__inner {
    width: auto;
    margin-inline: 0.36rem;
  }
}
.mst-nav__list {
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .mst-nav__list {
    flex-wrap: wrap;
    justify-content: flex-start;
    row-gap: 0.34rem;
  }
}
.mst-nav__item {
  width: 2.25rem;
}
@media screen and (max-width: 767px) {
  .mst-nav__item {
    width: 25%;
  }
}
.mst-nav__item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
}
.mst-nav__item a:hover {
  opacity: 1;
}
.mst-nav__item a:hover .mst-nav__circle {
  background: #10B37B;
  color: #fff;
}
.mst-nav__item a:hover .mst-nav__circle img {
  filter: brightness(0) invert(1);
}
.mst-nav__circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.16rem;
  height: 1.16rem;
  border: 2px solid #10B37B;
  border-radius: 50%;
  background: #fff;
  color: #10B37B;
  transition: background-color 0.25s ease, color 0.25s ease;
}
.mst-nav__circle img {
  width: 0.56rem;
  height: 0.56rem;
  object-fit: contain;
}
@media screen and (max-width: 767px) {
  .mst-nav__circle {
    width: 1.02rem;
    height: 1.02rem;
  }
  .mst-nav__circle img {
    width: 0.5rem;
    height: 0.5rem;
  }
}
.mst-nav__circle--q {
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1;
}
.mst-nav__circle--x img {
  width: 0.34rem;
  height: 0.3rem;
}
.mst-nav__label {
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.24rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.35;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .mst-nav__label {
    font-size: 0.22rem;
  }
}
.mst-nav__star {
  position: absolute;
  top: -0.16rem;
  right: 0.9rem;
  width: 1.88rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-nav__star {
    display: none;
  }
}

.mst-stories {
  padding: 0.9rem 0 1.2rem;
}
@media screen and (max-width: 767px) {
  .mst-stories {
    padding: 0.7rem 0 0.9rem;
  }
}
.mst-stories__head {
  position: relative;
  margin-bottom: 0.8rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .mst-stories__head {
    margin-bottom: 0.5rem;
  }
}
.mst-stories__eyebrow {
  color: #16856A;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.24rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}
@media screen and (max-width: 767px) {
  .mst-stories__eyebrow {
    font-size: 0.22rem;
  }
}
.mst-stories__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.06rem;
  color: #10B37B;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.mst-stories__title .mst-logotext {
  width: 9.2rem;
  height: 1.292rem;
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .mst-stories__title {
    flex-direction: column;
    gap: 0;
    font-size: 0.58rem;
  }
  .mst-stories__title .mst-logotext {
    width: 5.9rem;
    height: 0.829rem;
  }
}
.mst-stories__star {
  position: absolute;
  left: 1.6rem;
  bottom: -0.9rem;
  width: 1.9rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-stories__star {
    left: -0.24rem;
    bottom: -0.5rem;
    width: 1.2rem;
  }
}
.mst-stories__grid {
  display: grid;
  grid-template-columns: 13rem 13rem;
  row-gap: 0.8rem;
  width: 26rem;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .mst-stories__grid {
    display: block;
    width: auto;
    margin-inline: 0.36rem;
  }
}

.mst-card {
  position: relative;
  padding: 0.2rem 0.2rem 0.12rem;
  background: #fff;
  box-shadow: 0 0.1rem 0.32rem rgba(4, 40, 34, 0.12);
}
.mst-card__ph {
  position: relative;
  overflow: hidden;
}
.mst-card__ph img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mst-card__over {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0.8rem 0.34rem 0.3rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.58) 55%);
  color: #fff;
}
.mst-card__over .mst-card__title {
  color: #fff;
}
.mst-card__over .mst-card__desc {
  color: rgba(255, 255, 255, 0.92);
}
@media screen and (max-width: 767px) {
  .mst-card__over {
    padding: 0.7rem 0.28rem 0.26rem;
  }
}
.mst-card__body {
  padding: 0.26rem 0.14rem 0.12rem;
}
.mst-card__title {
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.34rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .mst-card__title {
    font-size: 0.32rem;
  }
}
.mst-card__title--sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.mst-card__desc {
  margin-top: 0.08rem;
  color: #3EA890;
  font-size: 0.24rem;
  line-height: 1.75;
}
@media screen and (max-width: 767px) {
  .mst-card__desc {
    font-size: 0.24rem;
  }
}
.mst-card__cap {
  color: #3EA890;
  font-size: 0.24rem;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}
.mst-card__cap b {
  color: #16856A;
  font-weight: 700;
}

.mst-card--cap .mst-card__body {
  padding: 0.22rem 0.1rem 0.1rem;
}

.mst-story {
  align-self: start;
}
.mst-story--a {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  width: 15.1rem;
}
.mst-story--a .mst-card__ph {
  aspect-ratio: 735/910;
}
.mst-story--a .mst-card__title {
  font-size: 0.46rem;
}
.mst-story--a .mst-card__desc {
  font-size: 0.26rem;
}
@media screen and (max-width: 767px) {
  .mst-story--a .mst-card__title {
    font-size: 0.38rem;
  }
  .mst-story--a .mst-card__desc {
    font-size: 0.24rem;
  }
}
.mst-story--b {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  width: 10.6rem;
  margin-top: -0.2rem;
  transform: rotate(1deg);
}
.mst-story--b .mst-card__ph {
  aspect-ratio: 500/640;
}
.mst-story--c {
  grid-column: 1;
  grid-row: 2;
  justify-self: end;
  width: 8.34rem;
  margin-right: 0.88rem;
  transform: rotate(-1deg);
}
.mst-story--c .mst-card__ph {
  aspect-ratio: 4/3;
}
.mst-story--d {
  grid-column: 2;
  grid-row: 2;
  justify-self: start;
  width: 8.34rem;
  margin-left: -0.32rem;
  transform: rotate(0.8deg);
}
.mst-story--d .mst-card__ph {
  aspect-ratio: 4/3;
}
.mst-story--e {
  grid-column: 1;
  grid-row: 3;
  justify-self: end;
  width: 8.34rem;
  margin-right: 0.88rem;
  transform: rotate(-1.4deg);
}
.mst-story--e .mst-card__ph {
  aspect-ratio: 4/3.4;
}
.mst-story--f {
  grid-column: 2;
  grid-row: 3;
  justify-self: start;
  width: 8.34rem;
  margin-top: 0.3rem;
  margin-left: -0.32rem;
  transform: rotate(1deg);
}
.mst-story--f .mst-card__ph {
  aspect-ratio: 4/3.4;
}
@media screen and (max-width: 767px) {
  .mst-story--a, .mst-story--b, .mst-story--c, .mst-story--d, .mst-story--e, .mst-story--f {
    width: auto;
    margin: 0 0 0.5rem;
    transform: none;
  }
  .mst-story--a .mst-card__ph {
    aspect-ratio: 4/4.6;
  }
  .mst-story--b .mst-card__ph, .mst-story--c .mst-card__ph, .mst-story--d .mst-card__ph {
    aspect-ratio: 4/3;
  }
  .mst-story--e .mst-card__ph, .mst-story--f .mst-card__ph {
    aspect-ratio: 4/3.2;
  }
}

.mst-detail {
  padding: 1rem 0 1.2rem;
}
@media screen and (max-width: 767px) {
  .mst-detail {
    padding: 0.6rem 0 0.9rem;
  }
}
.mst-detail .mst-inner {
  position: relative;
}
.mst-detail .mst-head__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.06rem;
  color: #10B37B;
}
.mst-detail .mst-head__title .mst-logotext {
  width: 7.6rem;
  height: 1.067rem;
}
@media screen and (max-width: 767px) {
  .mst-detail .mst-head__title {
    flex-direction: column;
    gap: 0.04rem;
    font-size: 0.5rem;
  }
  .mst-detail .mst-head__title .mst-logotext {
    width: 5.6rem;
    height: 0.787rem;
  }
}
.mst-detail__star {
  position: absolute;
  top: 1rem;
  left: -1.5rem;
  width: 2.1rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-detail__star {
    display: none;
  }
}
.mst-detail__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.4rem;
}
@media screen and (max-width: 767px) {
  .mst-detail__cards {
    grid-template-columns: 1fr;
    gap: 0.24rem;
  }
}

.mst-info {
  padding: 0.44rem 0.5rem 0.5rem;
  border-radius: 0.32rem;
  background: #fff;
  box-shadow: 0 0.04rem 0.2rem rgba(4, 60, 48, 0.06);
}
@media screen and (max-width: 767px) {
  .mst-info {
    padding: 0.36rem 0.36rem 0.4rem;
  }
}
.mst-info__ic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 0.88rem;
  height: 0.88rem;
  margin-bottom: 0.24rem;
  border-radius: 0.2rem;
  background: #E2F4EE;
  color: #16856A;
}
.mst-info__ic svg {
  width: 0.44rem;
  height: 0.44rem;
}
@media screen and (max-width: 767px) {
  .mst-info__ic {
    width: 0.76rem;
    height: 0.76rem;
  }
  .mst-info__ic svg {
    width: 0.4rem;
    height: 0.4rem;
  }
}
.mst-info__label {
  color: #16856A;
  font-size: 0.22rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.6;
}
.mst-info__value {
  margin-top: 0.04rem;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.44rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .mst-info__value {
    font-size: 0.38rem;
  }
}
.mst-info__note {
  margin-top: 0.14rem;
  color: #6B7280;
  font-size: 0.26rem;
  line-height: 1.7;
}
@media screen and (max-width: 767px) {
  .mst-info__note {
    font-size: 0.24rem;
  }
}

.mst-fee {
  margin-top: 0.5rem;
  overflow: hidden;
  border-radius: 0.24rem;
  background: #fff;
  box-shadow: 0 0.04rem 0.2rem rgba(4, 60, 48, 0.06);
}
.mst-fee__head {
  padding: 0.18rem 0.46rem;
  background: #10B37B;
  color: #fff;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.26rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.6;
}
.mst-fee__table th, .mst-fee__table td {
  padding: 0.3rem 0.46rem;
  border-bottom: 1px solid #EDF2F0;
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .mst-fee__table th, .mst-fee__table td {
    padding: 0.24rem 0.3rem;
  }
}
.mst-fee__table tr:last-child th,
.mst-fee__table tr:last-child td {
  border-bottom: 0;
}
.mst-fee__table th {
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.3rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .mst-fee__table th {
    font-size: 0.26rem;
  }
}
.mst-fee__table td {
  width: 3rem;
  color: #16856A;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.4rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: right;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .mst-fee__table td {
    width: 1.8rem;
    font-size: 0.34rem;
  }
}
.mst-fee__sub {
  display: block;
  margin-top: 0.02rem;
  color: #6B7280;
  font-family: YakuHanJP, "Noto Sans JP", "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 0.22rem;
  font-weight: 400;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .mst-fee__sub {
    font-size: 0.2rem;
  }
}

.mst-notes {
  margin-top: 0.5rem;
  padding: 0.4rem 0.5rem 0.44rem;
  border: 1px solid #CFE7DF;
  border-radius: 0.24rem;
  background: rgba(255, 255, 255, 0.55);
}
@media screen and (max-width: 767px) {
  .mst-notes {
    padding: 0.32rem 0.3rem 0.36rem;
  }
}
.mst-notes__label {
  margin-bottom: 0.16rem;
  color: #16856A;
  font-size: 0.22rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.mst-notes__list li {
  position: relative;
  padding-left: 0.5rem;
  color: #044C40;
  font-size: 0.26rem;
  line-height: 1.9;
}
@media screen and (max-width: 767px) {
  .mst-notes__list li {
    font-size: 0.24rem;
    padding-left: 0.44rem;
  }
}
.mst-notes__list li::before {
  content: "";
  position: absolute;
  top: 0.12rem;
  left: 0;
  width: 0.3rem;
  height: 0.3rem;
  background: #10B37B;
  -webkit-mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.8 2.8L16 9.6'/%3E%3C/svg%3E");
  mask: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.8 2.8L16 9.6'/%3E%3C/svg%3E");
}

.mst-schedule {
  padding: 1rem 0 1.2rem;
}
@media screen and (max-width: 767px) {
  .mst-schedule {
    padding: 0.7rem 0 0.8rem;
  }
}
.mst-schedule__inner {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  width: 21rem;
}
@media screen and (max-width: 767px) {
  .mst-schedule__inner {
    display: block;
    width: auto;
    margin-inline: 0.36rem;
  }
}
.mst-schedule__main {
  flex: 1;
  min-width: 0;
}
.mst-schedule__star {
  position: absolute;
  top: -0.3rem;
  left: -1.5rem;
  width: 1.4rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-schedule__star {
    top: -0.2rem;
    left: -0.1rem;
    width: 1rem;
  }
}
.mst-schedule .mst-head {
  position: relative;
  margin-bottom: 0.6rem;
  padding-left: 1.4rem;
}
@media screen and (max-width: 767px) {
  .mst-schedule .mst-head {
    padding-left: 0;
  }
}

.mst-time {
  position: relative;
  padding-left: 0.1rem;
}
.mst-time::before {
  content: "";
  position: absolute;
  top: 0.4rem;
  bottom: 0.8rem;
  left: 0.9rem;
  width: 1px;
  background: #CFE9E1;
}
.mst-time__row {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.36rem;
  padding-bottom: 0.44rem;
}
@media screen and (max-width: 767px) {
  .mst-time__row {
    gap: 0.24rem;
    padding-bottom: 0.34rem;
  }
}
.mst-time__row::after {
  content: "";
  position: absolute;
  top: 0.22rem;
  left: 1.92rem;
  width: 0.2rem;
  height: 0.2rem;
  border: 0.05rem solid #A7E1D0;
  border-radius: 50%;
  background: #10B37B;
  background-clip: padding-box;
}
@media screen and (max-width: 767px) {
  .mst-time__row::after {
    left: 1.62rem;
  }
}
.mst-time__at {
  position: relative;
  z-index: 1;
  flex: none;
  width: 1.6rem;
  padding: 0.1rem 0;
  border: 1px solid #CFE9E1;
  border-radius: 0.12rem;
  background: #fff;
  color: #16856A;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.3rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .mst-time__at {
    width: 1.36rem;
    font-size: 0.26rem;
  }
}
.mst-time__body {
  padding-left: 0.56rem;
  padding-top: 0.08rem;
}
@media screen and (max-width: 767px) {
  .mst-time__body {
    padding-left: 0.46rem;
  }
}
.mst-time__title {
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.32rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .mst-time__title {
    font-size: 0.28rem;
  }
}
.mst-time__note {
  margin-top: 0.04rem;
  color: #3EA890;
  font-size: 0.26rem;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .mst-time__note {
    font-size: 0.23rem;
  }
}
.mst-time__caution {
  margin-top: 0.1rem;
  padding: 0.26rem 0.3rem;
  border-radius: 0.24rem;
  background: rgba(16, 179, 123, 0.07);
  color: #16856A;
  font-size: 0.24rem;
  text-align: center;
}
.mst-time__caution span {
  margin-right: 0.1rem;
}
@media screen and (max-width: 767px) {
  .mst-time__caution {
    font-size: 0.22rem;
  }
}

.mst-apply {
  flex: none;
  width: 8.12rem;
  padding: 0.5rem 0.44rem 0.5rem;
  border-radius: 0.32rem;
  background: #62D3BF;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .mst-apply {
    width: auto;
    margin-top: 0.6rem;
    padding: 0.4rem 0.34rem 0.44rem;
  }
}
.mst-apply__eyebrow {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.22rem;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.mst-apply__title {
  margin-top: 0.1rem;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.36rem;
  font-weight: 700;
  line-height: 1.4;
}
.mst-apply__title span {
  display: block;
  font-size: 0.46rem;
  text-align: right;
}
@media screen and (max-width: 767px) {
  .mst-apply__title {
    font-size: 0.32rem;
  }
  .mst-apply__title span {
    font-size: 0.4rem;
  }
}
.mst-apply__text {
  margin-top: 0.16rem;
  color: rgba(255, 255, 255, 0.95);
  font-size: 0.24rem;
  line-height: 1.7;
}
.mst-apply .mst-btn {
  display: flex;
  width: 100%;
  margin-top: 0.3rem;
}

.mst-prenight {
  position: relative;
  overflow: hidden;
  padding: 1.2rem 0 1.4rem;
  background: radial-gradient(120% 70% at 20% 0%, #17395c 0%, rgba(23, 57, 92, 0) 60%), radial-gradient(90% 60% at 85% 30%, #1d3a63 0%, rgba(29, 58, 99, 0) 65%), linear-gradient(180deg, #030d1c 0%, #0b1c33 45%, #071528 100%);
  color: #fff;
}
@media screen and (max-width: 767px) {
  .mst-prenight {
    padding: 0.9rem 0 1rem;
  }
}
.mst-prenight__sky {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(2px 2px at 12% 18%, rgba(255, 255, 255, 0.9), transparent 60%), radial-gradient(1.6px 1.6px at 28% 44%, rgba(255, 255, 255, 0.7), transparent 60%), radial-gradient(2px 2px at 44% 12%, rgba(255, 255, 255, 0.8), transparent 60%), radial-gradient(1.4px 1.4px at 58% 30%, rgba(255, 255, 255, 0.65), transparent 60%), radial-gradient(2px 2px at 72% 16%, rgba(255, 255, 255, 0.85), transparent 60%), radial-gradient(1.6px 1.6px at 86% 40%, rgba(255, 255, 255, 0.7), transparent 60%), radial-gradient(1.6px 1.6px at 8% 62%, rgba(255, 255, 255, 0.7), transparent 60%), radial-gradient(2px 2px at 33% 78%, rgba(255, 255, 255, 0.8), transparent 60%), radial-gradient(1.4px 1.4px at 52% 88%, rgba(255, 255, 255, 0.6), transparent 60%), radial-gradient(1.8px 1.8px at 68% 70%, rgba(255, 255, 255, 0.75), transparent 60%), radial-gradient(1.6px 1.6px at 92% 82%, rgba(255, 255, 255, 0.7), transparent 60%), radial-gradient(1.4px 1.4px at 19% 34%, rgba(255, 255, 255, 0.55), transparent 60%), radial-gradient(0.6rem 0.6rem at 16% 74%, rgba(180, 220, 255, 0.13), transparent 70%), radial-gradient(0.9rem 0.9rem at 78% 58%, rgba(255, 246, 200, 0.1), transparent 70%), radial-gradient(0.7rem 0.7rem at 62% 22%, rgba(180, 240, 255, 0.1), transparent 70%), radial-gradient(1.1rem 1.1rem at 34% 8%, rgba(255, 255, 255, 0.07), transparent 70%), radial-gradient(1.4rem 1.4rem at 8% 40%, rgba(190, 225, 255, 0.1), transparent 72%), radial-gradient(1rem 1rem at 46% 62%, rgba(255, 250, 220, 0.09), transparent 72%), radial-gradient(0.8rem 0.8rem at 88% 20%, rgba(200, 235, 255, 0.1), transparent 72%), radial-gradient(1.2rem 1.2rem at 70% 88%, rgba(255, 255, 255, 0.06), transparent 72%), radial-gradient(2px 2px at 24% 26%, rgba(255, 255, 255, 0.8), transparent 60%), radial-gradient(1.4px 1.4px at 40% 52%, rgba(255, 255, 255, 0.6), transparent 60%), radial-gradient(1.8px 1.8px at 63% 44%, rgba(255, 255, 255, 0.75), transparent 60%), radial-gradient(1.4px 1.4px at 78% 66%, rgba(255, 255, 255, 0.6), transparent 60%), radial-gradient(2px 2px at 96% 54%, rgba(255, 255, 255, 0.8), transparent 60%), radial-gradient(1.6px 1.6px at 4% 88%, rgba(255, 255, 255, 0.7), transparent 60%);
  pointer-events: none;
}
.mst-prenight__inner {
  position: relative;
  z-index: 1;
  text-align: center;
}
.mst-prenight__eyebrow {
  color: #8FE7E9;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.24rem;
  font-weight: 700;
  letter-spacing: 0.3em;
}
.mst-prenight__title {
  margin-top: 0.18rem;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.84rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-shadow: 0 0 0.3rem rgba(80, 200, 220, 0.45);
}
@media screen and (max-width: 767px) {
  .mst-prenight__title {
    font-size: 0.6rem;
  }
}
.mst-prenight__logo {
  color: #35D6D8;
  -webkit-text-stroke: 3px #fff;
  paint-order: stroke fill;
}
@media screen and (max-width: 767px) {
  .mst-prenight__logo {
    -webkit-text-stroke-width: 2px;
  }
}
.mst-prenight__lead {
  margin-top: 0.3rem;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.3rem;
  line-height: 1.9;
}
@media screen and (max-width: 767px) {
  .mst-prenight__lead {
    font-size: 0.26rem;
    line-height: 1.8;
  }
}
.mst-prenight__btnwrap {
  margin-top: 0.6rem;
}
@media screen and (max-width: 767px) {
  .mst-prenight__btnwrap {
    margin-top: 0.44rem;
  }
}

.mst-glass {
  width: 10.92rem;
  max-width: 100%;
  margin: 0.7rem auto 0;
  padding: 0.5rem 0.5rem 0.44rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 0.32rem;
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
@media screen and (max-width: 767px) {
  .mst-glass {
    width: auto;
    margin: 0.5rem 0.36rem 0;
    padding: 0.4rem 0.3rem 0.36rem;
  }
}
.mst-glass__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.3rem;
}
@media screen and (max-width: 767px) {
  .mst-glass__list {
    gap: 0.2rem;
  }
}
.mst-glass__ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.6rem;
  height: 0.6rem;
  margin-bottom: 0.14rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #9EE9DE;
}
.mst-glass__ic svg {
  width: 0.34rem;
  height: 0.34rem;
}
@media screen and (max-width: 767px) {
  .mst-glass__ic {
    width: 0.52rem;
    height: 0.52rem;
  }
}
.mst-glass__label {
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.22rem;
  letter-spacing: 0.08em;
}
.mst-glass__value {
  margin-top: 0.04rem;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.46rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .mst-glass__value {
    font-size: 0.34rem;
  }
}
.mst-glass__note {
  margin-top: 0.04rem;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.2rem;
  line-height: 1.6;
}
.mst-glass__notice {
  margin-top: 0.4rem;
  padding-top: 0.3rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.22rem;
  line-height: 1.9;
}
@media screen and (max-width: 767px) {
  .mst-glass__notice {
    font-size: 0.2rem;
  }
}

.mst-first {
  position: relative;
  padding: 1.1rem 0 1.2rem;
  background: #F4F6F1;
}
@media screen and (max-width: 767px) {
  .mst-first {
    padding: 0.8rem 0 0.9rem;
  }
}
.mst-first .mst-inner {
  position: relative;
}
.mst-first__chara {
  position: absolute;
  right: -2rem;
  bottom: -0.3rem;
  width: 1.7rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-first__chara {
    right: -0.1rem;
    bottom: -0.6rem;
    width: 1.2rem;
  }
}

.mst-steps {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.24rem;
  padding: 0.3rem;
  border: 1px solid #E3E5DE;
  background: rgba(255, 255, 255, 0.5);
}
@media screen and (max-width: 767px) {
  .mst-steps {
    grid-template-columns: 1fr;
    gap: 0.2rem;
    padding: 0.2rem;
  }
}

.mst-step {
  position: relative;
  overflow: hidden;
  padding: 0.4rem 0.44rem 0.44rem;
  background: linear-gradient(100deg, #fff 58%, #F1F6F3 100%);
}
@media screen and (max-width: 767px) {
  .mst-step {
    padding: 0.34rem 0.34rem 0.36rem;
  }
}
.mst-step__no {
  position: absolute;
  top: -0.14rem;
  right: 0.24rem;
  color: rgba(4, 76, 64, 0.06);
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 1.7rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
  pointer-events: none;
}
.mst-step__tag {
  display: inline-block;
  padding: 0.02rem 0.18rem;
  border: 1px solid #D8DEDA;
  border-radius: 9999px;
  color: #6B7280;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.7;
}
.mst-step__head {
  display: flex;
  align-items: center;
  gap: 0.18rem;
  margin-top: 0.18rem;
}
.mst-step__ic {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: #E6EFEB;
  color: #044C40;
}
.mst-step__ic svg {
  width: 0.32rem;
  height: 0.32rem;
}
.mst-step__title {
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.36rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .mst-step__title {
    font-size: 0.32rem;
  }
}
.mst-step__text {
  margin-top: 0.16rem;
  color: #6B7280;
  font-size: 0.24rem;
  line-height: 1.8;
}

.mst-rules {
  position: relative;
  padding: 0.6rem 0 1.3rem;
  background: #F4F6F1;
}
@media screen and (max-width: 767px) {
  .mst-rules {
    padding: 0.4rem 0 1rem;
  }
}
.mst-rules .mst-inner {
  position: relative;
}
.mst-rules__chara {
  position: absolute;
  left: -2.3rem;
  bottom: -0.5rem;
  width: 1.6rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-rules__chara {
    left: -0.06rem;
    bottom: -1rem;
    width: 1.1rem;
  }
}

.mst-acc {
  overflow: hidden;
  border: 1px solid #DDEAE4;
  border-radius: 0.24rem;
  background: #fff;
}
.mst-acc__item + .mst-acc__item {
  border-top: 1px solid #EDF2F0;
}
.mst-acc__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.3rem;
  padding: 0.34rem 0.5rem;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.3rem;
  font-weight: 700;
  line-height: 1.6;
  transition: background-color 0.25s ease;
}
.mst-acc__q:hover {
  background: #F7FBFA;
}
@media screen and (max-width: 767px) {
  .mst-acc__q {
    padding: 0.28rem 0.3rem;
    font-size: 0.26rem;
  }
}
.mst-acc__mark {
  position: relative;
  flex: none;
  width: 0.28rem;
  height: 0.28rem;
}
.mst-acc__mark::before, .mst-acc__mark::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #10B37B;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.mst-acc__mark::before {
  width: 0.24rem;
  height: 1.5px;
}
.mst-acc__mark::after {
  width: 1.5px;
  height: 0.24rem;
}
.mst-acc__item[open] .mst-acc__mark::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}
.mst-acc__a {
  padding: 0 0.5rem 0.38rem;
  color: #333;
  font-size: 0.26rem;
  line-height: 1.9;
  animation: mst-acc-in 0.3s ease;
}
@media screen and (max-width: 767px) {
  .mst-acc__a {
    padding: 0 0.3rem 0.3rem;
    font-size: 0.24rem;
    line-height: 1.8;
  }
}

@keyframes mst-acc-in {
  from {
    opacity: 0;
    transform: translateY(-0.08rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.mst-archive {
  padding: 1.1rem 0 0;
}
@media screen and (max-width: 767px) {
  .mst-archive {
    padding: 0.8rem 0 0;
  }
}

.mst-hash {
  margin-top: 0.3rem;
  text-align: center;
}
.mst-hash__pill {
  display: inline-block;
  padding: 0.16rem 0.6rem;
  border-radius: 9999px;
  background: #B7E7DA;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.42rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.mst-hash__pill:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.08rem 0.2rem rgba(4, 60, 48, 0.18);
}
@media screen and (max-width: 767px) {
  .mst-hash__pill {
    font-size: 0.34rem;
    padding: 0.12rem 0.44rem;
  }
}
.mst-hash__note {
  display: block;
  margin-top: 0.16rem;
  color: #3EA890;
  font-size: 0.24rem;
}
@media screen and (max-width: 767px) {
  .mst-hash__note {
    font-size: 0.22rem;
  }
}

.mst-gallery {
  position: relative;
  height: 17.6rem;
  margin-top: 0.7rem;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .mst-gallery {
    height: auto;
    margin-top: 0.5rem;
    padding: 0.4rem 0.36rem 0.5rem;
  }
}
.mst-gallery__bg {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  gap: 0.1rem;
  opacity: 0.5;
}
.mst-gallery__bg img {
  width: 20%;
  height: 100%;
  object-fit: cover;
}
.mst-gallery__bg img:nth-child(2n) {
  transform: rotate(-2deg) scale(1.06);
}
.mst-gallery__bg img:nth-child(3n) {
  transform: rotate(1.6deg) scale(1.04);
}
.mst-gallery__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.45);
}
@media screen and (max-width: 767px) {
  .mst-gallery__bg {
    display: none;
  }
}
.mst-gallery__list {
  position: relative;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .mst-gallery__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.3rem 0.24rem;
    height: auto;
  }
}

.mst-polaroid a {
  display: block;
}

.mst-gallery .mst-polaroid {
  position: absolute;
  overflow: hidden;
}
.mst-gallery .mst-polaroid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .mst-gallery .mst-polaroid {
    position: static;
    transform: none !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
  }
  .mst-gallery .mst-polaroid a {
    height: 3.2rem;
  }
  .mst-gallery .mst-polaroid img {
    height: 3.2rem;
  }
}

.mst-polaroid--g1 {
  left: 3.2rem;
  top: 2.2rem;
  width: 5.6rem;
}
.mst-polaroid--g1 a {
  height: 3.6rem;
}
.mst-polaroid--g1 {
  transform: rotate(-2.5deg);
}

.mst-polaroid--g2 {
  left: 9.4rem;
  top: 1.4rem;
  width: 4.6rem;
}
.mst-polaroid--g2 a {
  height: 4.4rem;
}
.mst-polaroid--g2 {
  transform: rotate(2deg);
}

.mst-polaroid--g3 {
  left: 14.8rem;
  top: 2.4rem;
  width: 5rem;
}
.mst-polaroid--g3 a {
  height: 3.4rem;
}
.mst-polaroid--g3 {
  transform: rotate(-1.6deg);
}

.mst-polaroid--g4 {
  left: 20.6rem;
  top: 1.6rem;
  width: 5.2rem;
}
.mst-polaroid--g4 a {
  height: 3.5rem;
}
.mst-polaroid--g4 {
  transform: rotate(2.4deg);
}

.mst-polaroid--g5 {
  left: 2.4rem;
  top: 9.9rem;
  width: 5rem;
}
.mst-polaroid--g5 a {
  height: 3.3rem;
}
.mst-polaroid--g5 {
  transform: rotate(2.6deg);
}

.mst-polaroid--g6 {
  left: 9.2rem;
  top: 9.2rem;
  width: 4.2rem;
}
.mst-polaroid--g6 a {
  height: 5.4rem;
}
.mst-polaroid--g6 {
  transform: rotate(-2deg);
}

.mst-polaroid--g7 {
  left: 15.6rem;
  top: 9.6rem;
  width: 4rem;
}
.mst-polaroid--g7 a {
  height: 5.2rem;
}
.mst-polaroid--g7 {
  transform: rotate(-3deg);
}

.mst-about {
  padding: 1.2rem 0 1.2rem;
}
@media screen and (max-width: 767px) {
  .mst-about {
    padding: 0.9rem 0 0.8rem;
  }
}
.mst-about__inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  width: 24rem;
  max-width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .mst-about__inner {
    display: block;
    width: auto;
    margin-inline: 0.36rem;
  }
}
.mst-about__ph {
  position: relative;
  flex: none;
  width: 9.4rem;
  margin-left: -1.5rem;
  padding: 0.2rem 0.2rem 0.5rem;
  background: #fff;
  box-shadow: 0 0.12rem 0.4rem rgba(4, 40, 34, 0.16);
  transform: rotate(-1deg);
}
.mst-about__ph img {
  display: block;
  width: 100%;
  height: 10.8rem;
  object-fit: cover;
}
@media screen and (max-width: 767px) {
  .mst-about__ph {
    width: auto;
    margin: 0 0 0.5rem;
    padding: 0.16rem 0.16rem 0.36rem;
    transform: none;
  }
  .mst-about__ph img {
    height: 7.2rem;
  }
}
.mst-about__body {
  padding-top: 0.5rem;
}
.mst-about__body p {
  margin-top: 0.26rem;
  color: #333;
  font-size: 0.27rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .mst-about__body p {
    font-size: 0.25rem;
    line-height: 1.9;
  }
}
.mst-about__body strong {
  color: #044C40;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .mst-about__body {
    padding-top: 0;
  }
}
.mst-about__title {
  margin-bottom: 0.3rem;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-weight: 900;
  line-height: 1.25;
}
.mst-about__title1 {
  display: block;
  color: #10B37B;
  font-size: 0.62rem;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .mst-about__title1 {
    font-size: 0.48rem;
  }
}
.mst-about__title2 {
  display: flex;
  align-items: center;
  gap: 0.04rem;
  color: #044C40;
  font-size: 0.62rem;
}
.mst-about__title2 .mst-logotext {
  width: 6.6rem;
  height: 0.927rem;
}
@media screen and (max-width: 767px) {
  .mst-about__title2 {
    font-size: 0.48rem;
  }
  .mst-about__title2 .mst-logotext {
    width: 5rem;
    height: 0.702rem;
  }
}
.mst-about__link {
  margin-top: 0.44rem !important;
}
.mst-about__link a {
  display: inline-flex;
  align-items: center;
  gap: 0.16rem;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.28rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.mst-about__star {
  position: absolute;
  top: 1rem;
  right: -1.4rem;
  width: 2.2rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-about__star {
    display: none;
  }
}

.mst-faq {
  padding: 1.1rem 0 1.3rem;
}
@media screen and (max-width: 767px) {
  .mst-faq {
    padding: 0.8rem 0 1rem;
  }
}
.mst-faq .mst-inner {
  position: relative;
}
.mst-faq__group + .mst-faq__group {
  margin-top: 0.6rem;
}
.mst-faq__cat {
  display: flex;
  align-items: center;
  gap: 0.24rem;
  margin-bottom: 0.24rem;
  color: #3EA890;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.24rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.mst-faq__cat::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #DCEAE5;
}
.mst-faq__chara {
  position: absolute;
  right: -2.1rem;
  bottom: -0.5rem;
  width: 1.6rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-faq__chara {
    right: -0.14rem;
    bottom: -0.9rem;
    width: 1.1rem;
  }
}

.mst-location {
  padding: 1.2rem 0 1.3rem;
  background: #F9F9F9;
}
@media screen and (max-width: 767px) {
  .mst-location {
    padding: 0.8rem 0 0.9rem;
  }
}
.mst-location .mst-inner {
  width: 21rem;
}
@media screen and (max-width: 767px) {
  .mst-location .mst-inner {
    width: auto;
  }
}

.mst-spots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.3rem 0.3rem;
  margin-bottom: 0.9rem;
}
@media screen and (max-width: 767px) {
  .mst-spots {
    gap: 0.24rem 0.2rem;
    margin-bottom: 0.6rem;
  }
}
.mst-spots .mst-spot {
  width: 4.4rem;
}
.mst-spots .mst-spot img {
  display: block;
  width: 100%;
  height: 3rem;
  object-fit: cover;
}
.mst-spots .mst-spot span {
  display: block;
  padding-top: 0.14rem;
  color: #6B7280;
  font-size: 0.22rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .mst-spots .mst-spot {
    width: calc(50% - 0.1rem);
  }
  .mst-spots .mst-spot img {
    height: 2.2rem;
  }
  .mst-spots .mst-spot span {
    font-size: 0.2rem;
  }
}
.mst-spots .mst-spot--1 {
  transform: rotate(-2deg);
}
.mst-spots .mst-spot--2 {
  transform: rotate(1.6deg) translateY(0.3rem);
}
.mst-spots .mst-spot--3 {
  transform: rotate(-1deg) translateY(-0.12rem);
}
.mst-spots .mst-spot--4 {
  transform: rotate(2deg) translateY(0.24rem);
}
.mst-spots .mst-spot--5 {
  transform: rotate(1.4deg) translateY(-0.1rem);
}
.mst-spots .mst-spot--6 {
  transform: rotate(-2.4deg) translateY(0.2rem);
}
.mst-spots .mst-spot--7 {
  transform: rotate(1deg);
}
.mst-spots .mst-spot--8 {
  transform: rotate(-1.6deg) translateY(0.26rem);
}
@media screen and (max-width: 767px) {
  .mst-spots .mst-spot--1, .mst-spots .mst-spot--2, .mst-spots .mst-spot--3, .mst-spots .mst-spot--4,
  .mst-spots .mst-spot--5, .mst-spots .mst-spot--6, .mst-spots .mst-spot--7, .mst-spots .mst-spot--8 {
    transform: none;
  }
}

.mst-access {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.3rem;
}
@media screen and (max-width: 767px) {
  .mst-access {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}
.mst-access li {
  padding: 0.4rem 0.4rem 0.44rem;
  border: 1px solid #E7ECEA;
  border-radius: 0.24rem;
  background: #fff;
}
.mst-access h3 {
  margin: 0.2rem 0 0.12rem;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.28rem;
  font-weight: 700;
  line-height: 1.5;
}
.mst-access p {
  color: #3EA890;
  font-size: 0.24rem;
  line-height: 1.85;
}
.mst-access .mst-info__ic {
  width: 0.72rem;
  height: 0.72rem;
  margin-bottom: 0;
  background: #EAF2F6;
  color: #6FA5C0;
}

.mst-map {
  position: relative;
  margin-top: 0.9rem;
}
@media screen and (max-width: 767px) {
  .mst-map {
    margin-top: 0.6rem;
  }
}
.mst-map__star {
  position: absolute;
  top: -0.5rem;
  left: -1.1rem;
  z-index: 2;
  width: 2rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-map__star {
    display: none;
  }
}
.mst-map__frame {
  position: relative;
  width: 16rem;
  max-width: 100%;
  height: 5.4rem;
  margin-inline: auto;
  overflow: hidden;
  border-radius: 0.16rem;
  box-shadow: 0 0.06rem 0.24rem rgba(4, 40, 34, 0.1);
}
.mst-map__frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
@media screen and (max-width: 767px) {
  .mst-map__frame {
    height: 5.6rem;
    padding-bottom: 0.9rem;
    background: #fff;
  }
}
.mst-map .mst-btn--map {
  position: absolute;
  right: 0.3rem;
  bottom: 0.3rem;
}
@media screen and (max-width: 767px) {
  .mst-map .mst-btn--map {
    right: 50%;
    bottom: 0.16rem;
    transform: translateX(50%);
  }
}
.mst-map__cap {
  margin-top: 0.26rem;
  color: #044C40;
  font-size: 0.26rem;
  text-align: center;
  line-height: 1.7;
}
.mst-map__cap span {
  color: #6B7280;
  font-size: 0.24rem;
}
@media screen and (max-width: 767px) {
  .mst-map__cap {
    font-size: 0.24rem;
  }
  .mst-map__cap span {
    font-size: 0.22rem;
  }
}

.mst-declare {
  padding: 1.1rem 0 1.1rem;
}
@media screen and (max-width: 767px) {
  .mst-declare {
    padding: 0.8rem 0;
  }
}
.mst-declare__fig {
  width: 13rem;
  max-width: 100%;
  margin-inline: auto;
  text-align: center;
}
.mst-declare__fig img {
  display: block;
  width: 100%;
  border-radius: 0.16rem;
  box-shadow: 0 0.1rem 0.34rem rgba(4, 40, 34, 0.14);
}
.mst-declare__fig figcaption {
  margin-top: 0.24rem;
  color: #6B7280;
  font-size: 0.24rem;
}
@media screen and (max-width: 767px) {
  .mst-declare__fig {
    width: auto;
  }
}

.mst-sns {
  position: relative;
  overflow: hidden;
  padding: 1.1rem 0 1.3rem;
  background: #FAFAFA;
}
@media screen and (max-width: 767px) {
  .mst-sns {
    padding: 0.8rem 0 0.9rem;
  }
}
.mst-sns__bg {
  position: absolute;
  inset: 0;
}
.mst-sns__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 12%;
  opacity: 0.55;
}
.mst-sns__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.25) 40%, rgba(255, 255, 255, 0.55) 100%);
}
.mst-sns .mst-inner {
  position: relative;
  z-index: 1;
}
.mst-sns__box {
  min-height: 6rem;
  max-width: 12.4rem;
  margin-inline: auto;
  padding: 0.1rem 0.2rem;
  border-radius: 0.24rem;
  background: #fff;
  box-shadow: 0 0.08rem 0.3rem rgba(4, 40, 34, 0.1);
}
@media screen and (max-width: 767px) {
  .mst-sns__box {
    padding: 0.1rem;
  }
}
.mst-sns__btnwrap {
  margin-top: 0.5rem;
  text-align: center;
}
.mst-sns__btnwrap .mst-ico-x {
  margin-right: 0.1rem;
}

.mst-contact {
  position: relative;
  overflow: hidden;
  padding: 1.3rem 0 1.6rem;
  background: linear-gradient(180deg, #CFF3E5 0%, #C6EDE2 100%);
}
@media screen and (max-width: 767px) {
  .mst-contact {
    padding: 0.9rem 0 1.2rem;
  }
}
.mst-contact__bg {
  position: absolute;
  inset: 0;
}
.mst-contact__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.12;
}
.mst-contact .mst-inner {
  position: relative;
  z-index: 1;
}
.mst-contact__card {
  width: 10.3rem;
  max-width: 100%;
  margin: 0.2rem auto 0;
  padding: 0.5rem 0.6rem 0.54rem;
  border-radius: 0.32rem;
  background: #fff;
  box-shadow: 0 0.08rem 0.3rem rgba(4, 60, 48, 0.1);
  text-align: center;
}
@media screen and (max-width: 767px) {
  .mst-contact__card {
    padding: 0.4rem 0.3rem 0.44rem;
  }
}
.mst-contact__label {
  color: #16856A;
  font-size: 0.22rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.mst-contact__name {
  margin-top: 0.1rem;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.34rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .mst-contact__name {
    font-size: 0.3rem;
  }
}
.mst-contact__addr {
  margin-top: 0.1rem;
  color: #444;
  font-size: 0.26rem;
  line-height: 1.7;
}
@media screen and (max-width: 767px) {
  .mst-contact__addr {
    font-size: 0.23rem;
  }
}
.mst-contact__tel {
  margin-top: 0.22rem;
  color: #044C40;
  font-family: YakuHanJP, "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.28rem;
  font-weight: 700;
}
.mst-contact__tel span + span {
  margin-left: 0.4rem;
}
@media screen and (max-width: 767px) {
  .mst-contact__tel {
    font-size: 0.26rem;
  }
  .mst-contact__tel span {
    display: block;
  }
  .mst-contact__tel span + span {
    margin-left: 0;
    margin-top: 0.04rem;
  }
}
.mst-contact__support {
  margin-top: 0.3rem;
  padding-top: 0.26rem;
  border-top: 1px solid #EDF2F0;
  color: #444;
  font-size: 0.24rem;
}
.mst-contact__support .mst-contact__label {
  margin-right: 0.2rem;
}
@media screen and (max-width: 767px) {
  .mst-contact__support {
    font-size: 0.22rem;
  }
}
.mst-contact__cta {
  position: relative;
  margin-top: 0.7rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .mst-contact__cta {
    margin-top: 0.6rem;
  }
}
.mst-contact__deadline {
  margin-bottom: 0.2rem;
  color: #0F7B54;
  font-size: 0.24rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 767px) {
  .mst-contact__deadline {
    font-size: 0.22rem;
  }
}
.mst-contact__chara {
  position: absolute;
  right: 2.4rem;
  bottom: -0.24rem;
  width: 1.7rem;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .mst-contact__chara {
    right: 0.1rem;
    bottom: -0.5rem;
    width: 1.2rem;
  }
}

.mst-fixcta {
  position: fixed;
  z-index: 90;
  opacity: 0;
  transform: translateY(0.2rem);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.mst-fixcta[hidden] {
  display: none;
}
.mst-fixcta.is-shown {
  opacity: 1;
  transform: none;
}
.mst-fixcta {
  right: 0.48rem;
  bottom: 0.48rem;
}
.mst-fixcta__note {
  display: none;
}
.mst-fixcta__btn {
  min-height: 0.96rem;
  padding: 0.12rem 0.56rem;
  box-shadow: 0 0.12rem 0.3rem rgba(4, 60, 48, 0.28);
  font-size: 0.3rem;
}
@media screen and (max-width: 767px) {
  .mst-fixcta {
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.06rem;
    height: 1.52rem;
    padding: 0 0.3rem;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 -0.04rem 0.2rem rgba(4, 40, 34, 0.14);
  }
  .mst-fixcta__note {
    display: block;
    color: #0F7B54;
    font-size: 0.2rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.3;
  }
  .mst-fixcta__btn {
    width: 100%;
    min-height: 0.88rem;
    padding: 0.08rem 0.3rem;
    box-shadow: none;
    font-size: 0.28rem;
  }
}

@media screen and (max-width: 767px) {
  body {
    padding-bottom: 1.52rem;
  }
}
.mst-photocards {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-top: 0.3rem;
}

.mst-photocard .mst-card__ph {
  aspect-ratio: 3/4;
}

@media screen and (max-width: 767px) {
  .mst-photocards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.24rem;
    margin-top: 0.3rem;
  }
  .mst-photocard {
    padding: 0.08rem 0.08rem 0.06rem;
  }
}
.mst-rules__intro {
  margin-bottom: 0.5rem;
  font-size: 0.28rem;
  line-height: 1.9;
}

.mst-rules__intro p {
  margin: 0 0 0.18rem;
}

.mst-rules__marks {
  margin: 0.24rem 0 0.3rem;
  padding-left: 0.1rem;
  list-style: none;
}

.mst-rules__marks li {
  position: relative;
  padding-left: 0.34rem;
  margin-bottom: 0.08rem;
  font-weight: 600;
}

.mst-rules__marks li::before {
  content: "";
  position: absolute;
  left: 0.06rem;
  top: 0.16rem;
  width: 0.14rem;
  height: 0.14rem;
  border-radius: 50%;
  background: #0E8C6D;
}

.mst-rules__ol {
  margin: 0 0 0.2rem;
  padding-left: 0.44rem;
  list-style: decimal;
}

.mst-rules__ol li {
  margin-bottom: 0.1rem;
  line-height: 1.8;
}

@media screen and (max-width: 767px) {
  .mst-rules__intro {
    font-size: 0.26rem;
  }
}
