@charset "UTF-8";
:root {
  /* color */
  --base-color: #000;
  --main-color: #fff;
}

/* -- FOUNDATION -- */
html {
  font-size: 62.5%;
  background: #000;
}

body {
  position: relative;
  width: 100%;
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
  font-weight: 500;
  font-size: 1.6rem;
  color: var(--main-color);
  line-height: 1;
  font-feature-settings: "palt";
  background: url(../img/bg.png);
  background-repeat: repeat;
}

@media (max-width:768px) {
  body {
    font-size: 3.733vw;
  }
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  text-decoration: none;
  color: var(--main-color);
  transition: 0.2s;
}

@media (min-width:769px) {
  a:hover {
    opacity: 0.7;
  }
}
/* -- LAYOUT -- */
#loader {
  position: fixed;
  inset: 0;
  background: var(--brown-color);
  z-index: 9999;
}

.header {
  position: relative;
}

.header_tfm {
  position: absolute;
  top: 2.2rem;
  left: 3.1rem;
  width: 15.8rem;
  max-width: 15vw;
}

.header_lf {
  position: absolute;
  top: 2.2rem;
  left: min(21.9rem, 21vw);
  width: 15.9rem;
  max-width: 15vw;
}

.header_yazawa {
  position: absolute;
  top: 2.1rem;
  right: 3.4rem;
  width: 18.2rem;
  max-width: 18vw;
}

.header_kv {
  width: 100%;
}
.header_kv img {
  width: 100%;
}

@media (max-width:768px) {
  .header_tfm,
  .header_lf {
    display: none;
  }
  .header_yazawa {
    top: 2.8vw;
    right: 3.867vw;
    width: 24.267vw;
  }
}
.about {
  width: 105rem;
  max-width: 95%;
  margin: 11.6rem auto 0;
  padding: 0 0 7.8rem;
  background: hsla(0, 0%, 36%, 0.4);
  box-sizing: border-box;
  border-radius: 1rem;
}

.about_heading {
  position: relative;
  top: -4.1rem;
  width: 23.5rem;
  margin: 0 auto 1.4rem;
}

.about_txt {
  padding: 0 6rem;
  line-height: 3;
}
.about_txt .-bold {
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
  font-weight: 700;
}

@media (max-width:768px) {
  .about {
    width: 90.667vw;
    margin: 14vw auto 0;
    padding: 0 0 9.8vw;
  }
  .about_heading {
    top: -7.067vw;
    width: 37.733vw;
    margin: 0 auto 1vw;
  }
  .about_txt {
    padding: 0 5.067vw;
    font-size: 3.2vw;
    line-height: 2;
  }
}
.message {
  width: 105rem;
  max-width: 95%;
  margin: 17.1rem auto 0;
  padding: 0 0 4.7rem;
  background: hsla(0, 0%, 36%, 0.4);
  box-sizing: border-box;
  border-radius: 1rem;
}

.message_heading {
  position: relative;
  top: -4.5rem;
  width: 31.8rem;
  margin: 0 auto 0.8rem;
}

.message_txt {
  padding: 0 6rem;
  line-height: 3;
  letter-spacing: -0.02em;
}
.message_txt .-bold {
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
  font-weight: 700;
}

.message_theme {
  margin: 5.6rem auto 0;
}

.message_themeHeading {
  font-size: 2.6rem;
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
  font-weight: 500;
  text-align: center;
}

.message_themeBody {
  margin: 2.6rem auto 0;
  padding: 3rem 0 2.7rem;
  font-size: 3.4rem;
  letter-spacing: 0.1em;
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
  font-weight: 600;
  text-align: center;
  background-image: url("../img/message_border-top.png"), url("../img/messae_border-bottom.png");
  background-position: center top, center bottom;
  background-repeat: no-repeat, no-repeat;
  background-size: 61rem, 61.4rem;
}

.message_themeTxt {
  margin: 3.2rem auto 0;
  font-size: 2.6rem;
  letter-spacing: 0.1em;
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
  font-weight: 500;
  text-align: center;
}

.message_station {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 2.1rem;
  max-width: 96.1rem;
  margin: 3.6vw auto 0;
  box-sizing: border-box;
}

.message_box {
  width: 50%;
  padding: 0 2.7rem 1.9rem;
  background: var(--main-color);
  box-sizing: border-box;
  border-radius: 1rem;
}

.message_tfm {
  display: block;
  width: 26.1rem;
  margin: 6.8rem auto 5.2rem;
}

.message_lf {
  display: block;
  width: 25.2rem;
  margin: 7.2rem auto 5.5rem;
}

.message_btn {
  display: block;
  max-width: 42.2rem;
  margin: 0 auto;
}

.message_note {
  margin: 0.8rem auto 0;
  color: var(--base-color);
  font-size: clamp(1.4rem, -0.4988rem + 2.469vw, 1.6rem);
  text-align: center;
}

@media (max-width:768px) {
  .message {
    width: 90.667vw;
    margin: 14.933vw auto 0;
    padding: 0 0 4.933vw;
  }
  .message_heading {
    top: -7.733vw;
    width: 51.733vw;
    margin: 0 auto 0.2vw;
  }
  .message_txt {
    padding: 0 5.067vw;
    font-size: 3.2vw;
    line-height: 2;
  }
  .message_theme {
    margin: 8vw auto 0;
    padding: 0 5.067vw;
  }
  .message_themeHeading {
    font-size: 3.467vw;
    font-family: "Zen Old Mincho", serif;
    font-style: normal;
    font-weight: 500;
    text-align: center;
  }
  .message_themeBody {
    margin: 3.467vw auto 0;
    padding: 4vw 0 3.5vw;
    font-size: 4.533vw;
    letter-spacing: 0;
    background-size: 100%, 100%;
  }
  .message_themeTxt {
    margin: 4.1vw auto 0;
    font-size: 3.585vw;
    letter-spacing: 0;
  }
  .message_station {
    display: flex;
    justify-content: start;
    align-items: center;
    flex-flow: column;
    gap: 4.533vw;
    max-width: 100%;
    margin: 8.6vw auto 0;
    padding: 0 5.067vw;
  }
  .message_box {
    width: 80vw;
    padding: 0 3.067vw 3.867vw;
    border-radius: 1.333vw;
  }
  .message_tfm {
    width: 44.8vw;
    margin: 8.667vw auto 8.333vw;
  }
  .message_lf {
    width: 43.067vw;
    margin: 8.533vw auto 8vw;
  }
  .message_btn {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }
  .message_note {
    margin: 1.8vw auto 0;
    padding: 0 0 2vw;
    font-size: 2.667vw;
  }
}
.share {
  margin: 10.6rem auto 0;
}

.share_btn {
  display: block;
  width: 62.6rem;
  margin: 0 auto;
}

.share_icons {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.6rem;
  margin: 5.6rem auto 0;
}

.share_icon {
  width: 4.7rem;
}

@media (max-width:768px) {
  .share {
    margin: 4.4vw auto 0;
  }
  .share_btn {
    width: 90.667vw;
  }
  .share_icons {
    gap: 3.867vw;
    margin: 7.867vw auto 0;
  }
  .share_icon {
    width: 10.4vw;
  }
}
.footer {
  margin: 3.8rem auto 0;
  aspect-ratio: 3200/454;
  background: url(../img/bg_footer.png);
  background-size: 100%;
  background-position: center bottom;
}

.footer_logo {
  display: none;
}

.footer_copyright {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(2rem, -1.7016rem + 4.813vw, 6rem);
  letter-spacing: 0.05em;
  color: var(--main-color);
  font-size: 1.8rem;
  text-align: center;
  box-sizing: border-box;
}

@media (max-width:768px) {
  .footer {
    margin: 7.2vw auto 0;
    aspect-ratio: inherit;
    background: #fff;
  }
  .footer_logo {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 11.733vw;
    height: 32.533vw;
  }
  .footer_tfm {
    width: 36.667vw;
  }
  .footer_lf {
    width: 36.933vw;
  }
  .footer_copyright {
    position: relative;
    inset: inherit;
    display: flex;
    justify-content: center;
    align-items: end;
    aspect-ratio: 750/224;
    padding: 0 0 8.55vw;
    font-size: 2.933vw;
    background: url(../img/sp/bg_footer.png);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center bottom;
  }
}
.pagetop-pc {
  position: fixed;
  right: 3.2rem;
  bottom: 3.5rem;
  cursor: pointer;
  z-index: 2;
}
.pagetop-pc img {
  width: 6rem;
}

.pagetop-sp {
  display: none;
}

@media (max-width:768px) {
  .pagetop-pc {
    display: none !important;
  }
  .pagetop-sp {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 4vw;
    margin: auto 0;
    display: block;
    width: 10.689vw;
    height: 10.689vw;
  }
  .pagetop-sp img {
    width: 100%;
    height: 100%;
  }
}
/* -- UTILITY -- */
/* 共通フッター用 もしくはブレイクポイントごとの表示指定 */
.pcflex {
  display: flex;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

@media (max-width:768px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
  .pcflex {
    display: none;
  }
}
.u-fadeIn {
  opacity: 0;
  filter: blur(8px);
  visibility: hidden;
  will-change: filter, opacity, transform;
}

.u-fadeInUp {
  opacity: 0;
  filter: blur(2px);
  visibility: hidden;
  will-change: filter, opacity, transform;
}