/*global*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #333;
  background-color: #fffef5;
  width: 100vw;
  overflow-x: hidden;
}
html {
  width: 100vw;
  overflow-x: hidden;
}
/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}
img {
  width: 100%;
}

/* Fallback for browsers that don't support scroll-behavior */
@media screen and (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/*part 1*/
.top-nav {
  background-color: #ffffff;
  padding: 10px 20px;
  display: grid;
  grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 15.43vw auto 1.23vw auto 1.23vw auto 1.23vw auto;
  padding: 1.5vh 1vw;

  width: 80%;
  border-radius: 50px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.25));
}
.top-nav > a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.desktop-menu {
  position: fixed;
  top: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  width: 100%;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .top-nav {
    grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 22.43vw auto 2.23vw auto 2.1vw auto 2.1vw auto;
    padding: 1.5vh 4.43vw;
    width: 90%;
  }
}

.top-nav > .logo,
.top-nav > .topnav-1,
.top-nav > .topnav-2,
.top-nav > .topnav-3,
.top-nav > .topnav-4 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.top-nav > .logo {
  grid-area: logo;
}

.top-nav > .topnav-1 {
  grid-area: topnav-1;
}

.top-nav > .topnav-2 {
  grid-area: topnav-2;
}

.top-nav > .topnav-3 {
  grid-area: topnav-3;
}

.top-nav > .topnav-4 {
  grid-area: topnav-4;
}
.logo {
  width: 10vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .logo {
    width: 13vw;
  }
}
.obo-btn {
  width: 13.85vw;
  height: 6.6vh;
}

@media only screen and (max-width: 767px) {
  .obo-btn {
    margin-top: 10px;
    width: 46.85vw;
    padding: 2.32vh 6.96vw 26.1px;
  }
}

.obo-btn img {
  width: 100%;
}
.mobile-menu,
.sticky-menu {
  display: none;
}
@media only screen and (max-width: 767px) {
  .desktop-menu {
    display: none;
  }
  .mobile-menu {
    display: none;
    position: fixed;
    top: 100px;
    left: 10%;
    font-size: var(--f-notosansjp);
    justify-content: center;
    align-items: center;
    z-index: 10000;
  }
  .mobile-menu-in {
    background-color: white;
    border: 1px solid black;
    border-radius: 10px;
    width: 80vw;
    text-align: center;
    padding: 30px 0;
  }

  .mobile-menu-in > div > button {
    background: none;
    border: 0;
    color: #333;
    font-size: var(--f-notosansjp);
  }

  .mobile-menu-in-1 {
    margin-bottom: 15px;
  }

  .sticky-menu > button {
    width: 70px;
    background: none;
    border: 0;
  }
  .sticky-menu > button > img {
    width: 100%;
  }
  .sticky-menu {
    display: block;
    position: fixed;
    top: 20px;
    right: 30px;
    width: 45px;
    z-index: 200;
  }
}

/*part 2*/

.part-2 {
  position: relative;
  margin-top: 0vh;
  background: url("../img/part2.webp");
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 10vh;
  flex-direction: column;
  z-index: -1;
  background-size: 100% 100%;
}

.part-2-1 {
  position: relative;
  z-index: 5;
}
.slider-part-2 {
  margin-top: -8vh;
  margin-bottom: -15%;
  width: 110vw;
  background-color: white;
  position: relative;
  z-index: 3;
  padding: 10vh 0;
  transform: rotate(2deg);
  box-shadow: 0 -2px 2px rgba(250, 193, 198, 1),
    /* Top shadow */ 0 3px 3px rgba(200, 236, 177, 1); /* Bottom shadow */
  margin-left: -5%;
}
@media only screen and (max-width: 767px) {
  .slider-part-2 {
    padding: 5vh 0;
  }
}

.part-2 > img {
  width: 80%;
}

.p-2-kotei {
  width: 100vw !important;
  margin-top: 10vh;
  margin-bottom: -13%;
}

.p-2-kotei > img {
  width: 100%;
}
@media (min-width: 768px) {
  .m-part-2,
  .m-part-5-2 {
    display: none;
  }
}

@media only screen and (max-width: 767px) {
  .part-2,
  .part-5-2 {
    display: none;
  }
  .m-part-2 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 0vh;
    padding: 5%;
    flex-direction: column;
    background: url("../img/m-part2.webp") no-repeat center center;
    background-size: 100% 100%;
  }
  .m-part-2 > img {
    width: 100%;
  }
  .slider-part-2 {
    margin-top: 2vh;
    margin-bottom: -44%;
    width: 110vw;
    margin-left: 0px;
  }
  .p-2-kotei {
    margin-top: 5vh;
    margin-bottom: -20%;
    margin-left: 0px;
  }
}

.swiper-slide {
  text-align: center;
  display: flex !important;
  justify-content: center;
  align-items: center;
}

.swiper-slide img {
  display: block;
  width: 500px;
  height: auto;
  object-fit: cover;
}

@media only screen and (max-width: 767px) {
  .swiper2 {
    width: 340px;
    /* height: calc(100vh - 350px); */
    height: 360px;
    padding-top: 0px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) !important;
    border-radius: 0px;
    box-shadow: none;
    overflow-x: hidden;
  }
  .swiper-slide {
    background-position: center center;
    background-size: cover;
    border-radius: 30px;
  }
  .swiper-slide img {
    display: block;
    width: 85% !important;
  }
}

/*part 3 buffer*/
.part-3-buffer {
  height: 25vh;
  margin-top: 10%;
}
.swiper {
  width: 105vw;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .part-3-buffer {
    height: 5vh;
  }
  .swiper {
    width: 100vw;
    height: auto;
  }
  .swiper-slide img {
    display: block;
    width: 300px;
    height: auto;
    object-fit: cover;
  }
}
/*part 3*/
.part-3 {
  display: grid;
  grid:
    ".               . part-3-img" 3.2vh
    "part-3-text-1   . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-1 . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-2 . part-3-img";
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
  padding: 14vh 0 10vh 0;
  background-color: white;
}

.part-3 > .part-3-text-1 {
  grid-area: part-3-text-1;
}

.part-3 > .part-3-text-2-1 {
  grid-area: part-3-text-2-1;
}

.part-3 > .part-3-text-2-2 {
  grid-area: part-3-text-2-2;
}

.part-3 > .part-3-img {
  grid-area: part-3-img;
  width: 23.02vw;
}
@media only screen and (max-width: 767px) {
  .part-3 {
    display: grid;
    grid:
      ".               " 5vh
      "m-part-3-text-1  "
      ".              " 3vh
      "m-part-3-text-2-1"
      ".              " 3vh
      "m-part-3-text-2-2"
      ".              " 4vh
      "part-3-img     ";
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    padding: 5vh 0;
    background-color: white;
    margin-top: 45%;
  }

  .part-3 > .m-part-3-text-1 {
    grid-area: m-part-3-text-1;
  }

  .part-3 > .m-part-3-text-2-1 {
    grid-area: m-part-3-text-2-1;
  }

  .part-3 > .m-part-3-text-2-2 {
    grid-area: m-part-3-text-2-2;
    padding: 0 30px;
  }

  .part-3 > .part-3-img {
    grid-area: part-3-img;
    width: 75vw;
    margin-left: auto;
    margin-right: auto;
  }
}
.part-3-text-1 {
  color: #ff5487;
  font-size: 3rem;
  font-weight: 900;
}
.m-part-3-text-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-1 {
    display: none;
  }
  .m-part-3-text-1 {
    display: block;
    font-size: 2rem;
    color: #ff5487;
    font-weight: 900;
    text-align: center;
  }
}

@media only screen and (max-width: 767px) {
  .part-3-text-2 {
    width: 90vw;
    padding: 4.61vh 5.69vw;
  }
}
.part-3-text-2-1 {
  color: #333333;
  font-size: 2.25rem;
  font-weight: 600;
}
.m-part-3-text-2-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-1 {
    display: none;
  }
  .m-part-3-text-2-1 {
    display: block;
    color: #333333;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
  }
}

.part-3-text-2-2 {
  font-size: 1rem;
  line-height: 30px;
  text-align: left;
  font-weight: 300;
}
.m-part-3-text-2-2 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-2 {
    display: none;
  }
  .m-part-3-text-2-2 {
    display: block;
    font-size: 1rem;
    text-align: center;
  }
}

/*part 4 buffer*/
.part-4-buffer-1 {
  color: #333;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 4.89vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-buffer-1 {
  }
}
@media only screen and (max-width: 767px) {
  .part-4-buffer-1 {
  }
}

.part-4-buffer-2 {
  height: 10vh;
}

/*part 4*/
.part-4 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: url("../img/part-4-bg.webp") repeat-y top center;
  background-size: contain;
  padding: 13.29vh 0;
}
@media only screen and (max-width: 767px) {
  .part-4 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 5.76vh;
    position: relative;
    background: url(../img/part-4-bg.webp) repeat center center;
    padding: 9.5vh 0;
    background-size: 100% auto;
  }
}

.part-4-img-1 {
  position: absolute;
  top: -2%;
  right: 0%;
}
.part-4-img-2 {
  position: absolute;
  top: 5%;
  left: 0%;
}
.part-4-img-3 {
  position: absolute;
  bottom: 5%;
  left: 0%;
}
.part-4-img-4 {
  position: absolute;
  bottom: 7%;
  right: 0%;
}
@media only screen and (max-width: 767px) {
  .part-4-img-1,
  .part-4-img-2,
  .part-4-img-3,
  .part-4-img-4 {
    display: none;
  }
}
.part-4-top {
  width: 40vw;
  margin-top: -10%;
}
@media only screen and (max-width: 767px) {
  .part-4-top {
    width: 60vw;
  }
}
.part-4-text-1-1 {
  font-weight: 700;
  font-size: 3rem;
  color: #44a059;
  margin-bottom: 2.87vh;
}

.part-4-text-1-2 {
  font-weight: 700;
  font-size: 3rem;
  color: #f55182;
  margin-bottom: 2.87vh;
}

.part-4-text-1-1-1 {
  font-size: 1rem;
  line-height: 1.875;
  font-weight: 300;
  text-align: center;
  margin-bottom: 2.87vh;
}

@media (min-width: 768px) {
  .m-part-4-text-1-1-1 {
    display: none;
  }
}

@media (max-width: 767px) {
  .part-4-text-1-1-1 {
    display: none;
  }
  .m-part-4-text-1-1-1 {
    font-size: 1rem;
    line-height: 1.875;
    font-weight: 300;
    text-align: center;
    margin-bottom: 2.87vh;
  }
}

.part-4-text-1-1-hr {
  width: 100%;
  border-top: 1px solid #5bac6d;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
.part-4-text-1-2-hr {
  width: 100%;
  border-top: 1px solid #f55182;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
@media only screen and (max-width: 767px) {
  .part-4-text-1 {
    font-size: 1.6rem;
  }
}
.part-4-text-2 {
  background-color: white;
  border-radius: 100px;
  width: 70.29vw;
  padding: 7.87vh 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 10;
  border: 1px solid black;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-text-2 {
    border-radius: 40px;
  }
}
@media only screen and (max-width: 767px) {
  .part-4-text-2 {
    width: 90vw;
    border-radius: 20px;
    padding: 3.5vh 0;
  }
}

.part-4-span-1 {
  color: var(--c-blue-1);
  font-weight: 700;
  font-size: 2.5rem;
}

@media only screen and (max-width: 767px) {
  .part-4-span-1 {
    font-size: 1.5rem;
  }
}
table {
  border-collapse: collapse;
}

.section-3-4 {
  background-color: white;
  /*margin-bottom: 3.81vh;*/
}
.sec-3-4-1 {
  margin-bottom: 1.9vh;
}
.section-3-4-in {
  color: #333;
  font-size: 18px;
  font-weight: 350;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .section-3-4-in {
    font-size: 13px;
  }
}
.section-3-4-in > table > tbody > tr > td {
  border: 1px solid #333;
  vertical-align: middle;
  padding: 2.6vh 0;
}

.section-3-4-img {
  width: 8vw;
  background: none;
  border: 0;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .section-3-4-img {
    width: 9.5vw;
  }
}
@media only screen and (max-width: 767px) {
  .section-3-4-img {
    width: 25vw;
  }
}

.section-3-4-img > img {
  width: 100%;
}

.col-table-1,
.p-t-4-1 {
  width: 6.48vw;
}
@media only screen and (max-width: 767px) {
  .col-table-1,
  .p-t-4-1 {
    width: 14.48vw;
  }
}
.col-table-2,
.p-t-4-2 {
  width: 8.92vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-2,
  .p-t-4-2 {
    width: 11.92vw;
  }
}
@media only screen and (max-width: 767px) {
  .col-table-2,
  .p-t-4-2 {
    width: 18vw;
  }
}
.col-table-3,
.p-t-4-3 {
  width: 11.07vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-3,
  .p-t-4-3 {
    width: 11.92vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-3,
  .p-t-4-3 {
    width: 21.07vw;
  }
}

.col-table-4,
.p-t-4-4 {
  width: 18.08vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-4,
  .p-t-4-4 {
    width: 24.08vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-4,
  .p-t-4-4 {
    width: 30.08vw;
  }
}

.col-tb-long {
  width: 10.07vw !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-tb-long {
    width: 12vw !important;
  }
}

@media only screen and (max-width: 767px) {
  .col-tb-long {
    width: 21.15vw !important;
  }
}
.col-table-4-1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1vw;
}

.col-table-4-1-1 {
  text-align: left;
}
.col-table-4-1-2 {
  text-align: right;
}

.p-t-4-2,
.p-t-4-3,
.p-t-4-4 {
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .p-t-4-2,
  .p-t-4-3,
  .p-t-4-4 {
    font-size: 13px;
  }
}

.p-t-in {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
}
.p-t-in-1 {
  width: fit-content;
  border-radius: 50px;
  padding: 1vh 2.5vw;
}

.p-t-in-1-1 {
  background-color: #50a663;
}

.p-t-in-1-2 {
  background-color: #f55182;
}

.part-4-text-2-1 {
  margin-bottom: 2.57vh;
}

.part-4-btn-1 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.part-4-span-1 {
  margin-right: 1.4vw;
}

.part-4-text-2-10 {
  margin-bottom: 0vh;
}
.mobile-text {
  display: none;
}
@media only screen and (max-width: 767px) {
  .mobile-text {
    display: block;
  }
  .mobile-text > .col-table-4-1-1 {
    margin-bottom: 10px !important;
  }
  .mobile-text > .col-table-4-1-1,
  .mobile-text > .col-table-4-1-2 {
    text-align: center !important;
  }
  .Desktop-text {
    display: none;
  }
}

/*detail*/

.koryu,
.taiken {
  display: none;
  margin-left: auto;
  margin-right: auto;
}
.koryu-buffer-1 {
  height: 15vh;
}

@media only screen and (max-width: 767px) {
  .koryu-buffer-1 {
    height: 10vh;
  }
}
.koryu-hr {
  margin-top: 7.5vh;
  margin-bottom: 7.5vh;
  background-color: #fff;
  width: 100%;
}
.koryu-1 {
  width: 40vw;
}

.koryu-2,
.koryu-3,
.koryu-4,
.koryu-5 {
  width: 20vw;
  margin-left: auto;
  margin-right: auto;
}
.koryu-1 > img,
.koryu-2 > img,
.koryu-3 > img,
.koryu-4 > img,
.koryu-5 > img {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .koryu-1 {
    width: 95vw;
  }
  .koryu-2,
  .koryu-3,
  .koryu-4,
  .koryu-5 {
    width: 60vw;
  }
}
/*koryu-1*/
.k-1-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 12.5vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 13vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 40vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-1-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-1-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-1-sensei-1 > img,
.k-1-sensei-2 > img {
  width: 100%;
}

.k-1-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-1-btn > a > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn {
  margin-bottom: 1vh;
  max-width: 40vw;
}

.k-1-btn-txt {
  text-align: center;
  color: #000;
  font-size: 1rem;
  max-width: 40vw;
}

.k-2-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 10vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-2-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 10.5vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-2-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 32vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-2-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-2-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-2-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-2-btn > button {
  background-color: #7a2124;
}

/*part 5*/
.part-5 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6.7vh 0;
  background: url("../img/footer-bg.webp") no-repeat center center;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .part-5 {
    background: url("../img/m-footer-bg.webp") no-repeat bottom center;
    background-size: 100% auto;
  }
}

.part-5-text-1,
.part-5-text-2,
.part-5-text-3,
.part-5-text-4,
.part-5-text-5 {
  text-align: center;
}

.part-5-text-1 {
  font-size: 1.25rem;
  color: #fff;
  font-weight: 600;
  width: 12.48vw;
  padding: 1vh 0;
  background-color: #ff5487;
  border-radius: 40px;
  margin-bottom: 2vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-5-text-1 {
    width: 22.48vw;
  }
}
@media only screen and (max-width: 767px) {
  .part-5-text-1 {
    width: 70vw;
  }
}
.part-5-text-2 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-3 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-4 {
  font-size: 1rem;
  color: #000;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 1.5vh;
}

.part-5-text-5 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  line-height: 1.5;
}

/*coming soon*/
.cs-img-1 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-1 {
    width: 25vw;
  }
}
.cs-img-2 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-2 {
    width: 35vw;
  }
}

.f-part {
  background-color: transparent !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*taiken-1*/
.t-1-sensei {
  display: flex;
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-sensei {
    width: 100%;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-sensei {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}

.t-1-sensei > .t-1-moshikomi {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.t-1-btn > button {
  background-color: #0c9e3b;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-1-btn {
  margin-bottom: 1vh;
}

.t-2-btn > button {
  background-color: #cd8c00;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default;
}

.t-5-btn > button {
  background-color: #fefbec;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #f37b65;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default;
}
.t-3-btn > button {
  background-color: #ea6230;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default;
}
.t-4-btn > button {
  background-color: #559838;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .t-2-btn > button,
  .t-5-btn > a > button,
  .t-3-btn > button,
  .t-4-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-2-btn > button,
  .t-5-btn > a > button,
  .t-3-btn > button,
  .t-4-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-2-btn,
.t-3-btn,
.t-4-btn,
.t-5-btn {
  margin-bottom: 1vh;
}

.taiken-1-s {
  width: 25vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-1-s {
    width: 70vw;
  }
}

.taiken-2-s {
  width: 30vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-2-s {
    width: 80vw;
  }
}
/*global*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #333;
  background-color: #fffef5;
  width: 100vw;
  overflow-x: hidden;
}
html {
  width: 100vw;
  overflow-x: hidden;
}
/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}
img {
  width: 100%;
}

/* Fallback for browsers that don't support scroll-behavior */
@media screen and (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/*part 1*/
.top-nav {
  background-color: #ffffff;
  padding: 10px 20px;
  display: grid;
  grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 15.43vw auto 1.23vw auto 1.23vw auto 1.23vw auto;
  padding: 1.5vh 1vw;

  width: 80%;
  border-radius: 50px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.25));
}
.top-nav > a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.desktop-menu {
  position: fixed;
  top: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  width: 100%;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .top-nav {
    grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 22.43vw auto 2.23vw auto 2.1vw auto 2.1vw auto;
    padding: 1.5vh 4.43vw;
    width: 90%;
  }
}

.top-nav > .logo,
.top-nav > .topnav-1,
.top-nav > .topnav-2,
.top-nav > .topnav-3,
.top-nav > .topnav-4 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.top-nav > .logo {
  grid-area: logo;
}

.top-nav > .topnav-1 {
  grid-area: topnav-1;
}

.top-nav > .topnav-2 {
  grid-area: topnav-2;
}

.top-nav > .topnav-3 {
  grid-area: topnav-3;
}

.top-nav > .topnav-4 {
  grid-area: topnav-4;
}
.logo {
  width: 10vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .logo {
    width: 13vw;
  }
}
.obo-btn {
  width: 13.85vw;
  height: 6.6vh;
}

@media only screen and (max-width: 767px) {
  .obo-btn {
    margin-top: 10px;
    width: 46.85vw;
    padding: 2.32vh 6.96vw 26.1px;
  }
}

.obo-btn img {
  width: 100%;
}
.mobile-menu,
.sticky-menu {
  display: none;
}
@media only screen and (max-width: 767px) {
  .desktop-menu {
    display: none;
  }
  .mobile-menu {
    display: none;
    position: fixed;
    top: 100px;
    left: 10%;
    font-size: var(--f-notosansjp);
    justify-content: center;
    align-items: center;
    z-index: 10000;
  }
  .mobile-menu-in {
    background-color: white;
    border: 1px solid black;
    border-radius: 10px;
    width: 80vw;
    text-align: center;
    padding: 30px 0;
  }

  .mobile-menu-in > div > button {
    background: none;
    border: 0;
    color: #333;
    font-size: var(--f-notosansjp);
  }

  .mobile-menu-in-1 {
    margin-bottom: 15px;
  }

  .sticky-menu > button {
    width: 70px;
    background: none;
    border: 0;
  }
  .sticky-menu > button > img {
    width: 100%;
  }
  .sticky-menu {
    display: block;
    position: fixed;
    top: 20px;
    right: 30px;
    width: 45px;
    z-index: 200;
  }
}

/*part 2*/

.part-2 {
  position: relative;
  margin-top: 0vh;
  background: url("../img/part2.webp");
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 10vh;
  flex-direction: column;
  z-index: -1;
  background-size: 100% 100%;
}

.part-2-1 {
  position: relative;
  z-index: 5;
}
.slider-part-2 {
  margin-top: -8vh;
  margin-bottom: -15%;
  width: 110vw;
  background-color: white;
  position: relative;
  z-index: 3;
  padding: 10vh 0;
  transform: rotate(2deg);
  box-shadow: 0 -2px 2px rgba(250, 193, 198, 1),
    /* Top shadow */ 0 3px 3px rgba(200, 236, 177, 1); /* Bottom shadow */
  margin-left: -5%;
}
@media only screen and (max-width: 767px) {
  .slider-part-2 {
    padding: 5vh 0;
  }
}

.part-2 > img {
  width: 80%;
}

.p-2-kotei {
  width: 100vw !important;
  margin-top: 10vh;
  margin-bottom: -13%;
}

.p-2-kotei > img {
  width: 100%;
}
@media (min-width: 768px) {
  .m-part-2,
  .m-part-5-2 {
    display: none;
  }
}

@media only screen and (max-width: 767px) {
  .part-2,
  .part-5-2 {
    display: none;
  }
  .m-part-2 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 0vh;
    padding: 5%;
    flex-direction: column;
    background: url("../img/m-part2.webp") no-repeat center center;
    background-size: 100% 100%;
  }
  .m-part-2 > img {
    width: 100%;
  }
  .slider-part-2 {
    margin-top: 2vh;
    margin-bottom: -44%;
    width: 110vw;
    margin-left: 0px;
  }
  .p-2-kotei {
    margin-top: 5vh;
    margin-bottom: -20%;
    margin-left: 0px;
  }
}

.swiper-slide {
  text-align: center;
  display: flex !important;
  justify-content: center;
  align-items: center;
}

.swiper-slide img {
  display: block;
  width: 500px;
  height: auto;
  object-fit: cover;
}

@media only screen and (max-width: 767px) {
  .swiper2 {
    width: 340px;
    /* height: calc(100vh - 350px); */
    height: 360px;
    padding-top: 0px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) !important;
    border-radius: 0px;
    box-shadow: none;
    overflow-x: hidden;
  }
  .swiper-slide {
    background-position: center center;
    background-size: cover;
    border-radius: 30px;
  }
  .swiper-slide img {
    display: block;
    width: 85% !important;
  }
}

/*part 3 buffer*/
.part-3-buffer {
  height: 25vh;
  margin-top: 10%;
}
.swiper {
  width: 105vw;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .part-3-buffer {
    height: 5vh;
  }
  .swiper {
    width: 100vw;
    height: auto;
  }
  .swiper-slide img {
    display: block;
    width: 300px;
    height: auto;
    object-fit: cover;
  }
}
/*part 3*/
.part-3 {
  display: grid;
  grid:
    ".               . part-3-img" 3.2vh
    "part-3-text-1   . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-1 . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-2 . part-3-img";
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
  padding: 14vh 0 10vh 0;
  background-color: white;
}

.part-3 > .part-3-text-1 {
  grid-area: part-3-text-1;
}

.part-3 > .part-3-text-2-1 {
  grid-area: part-3-text-2-1;
}

.part-3 > .part-3-text-2-2 {
  grid-area: part-3-text-2-2;
}

.part-3 > .part-3-img {
  grid-area: part-3-img;
  width: 23.02vw;
}
@media only screen and (max-width: 767px) {
  .part-3 {
    display: grid;
    grid:
      ".               " 5vh
      "m-part-3-text-1  "
      ".              " 3vh
      "m-part-3-text-2-1"
      ".              " 3vh
      "m-part-3-text-2-2"
      ".              " 4vh
      "part-3-img     ";
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    padding: 5vh 0;
    background-color: white;
    margin-top: 45%;
  }

  .part-3 > .m-part-3-text-1 {
    grid-area: m-part-3-text-1;
  }

  .part-3 > .m-part-3-text-2-1 {
    grid-area: m-part-3-text-2-1;
  }

  .part-3 > .m-part-3-text-2-2 {
    grid-area: m-part-3-text-2-2;
    padding: 0 30px;
  }

  .part-3 > .part-3-img {
    grid-area: part-3-img;
    width: 75vw;
    margin-left: auto;
    margin-right: auto;
  }
}
.part-3-text-1 {
  color: #ff5487;
  font-size: 3rem;
  font-weight: 900;
}
.m-part-3-text-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-1 {
    display: none;
  }
  .m-part-3-text-1 {
    display: block;
    font-size: 2rem;
    color: #ff5487;
    font-weight: 900;
    text-align: center;
  }
}

@media only screen and (max-width: 767px) {
  .part-3-text-2 {
    width: 90vw;
    padding: 4.61vh 5.69vw;
  }
}
.part-3-text-2-1 {
  color: #333333;
  font-size: 2.25rem;
  font-weight: 600;
}
.m-part-3-text-2-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-1 {
    display: none;
  }
  .m-part-3-text-2-1 {
    display: block;
    color: #333333;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
  }
}

.part-3-text-2-2 {
  font-size: 1rem;
  line-height: 30px;
  text-align: left;
  font-weight: 300;
}
.m-part-3-text-2-2 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-2 {
    display: none;
  }
  .m-part-3-text-2-2 {
    display: block;
    font-size: 1rem;
    text-align: center;
  }
}

/*part 4 buffer*/
.part-4-buffer-1 {
  color: #333;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 4.89vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-buffer-1 {
  }
}
@media only screen and (max-width: 767px) {
  .part-4-buffer-1 {
  }
}

.part-4-buffer-2 {
  height: 10vh;
}

/*part 4*/
.part-4 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: url("../img/part-4-bg.webp") repeat-y top center;
  background-size: contain;
  padding: 13.29vh 0;
}
@media only screen and (max-width: 767px) {
  .part-4 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 5.76vh;
    position: relative;
    background: url(../img/part-4-bg.webp) repeat center center;
    padding: 9.5vh 0;
    background-size: 100% auto;
  }
}

.part-4-img-1 {
  position: absolute;
  top: -2%;
  right: 0%;
}
.part-4-img-2 {
  position: absolute;
  top: 5%;
  left: 0%;
}
.part-4-img-3 {
  position: absolute;
  bottom: 5%;
  left: 0%;
}
.part-4-img-4 {
  position: absolute;
  bottom: 7%;
  right: 0%;
}
@media only screen and (max-width: 767px) {
  .part-4-img-1,
  .part-4-img-2,
  .part-4-img-3,
  .part-4-img-4 {
    display: none;
  }
}
.part-4-top {
  width: 40vw;
  margin-top: -10%;
}
@media only screen and (max-width: 767px) {
  .part-4-top {
    width: 60vw;
  }
}
.part-4-text-1-1 {
  font-weight: 700;
  font-size: 3rem;
  color: #44a059;
  margin-bottom: 2.87vh;
}

.part-4-text-1-2 {
  font-weight: 700;
  font-size: 3rem;
  color: #f55182;
  margin-bottom: 2.87vh;
}

.part-4-text-1-1-1 {
  font-size: 1rem;
  line-height: 1.875;
  font-weight: 300;
  text-align: center;
  margin-bottom: 2.87vh;
}

@media (min-width: 768px) {
  .m-part-4-text-1-1-1 {
    display: none;
  }
}

@media (max-width: 767px) {
  .part-4-text-1-1-1 {
    display: none;
  }
  .m-part-4-text-1-1-1 {
    font-size: 1rem;
    line-height: 1.875;
    font-weight: 300;
    text-align: center;
    margin-bottom: 2.87vh;
  }
}

.part-4-text-1-1-hr {
  width: 100%;
  border-top: 1px solid #5bac6d;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
.part-4-text-1-2-hr {
  width: 100%;
  border-top: 1px solid #f55182;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
@media only screen and (max-width: 767px) {
  .part-4-text-1 {
    font-size: 1.6rem;
  }
}
.part-4-text-2 {
  background-color: white;
  border-radius: 100px;
  width: 70.29vw;
  padding: 7.87vh 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 10;
  border: 1px solid black;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-text-2 {
    border-radius: 40px;
  }
}
@media only screen and (max-width: 767px) {
  .part-4-text-2 {
    width: 90vw;
    border-radius: 20px;
    padding: 3.5vh 0;
  }
}

.part-4-span-1 {
  color: var(--c-blue-1);
  font-weight: 700;
  font-size: 2.5rem;
}

@media only screen and (max-width: 767px) {
  .part-4-span-1 {
    font-size: 1.5rem;
  }
}
table {
  border-collapse: collapse;
}

.section-3-4 {
  background-color: white;
  /*margin-bottom: 3.81vh;*/
}
.sec-3-4-1 {
  margin-bottom: 1.9vh;
}
.section-3-4-in {
  color: #333;
  font-size: 18px;
  font-weight: 350;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .section-3-4-in {
    font-size: 13px;
  }
}
.section-3-4-in > table > tbody > tr > td {
  border: 1px solid #333;
  vertical-align: middle;
  padding: 2.6vh 0;
}

.section-3-4-img {
  width: 8vw;
  background: none;
  border: 0;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .section-3-4-img {
    width: 9.5vw;
  }
}
@media only screen and (max-width: 767px) {
  .section-3-4-img {
    width: 25vw;
  }
}

.section-3-4-img > img {
  width: 100%;
}

.col-table-1,
.p-t-4-1 {
  width: 6.48vw;
}
@media only screen and (max-width: 767px) {
  .col-table-1,
  .p-t-4-1 {
    width: 14.48vw;
  }
}
.col-table-2,
.p-t-4-2 {
  width: 8.92vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-2,
  .p-t-4-2 {
    width: 11.92vw;
  }
}
@media only screen and (max-width: 767px) {
  .col-table-2,
  .p-t-4-2 {
    width: 18vw;
  }
}
.col-table-3,
.p-t-4-3 {
  width: 11.07vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-3,
  .p-t-4-3 {
    width: 11.92vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-3,
  .p-t-4-3 {
    width: 21.07vw;
  }
}

.col-table-4,
.p-t-4-4 {
  width: 18.08vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-4,
  .p-t-4-4 {
    width: 24.08vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-4,
  .p-t-4-4 {
    width: 30.08vw;
  }
}

.col-tb-long {
  width: 10.07vw !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-tb-long {
    width: 12vw !important;
  }
}

@media only screen and (max-width: 767px) {
  .col-tb-long {
    width: 21.15vw !important;
  }
}
.col-table-4-1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1vw;
}

.col-table-4-1-1 {
  text-align: left;
}
.col-table-4-1-2 {
  text-align: right;
}

.p-t-4-2,
.p-t-4-3,
.p-t-4-4 {
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .p-t-4-2,
  .p-t-4-3,
  .p-t-4-4 {
    font-size: 13px;
  }
}

.p-t-in {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
}
.p-t-in-1 {
  width: fit-content;
  border-radius: 50px;
  padding: 1vh 2.5vw;
}

.p-t-in-1-1 {
  background-color: #50a663;
}

.p-t-in-1-2 {
  background-color: #f55182;
}

.part-4-text-2-1 {
  margin-bottom: 2.57vh;
}

.part-4-btn-1 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.part-4-span-1 {
  margin-right: 1.4vw;
}

.part-4-text-2-10 {
  margin-bottom: 0vh;
}
.mobile-text {
  display: none;
}
@media only screen and (max-width: 767px) {
  .mobile-text {
    display: block;
  }
  .mobile-text > .col-table-4-1-1 {
    margin-bottom: 10px !important;
  }
  .mobile-text > .col-table-4-1-1,
  .mobile-text > .col-table-4-1-2 {
    text-align: center !important;
  }
  .Desktop-text {
    display: none;
  }
}

/*detail*/

.koryu,
.taiken {
  display: none;
  margin-left: auto;
  margin-right: auto;
}
.koryu-buffer-1 {
  height: 15vh;
}

@media only screen and (max-width: 767px) {
  .koryu-buffer-1 {
    height: 10vh;
  }
}
.koryu-hr {
  margin-top: 7.5vh;
  margin-bottom: 7.5vh;
  background-color: #fff;
  width: 100%;
}
.koryu-1 {
  width: 40vw;
}

.koryu-2,
.koryu-3,
.koryu-4,
.koryu-5 {
  width: 20vw;
  margin-left: auto;
  margin-right: auto;
}
.koryu-1 > img,
.koryu-2 > img,
.koryu-3 > img,
.koryu-4 > img,
.koryu-5 > img {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .koryu-1 {
    width: 95vw;
  }
  .koryu-2,
  .koryu-3,
  .koryu-4,
  .koryu-5 {
    width: 60vw;
  }
}
/*koryu-1*/
.k-1-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 12.5vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 13vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 40vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-1-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-1-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-1-sensei-1 > img,
.k-1-sensei-2 > img {
  width: 100%;
}

.k-1-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-1-btn > a > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn {
  margin-bottom: 1vh;
  max-width: 40vw;
}

.k-1-btn-txt {
  text-align: center;
  color: #000;
  font-size: 1rem;
  max-width: 40vw;
}

.k-2-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 10vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-2-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 10.5vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-2-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 32vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-2-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-2-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-2-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-2-btn > button {
  background-color: #7a2124;
}
.k-3-btn > a > button {
  background-color: #eb664c;
}

/*part 5*/
.part-5 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6.7vh 0;
  background: url("../img/footer-bg.webp") no-repeat center center;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .part-5 {
    background: url("../img/m-footer-bg.webp") no-repeat bottom center;
    background-size: 100% auto;
  }
}

.part-5-text-1,
.part-5-text-2,
.part-5-text-3,
.part-5-text-4,
.part-5-text-5 {
  text-align: center;
}

.part-5-text-1 {
  font-size: 1.25rem;
  color: #fff;
  font-weight: 600;
  width: 12.48vw;
  padding: 1vh 0;
  background-color: #ff5487;
  border-radius: 40px;
  margin-bottom: 2vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-5-text-1 {
    width: 22.48vw;
  }
}
@media only screen and (max-width: 767px) {
  .part-5-text-1 {
    width: 70vw;
  }
}
.part-5-text-2 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-3 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-4 {
  font-size: 1rem;
  color: #000;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 1.5vh;
}

.part-5-text-5 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  line-height: 1.5;
}

/*coming soon*/
.cs-img-1 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-1 {
    width: 25vw;
  }
}
.cs-img-2 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-2 {
    width: 35vw;
  }
}

.f-part {
  background-color: transparent !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*taiken-1*/
.t-1-sensei {
  display: flex;
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-sensei {
    width: 100%;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-sensei {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}

.t-1-sensei > .t-1-moshikomi {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.t-1-btn > button {
  background-color: #0c9e3b;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-1-btn {
  margin-bottom: 1vh;
}

.t-2-btn > a > button {
  background-color: #cd8c00;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-2-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-2-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-2-btn {
  margin-bottom: 1vh;
}

.taiken-1-s {
  width: 25vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-1-s {
    width: 70vw;
  }
}

.taiken-2-s {
  width: 30vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-2-s {
    width: 80vw;
  }
}
/*global*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #333;
  background-color: #fffef5;
  width: 100vw;
  overflow-x: hidden;
}
html {
  width: 100vw;
  overflow-x: hidden;
}
/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}
img {
  width: 100%;
}

/* Fallback for browsers that don't support scroll-behavior */
@media screen and (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/*part 1*/
.top-nav {
  background-color: #ffffff;
  padding: 10px 20px;
  display: grid;
  grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 15.43vw auto 1.23vw auto 1.23vw auto 1.23vw auto;
  padding: 1.5vh 1vw;

  width: 80%;
  border-radius: 50px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.25));
}
.top-nav > a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.desktop-menu {
  position: fixed;
  top: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  width: 100%;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .top-nav {
    grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 22.43vw auto 2.23vw auto 2.1vw auto 2.1vw auto;
    padding: 1.5vh 4.43vw;
    width: 90%;
  }
}

.top-nav > .logo,
.top-nav > .topnav-1,
.top-nav > .topnav-2,
.top-nav > .topnav-3,
.top-nav > .topnav-4 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.top-nav > .logo {
  grid-area: logo;
}

.top-nav > .topnav-1 {
  grid-area: topnav-1;
}

.top-nav > .topnav-2 {
  grid-area: topnav-2;
}

.top-nav > .topnav-3 {
  grid-area: topnav-3;
}

.top-nav > .topnav-4 {
  grid-area: topnav-4;
}
.logo {
  width: 10vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .logo {
    width: 13vw;
  }
}
.obo-btn {
  width: 13.85vw;
  height: 6.6vh;
}

@media only screen and (max-width: 767px) {
  .obo-btn {
    margin-top: 10px;
    width: 46.85vw;
    padding: 2.32vh 6.96vw 26.1px;
  }
}

.obo-btn img {
  width: 100%;
}
.mobile-menu,
.sticky-menu {
  display: none;
}
@media only screen and (max-width: 767px) {
  .desktop-menu {
    display: none;
  }
  .mobile-menu {
    display: none;
    position: fixed;
    top: 100px;
    left: 10%;
    font-size: var(--f-notosansjp);
    justify-content: center;
    align-items: center;
    z-index: 10000;
  }
  .mobile-menu-in {
    background-color: white;
    border: 1px solid black;
    border-radius: 10px;
    width: 80vw;
    text-align: center;
    padding: 30px 0;
  }

  .mobile-menu-in > div > button {
    background: none;
    border: 0;
    color: #333;
    font-size: var(--f-notosansjp);
  }

  .mobile-menu-in-1 {
    margin-bottom: 15px;
  }

  .sticky-menu > button {
    width: 70px;
    background: none;
    border: 0;
  }
  .sticky-menu > button > img {
    width: 100%;
  }
  .sticky-menu {
    display: block;
    position: fixed;
    top: 20px;
    right: 30px;
    width: 45px;
    z-index: 200;
  }
}

/*part 2*/

.part-2 {
  position: relative;
  margin-top: 0vh;
  background: url("../img/part2.webp");
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 10vh;
  flex-direction: column;
  z-index: -1;
  background-size: 100% 100%;
}

.part-2-1 {
  position: relative;
  z-index: 5;
}
.slider-part-2 {
  margin-top: -8vh;
  margin-bottom: -15%;
  width: 110vw;
  background-color: white;
  position: relative;
  z-index: 3;
  padding: 10vh 0;
  transform: rotate(2deg);
  box-shadow: 0 -2px 2px rgba(250, 193, 198, 1),
    /* Top shadow */ 0 3px 3px rgba(200, 236, 177, 1); /* Bottom shadow */
  margin-left: -5%;
}
@media only screen and (max-width: 767px) {
  .slider-part-2 {
    padding: 5vh 0;
  }
}

.part-2 > img {
  width: 80%;
}

.p-2-kotei {
  width: 100vw !important;
  margin-top: 10vh;
  margin-bottom: -13%;
}

.p-2-kotei > img {
  width: 100%;
}
@media (min-width: 768px) {
  .m-part-2,
  .m-part-5-2 {
    display: none;
  }
}

@media only screen and (max-width: 767px) {
  .part-2,
  .part-5-2 {
    display: none;
  }
  .m-part-2 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 0vh;
    padding: 5%;
    flex-direction: column;
    background: url("../img/m-part2.webp") no-repeat center center;
    background-size: 100% 100%;
  }
  .m-part-2 > img {
    width: 100%;
  }
  .slider-part-2 {
    margin-top: 2vh;
    margin-bottom: -44%;
    width: 110vw;
    margin-left: 0px;
  }
  .p-2-kotei {
    margin-top: 5vh;
    margin-bottom: -20%;
    margin-left: 0px;
  }
}

.swiper-slide {
  text-align: center;
  display: flex !important;
  justify-content: center;
  align-items: center;
}

.swiper-slide img {
  display: block;
  width: 500px;
  height: auto;
  object-fit: cover;
}

@media only screen and (max-width: 767px) {
  .swiper2 {
    width: 340px;
    /* height: calc(100vh - 350px); */
    height: 360px;
    padding-top: 0px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) !important;
    border-radius: 0px;
    box-shadow: none;
    overflow-x: hidden;
  }
  .swiper-slide {
    background-position: center center;
    background-size: cover;
    border-radius: 30px;
  }
  .swiper-slide img {
    display: block;
    width: 85% !important;
  }
}

/*part 3 buffer*/
.part-3-buffer {
  height: 25vh;
  margin-top: 10%;
}
.swiper {
  width: 105vw;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .part-3-buffer {
    height: 5vh;
  }
  .swiper {
    width: 100vw;
    height: auto;
  }
  .swiper-slide img {
    display: block;
    width: 300px;
    height: auto;
    object-fit: cover;
  }
}
/*part 3*/
.part-3 {
  display: grid;
  grid:
    ".               . part-3-img" 3.2vh
    "part-3-text-1   . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-1 . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-2 . part-3-img";
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
  padding: 14vh 0 10vh 0;
  background-color: white;
}

.part-3 > .part-3-text-1 {
  grid-area: part-3-text-1;
}

.part-3 > .part-3-text-2-1 {
  grid-area: part-3-text-2-1;
}

.part-3 > .part-3-text-2-2 {
  grid-area: part-3-text-2-2;
}

.part-3 > .part-3-img {
  grid-area: part-3-img;
  width: 23.02vw;
}
@media only screen and (max-width: 767px) {
  .part-3 {
    display: grid;
    grid:
      ".               " 5vh
      "m-part-3-text-1  "
      ".              " 3vh
      "m-part-3-text-2-1"
      ".              " 3vh
      "m-part-3-text-2-2"
      ".              " 4vh
      "part-3-img     ";
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    padding: 5vh 0;
    background-color: white;
    margin-top: 45%;
  }

  .part-3 > .m-part-3-text-1 {
    grid-area: m-part-3-text-1;
  }

  .part-3 > .m-part-3-text-2-1 {
    grid-area: m-part-3-text-2-1;
  }

  .part-3 > .m-part-3-text-2-2 {
    grid-area: m-part-3-text-2-2;
    padding: 0 30px;
  }

  .part-3 > .part-3-img {
    grid-area: part-3-img;
    width: 75vw;
    margin-left: auto;
    margin-right: auto;
  }
}
.part-3-text-1 {
  color: #ff5487;
  font-size: 3rem;
  font-weight: 900;
}
.m-part-3-text-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-1 {
    display: none;
  }
  .m-part-3-text-1 {
    display: block;
    font-size: 2rem;
    color: #ff5487;
    font-weight: 900;
    text-align: center;
  }
}

@media only screen and (max-width: 767px) {
  .part-3-text-2 {
    width: 90vw;
    padding: 4.61vh 5.69vw;
  }
}
.part-3-text-2-1 {
  color: #333333;
  font-size: 2.25rem;
  font-weight: 600;
}
.m-part-3-text-2-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-1 {
    display: none;
  }
  .m-part-3-text-2-1 {
    display: block;
    color: #333333;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
  }
}

.part-3-text-2-2 {
  font-size: 1rem;
  line-height: 30px;
  text-align: left;
  font-weight: 300;
}
.m-part-3-text-2-2 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-2 {
    display: none;
  }
  .m-part-3-text-2-2 {
    display: block;
    font-size: 1rem;
    text-align: center;
  }
}

/*part 4 buffer*/
.part-4-buffer-1 {
  color: #333;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 4.89vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-buffer-1 {
  }
}
@media only screen and (max-width: 767px) {
  .part-4-buffer-1 {
  }
}

.part-4-buffer-2 {
  height: 10vh;
}

/*part 4*/
.part-4 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: url("../img/part-4-bg.webp") repeat-y top center;
  background-size: contain;
  padding: 13.29vh 0;
}
@media only screen and (max-width: 767px) {
  .part-4 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 5.76vh;
    position: relative;
    background: url(../img/part-4-bg.webp) repeat center center;
    padding: 9.5vh 0;
    background-size: 100% auto;
  }
}

.part-4-img-1 {
  position: absolute;
  top: -2%;
  right: 0%;
}
.part-4-img-2 {
  position: absolute;
  top: 5%;
  left: 0%;
}
.part-4-img-3 {
  position: absolute;
  bottom: 5%;
  left: 0%;
}
.part-4-img-4 {
  position: absolute;
  bottom: 7%;
  right: 0%;
}
@media only screen and (max-width: 767px) {
  .part-4-img-1,
  .part-4-img-2,
  .part-4-img-3,
  .part-4-img-4 {
    display: none;
  }
}
.part-4-top {
  width: 40vw;
  margin-top: -10%;
}
@media only screen and (max-width: 767px) {
  .part-4-top {
    width: 60vw;
  }
}
.part-4-text-1-1 {
  font-weight: 700;
  font-size: 3rem;
  color: #44a059;
  margin-bottom: 2.87vh;
}

.part-4-text-1-2 {
  font-weight: 700;
  font-size: 3rem;
  color: #f55182;
  margin-bottom: 2.87vh;
}

.part-4-text-1-1-1 {
  font-size: 1rem;
  line-height: 1.875;
  font-weight: 300;
  text-align: center;
  margin-bottom: 2.87vh;
}

@media (min-width: 768px) {
  .m-part-4-text-1-1-1 {
    display: none;
  }
}

@media (max-width: 767px) {
  .part-4-text-1-1-1 {
    display: none;
  }
  .m-part-4-text-1-1-1 {
    font-size: 1rem;
    line-height: 1.875;
    font-weight: 300;
    text-align: center;
    margin-bottom: 2.87vh;
  }
}

.part-4-text-1-1-hr {
  width: 100%;
  border-top: 1px solid #5bac6d;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
.part-4-text-1-2-hr {
  width: 100%;
  border-top: 1px solid #f55182;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
@media only screen and (max-width: 767px) {
  .part-4-text-1 {
    font-size: 1.6rem;
  }
}
.part-4-text-2 {
  background-color: white;
  border-radius: 100px;
  width: 70.29vw;
  padding: 7.87vh 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 10;
  border: 1px solid black;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-text-2 {
    border-radius: 40px;
  }
}
@media only screen and (max-width: 767px) {
  .part-4-text-2 {
    width: 90vw;
    border-radius: 20px;
    padding: 3.5vh 0;
  }
}

.part-4-span-1 {
  color: var(--c-blue-1);
  font-weight: 700;
  font-size: 2.5rem;
}

@media only screen and (max-width: 767px) {
  .part-4-span-1 {
    font-size: 1.5rem;
  }
}
table {
  border-collapse: collapse;
}

.section-3-4 {
  background-color: white;
  /*margin-bottom: 3.81vh;*/
}
.sec-3-4-1 {
  margin-bottom: 1.9vh;
}
.section-3-4-in {
  color: #333;
  font-size: 18px;
  font-weight: 350;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .section-3-4-in {
    font-size: 13px;
  }
}
.section-3-4-in > table > tbody > tr > td {
  border: 1px solid #333;
  vertical-align: middle;
  padding: 2.6vh 0;
}

.section-3-4-img {
  width: 8vw;
  background: none;
  border: 0;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .section-3-4-img {
    width: 9.5vw;
  }
}
@media only screen and (max-width: 767px) {
  .section-3-4-img {
    width: 25vw;
  }
}

.section-3-4-img > img {
  width: 100%;
}

.col-table-1,
.p-t-4-1 {
  width: 6.48vw;
}
@media only screen and (max-width: 767px) {
  .col-table-1,
  .p-t-4-1 {
    width: 14.48vw;
  }
}
.col-table-2,
.p-t-4-2 {
  width: 8.92vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-2,
  .p-t-4-2 {
    width: 11.92vw;
  }
}
@media only screen and (max-width: 767px) {
  .col-table-2,
  .p-t-4-2 {
    width: 18vw;
  }
}
.col-table-3,
.p-t-4-3 {
  width: 11.07vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-3,
  .p-t-4-3 {
    width: 11.92vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-3,
  .p-t-4-3 {
    width: 21.07vw;
  }
}

.col-table-4,
.p-t-4-4 {
  width: 18.08vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-4,
  .p-t-4-4 {
    width: 24.08vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-4,
  .p-t-4-4 {
    width: 30.08vw;
  }
}

.col-tb-long {
  width: 10.07vw !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-tb-long {
    width: 12vw !important;
  }
}

@media only screen and (max-width: 767px) {
  .col-tb-long {
    width: 21.15vw !important;
  }
}
.col-table-4-1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1vw;
}

.col-table-4-1-1 {
  text-align: left;
}
.col-table-4-1-2 {
  text-align: right;
}

.p-t-4-2,
.p-t-4-3,
.p-t-4-4 {
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .p-t-4-2,
  .p-t-4-3,
  .p-t-4-4 {
    font-size: 13px;
  }
}

.p-t-in {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
}
.p-t-in-1 {
  width: fit-content;
  border-radius: 50px;
  padding: 1vh 2.5vw;
}

.p-t-in-1-1 {
  background-color: #50a663;
}

.p-t-in-1-2 {
  background-color: #f55182;
}

.part-4-text-2-1 {
  margin-bottom: 2.57vh;
}

.part-4-btn-1 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.part-4-span-1 {
  margin-right: 1.4vw;
}

.part-4-text-2-10 {
  margin-bottom: 0vh;
}
.mobile-text {
  display: none;
}
@media only screen and (max-width: 767px) {
  .mobile-text {
    display: block;
  }
  .mobile-text > .col-table-4-1-1 {
    margin-bottom: 10px !important;
  }
  .mobile-text > .col-table-4-1-1,
  .mobile-text > .col-table-4-1-2 {
    text-align: center !important;
  }
  .Desktop-text {
    display: none;
  }
}

/*detail*/

.koryu,
.taiken {
  display: none;
  margin-left: auto;
  margin-right: auto;
}
.koryu-buffer-1 {
  height: 15vh;
}

@media only screen and (max-width: 767px) {
  .koryu-buffer-1 {
    height: 10vh;
  }
}
.koryu-hr {
  margin-top: 7.5vh;
  margin-bottom: 7.5vh;
  background-color: #fff;
  width: 100%;
}
.koryu-1 {
  width: 40vw;
}

.koryu-2,
.koryu-3,
.koryu-4,
.koryu-5 {
  width: 20vw;
  margin-left: auto;
  margin-right: auto;
}
.koryu-1 > img,
.koryu-2 > img,
.koryu-3 > img,
.koryu-4 > img,
.koryu-5 > img {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .koryu-1 {
    width: 95vw;
  }
  .koryu-2,
  .koryu-3,
  .koryu-4,
  .koryu-5 {
    width: 60vw;
  }
}
/*koryu-1*/
.k-1-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 12.5vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 13vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 40vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-1-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-1-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-1-sensei-1 > img,
.k-1-sensei-2 > img {
  width: 100%;
}

.k-1-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-1-btn > a > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn {
  margin-bottom: 1vh;
  max-width: 40vw;
}

.k-1-btn-txt {
  text-align: center;
  color: #000;
  font-size: 1rem;
  max-width: 40vw;
}

.k-2-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 10vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-2-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 10.5vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-2-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 32vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-2-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-2-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-2-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-2-btn > button {
  background-color: #7a2124;
}
.k-3-btn > a > button {
  background-color: #eb664c;
}

/*part 5*/
.part-5 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6.7vh 0;
  background: url("../img/footer-bg.webp") no-repeat center center;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .part-5 {
    background: url("../img/m-footer-bg.webp") no-repeat bottom center;
    background-size: 100% auto;
  }
}

.part-5-text-1,
.part-5-text-2,
.part-5-text-3,
.part-5-text-4,
.part-5-text-5 {
  text-align: center;
}

.part-5-text-1 {
  font-size: 1.25rem;
  color: #fff;
  font-weight: 600;
  width: 12.48vw;
  padding: 1vh 0;
  background-color: #ff5487;
  border-radius: 40px;
  margin-bottom: 2vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-5-text-1 {
    width: 22.48vw;
  }
}
@media only screen and (max-width: 767px) {
  .part-5-text-1 {
    width: 70vw;
  }
}
.part-5-text-2 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-3 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-4 {
  font-size: 1rem;
  color: #000;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 1.5vh;
}

.part-5-text-5 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  line-height: 1.5;
}

/*coming soon*/
.cs-img-1 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-1 {
    width: 25vw;
  }
}
.cs-img-2 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-2 {
    width: 35vw;
  }
}

.f-part {
  background-color: transparent !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*taiken-1*/
.t-1-sensei {
  display: flex;
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-sensei {
    width: 100%;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-sensei {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}

.t-1-sensei > .t-1-moshikomi {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.t-1-btn > button {
  background-color: #0c9e3b;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-1-btn {
  margin-bottom: 1vh;
}

.t-2-btn > a > button {
  background-color: #cd8c00;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-2-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-2-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-2-btn {
  margin-bottom: 1vh;
}

.taiken-1-s {
  width: 25vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-1-s {
    width: 70vw;
  }
}

.taiken-2-s {
  width: 30vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-2-s {
    width: 80vw;
  }
}
/*global*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #333;
  background-color: #fffef5;
  width: 100vw;
  overflow-x: hidden;
}
html {
  width: 100vw;
  overflow-x: hidden;
}
/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}
img {
  width: 100%;
}

/* Fallback for browsers that don't support scroll-behavior */
@media screen and (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/*part 1*/
.top-nav {
  background-color: #ffffff;
  padding: 10px 20px;
  display: grid;
  grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 15.43vw auto 1.23vw auto 1.23vw auto 1.23vw auto;
  padding: 1.5vh 1vw;

  width: 80%;
  border-radius: 50px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.25));
}
.top-nav > a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.desktop-menu {
  position: fixed;
  top: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  width: 100%;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .top-nav {
    grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 22.43vw auto 2.23vw auto 2.1vw auto 2.1vw auto;
    padding: 1.5vh 4.43vw;
    width: 90%;
  }
}

.top-nav > .logo,
.top-nav > .topnav-1,
.top-nav > .topnav-2,
.top-nav > .topnav-3,
.top-nav > .topnav-4 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.top-nav > .logo {
  grid-area: logo;
}

.top-nav > .topnav-1 {
  grid-area: topnav-1;
}

.top-nav > .topnav-2 {
  grid-area: topnav-2;
}

.top-nav > .topnav-3 {
  grid-area: topnav-3;
}

.top-nav > .topnav-4 {
  grid-area: topnav-4;
}
.logo {
  width: 10vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .logo {
    width: 13vw;
  }
}
.obo-btn {
  width: 13.85vw;
  height: 6.6vh;
}

@media only screen and (max-width: 767px) {
  .obo-btn {
    margin-top: 10px;
    width: 46.85vw;
    padding: 2.32vh 6.96vw 26.1px;
  }
}

.obo-btn img {
  width: 100%;
}
.mobile-menu,
.sticky-menu {
  display: none;
}
@media only screen and (max-width: 767px) {
  .desktop-menu {
    display: none;
  }
  .mobile-menu {
    display: none;
    position: fixed;
    top: 100px;
    left: 10%;
    font-size: var(--f-notosansjp);
    justify-content: center;
    align-items: center;
    z-index: 10000;
  }
  .mobile-menu-in {
    background-color: white;
    border: 1px solid black;
    border-radius: 10px;
    width: 80vw;
    text-align: center;
    padding: 30px 0;
  }

  .mobile-menu-in > div > button {
    background: none;
    border: 0;
    color: #333;
    font-size: var(--f-notosansjp);
  }

  .mobile-menu-in-1 {
    margin-bottom: 15px;
  }

  .sticky-menu > button {
    width: 70px;
    background: none;
    border: 0;
  }
  .sticky-menu > button > img {
    width: 100%;
  }
  .sticky-menu {
    display: block;
    position: fixed;
    top: 20px;
    right: 30px;
    width: 45px;
    z-index: 200;
  }
}

/*part 2*/

.part-2 {
  position: relative;
  margin-top: 0vh;
  background: url("../img/part2.webp");
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 10vh;
  flex-direction: column;
  z-index: -1;
  background-size: 100% 100%;
}

.part-2-1 {
  position: relative;
  z-index: 5;
}
.slider-part-2 {
  margin-top: -8vh;
  margin-bottom: -15%;
  width: 110vw;
  background-color: white;
  position: relative;
  z-index: 3;
  padding: 10vh 0;
  transform: rotate(2deg);
  box-shadow: 0 -2px 2px rgba(250, 193, 198, 1),
    /* Top shadow */ 0 3px 3px rgba(200, 236, 177, 1); /* Bottom shadow */
  margin-left: -5%;
}
@media only screen and (max-width: 767px) {
  .slider-part-2 {
    padding: 5vh 0;
  }
}

.part-2 > img {
  width: 80%;
}

.p-2-kotei {
  width: 100vw !important;
  margin-top: 10vh;
  margin-bottom: -13%;
}

.p-2-kotei > img {
  width: 100%;
}
@media (min-width: 768px) {
  .m-part-2,
  .m-part-5-2 {
    display: none;
  }
}

@media only screen and (max-width: 767px) {
  .part-2,
  .part-5-2 {
    display: none;
  }
  .m-part-2 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 0vh;
    padding: 5%;
    flex-direction: column;
    background: url("../img/m-part2.webp") no-repeat center center;
    background-size: 100% 100%;
  }
  .m-part-2 > img {
    width: 100%;
  }
  .slider-part-2 {
    margin-top: 2vh;
    margin-bottom: -44%;
    width: 110vw;
    margin-left: 0px;
  }
  .p-2-kotei {
    margin-top: 5vh;
    margin-bottom: -20%;
    margin-left: 0px;
  }
}

.swiper-slide {
  text-align: center;
  display: flex !important;
  justify-content: center;
  align-items: center;
}

.swiper-slide img {
  display: block;
  width: 500px;
  height: auto;
  object-fit: cover;
}

@media only screen and (max-width: 767px) {
  .swiper2 {
    width: 340px;
    /* height: calc(100vh - 350px); */
    height: 360px;
    padding-top: 0px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) !important;
    border-radius: 0px;
    box-shadow: none;
    overflow-x: hidden;
  }
  .swiper-slide {
    background-position: center center;
    background-size: cover;
    border-radius: 30px;
  }
  .swiper-slide img {
    display: block;
    width: 85% !important;
  }
}

/*part 3 buffer*/
.part-3-buffer {
  height: 25vh;
  margin-top: 10%;
}
.swiper {
  width: 105vw;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .part-3-buffer {
    height: 5vh;
  }
  .swiper {
    width: 100vw;
    height: auto;
  }
  .swiper-slide img {
    display: block;
    width: 300px;
    height: auto;
    object-fit: cover;
  }
}
/*part 3*/
.part-3 {
  display: grid;
  grid:
    ".               . part-3-img" 3.2vh
    "part-3-text-1   . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-1 . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-2 . part-3-img";
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
  padding: 14vh 0 10vh 0;
  background-color: white;
}

.part-3 > .part-3-text-1 {
  grid-area: part-3-text-1;
}

.part-3 > .part-3-text-2-1 {
  grid-area: part-3-text-2-1;
}

.part-3 > .part-3-text-2-2 {
  grid-area: part-3-text-2-2;
}

.part-3 > .part-3-img {
  grid-area: part-3-img;
  width: 23.02vw;
}
@media only screen and (max-width: 767px) {
  .part-3 {
    display: grid;
    grid:
      ".               " 5vh
      "m-part-3-text-1  "
      ".              " 3vh
      "m-part-3-text-2-1"
      ".              " 3vh
      "m-part-3-text-2-2"
      ".              " 4vh
      "part-3-img     ";
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    padding: 5vh 0;
    background-color: white;
    margin-top: 45%;
  }

  .part-3 > .m-part-3-text-1 {
    grid-area: m-part-3-text-1;
  }

  .part-3 > .m-part-3-text-2-1 {
    grid-area: m-part-3-text-2-1;
  }

  .part-3 > .m-part-3-text-2-2 {
    grid-area: m-part-3-text-2-2;
    padding: 0 30px;
  }

  .part-3 > .part-3-img {
    grid-area: part-3-img;
    width: 75vw;
    margin-left: auto;
    margin-right: auto;
  }
}
.part-3-text-1 {
  color: #ff5487;
  font-size: 3rem;
  font-weight: 900;
}
.m-part-3-text-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-1 {
    display: none;
  }
  .m-part-3-text-1 {
    display: block;
    font-size: 2rem;
    color: #ff5487;
    font-weight: 900;
    text-align: center;
  }
}

@media only screen and (max-width: 767px) {
  .part-3-text-2 {
    width: 90vw;
    padding: 4.61vh 5.69vw;
  }
}
.part-3-text-2-1 {
  color: #333333;
  font-size: 2.25rem;
  font-weight: 600;
}
.m-part-3-text-2-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-1 {
    display: none;
  }
  .m-part-3-text-2-1 {
    display: block;
    color: #333333;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
  }
}

.part-3-text-2-2 {
  font-size: 1rem;
  line-height: 30px;
  text-align: left;
  font-weight: 300;
}
.m-part-3-text-2-2 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-2 {
    display: none;
  }
  .m-part-3-text-2-2 {
    display: block;
    font-size: 1rem;
    text-align: center;
  }
}

/*part 4 buffer*/
.part-4-buffer-1 {
  color: #333;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 4.89vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-buffer-1 {
  }
}
@media only screen and (max-width: 767px) {
  .part-4-buffer-1 {
  }
}

.part-4-buffer-2 {
  height: 10vh;
}

/*part 4*/
.part-4 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: url("../img/part-4-bg.webp") repeat-y top center;
  background-size: contain;
  padding: 13.29vh 0;
}
@media only screen and (max-width: 767px) {
  .part-4 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 5.76vh;
    position: relative;
    background: url(../img/part-4-bg.webp) repeat center center;
    padding: 9.5vh 0;
    background-size: 100% auto;
  }
}

.part-4-img-1 {
  position: absolute;
  top: -2%;
  right: 0%;
}
.part-4-img-2 {
  position: absolute;
  top: 5%;
  left: 0%;
}
.part-4-img-3 {
  position: absolute;
  bottom: 5%;
  left: 0%;
}
.part-4-img-4 {
  position: absolute;
  bottom: 7%;
  right: 0%;
}
@media only screen and (max-width: 767px) {
  .part-4-img-1,
  .part-4-img-2,
  .part-4-img-3,
  .part-4-img-4 {
    display: none;
  }
}
.part-4-top {
  width: 40vw;
  margin-top: -10%;
}
@media only screen and (max-width: 767px) {
  .part-4-top {
    width: 60vw;
  }
}
.part-4-text-1-1 {
  font-weight: 700;
  font-size: 3rem;
  color: #44a059;
  margin-bottom: 2.87vh;
}

.part-4-text-1-2 {
  font-weight: 700;
  font-size: 3rem;
  color: #f55182;
  margin-bottom: 2.87vh;
}

.part-4-text-1-1-1 {
  font-size: 1rem;
  line-height: 1.875;
  font-weight: 300;
  text-align: center;
  margin-bottom: 2.87vh;
}

@media (min-width: 768px) {
  .m-part-4-text-1-1-1 {
    display: none;
  }
}

@media (max-width: 767px) {
  .part-4-text-1-1-1 {
    display: none;
  }
  .m-part-4-text-1-1-1 {
    font-size: 1rem;
    line-height: 1.875;
    font-weight: 300;
    text-align: center;
    margin-bottom: 2.87vh;
  }
}

.part-4-text-1-1-hr {
  width: 100%;
  border-top: 1px solid #5bac6d;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
.part-4-text-1-2-hr {
  width: 100%;
  border-top: 1px solid #f55182;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
@media only screen and (max-width: 767px) {
  .part-4-text-1 {
    font-size: 1.6rem;
  }
}
.part-4-text-2 {
  background-color: white;
  border-radius: 100px;
  width: 70.29vw;
  padding: 7.87vh 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 10;
  border: 1px solid black;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-text-2 {
    border-radius: 40px;
  }
}
@media only screen and (max-width: 767px) {
  .part-4-text-2 {
    width: 90vw;
    border-radius: 20px;
    padding: 3.5vh 0;
  }
}

.part-4-span-1 {
  color: var(--c-blue-1);
  font-weight: 700;
  font-size: 2.5rem;
}

@media only screen and (max-width: 767px) {
  .part-4-span-1 {
    font-size: 1.5rem;
  }
}
table {
  border-collapse: collapse;
}

.section-3-4 {
  background-color: white;
  /*margin-bottom: 3.81vh;*/
}
.sec-3-4-1 {
  margin-bottom: 1.9vh;
}
.section-3-4-in {
  color: #333;
  font-size: 18px;
  font-weight: 350;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .section-3-4-in {
    font-size: 13px;
  }
}
.section-3-4-in > table > tbody > tr > td {
  border: 1px solid #333;
  vertical-align: middle;
  padding: 2.6vh 0;
}

.section-3-4-img {
  width: 8vw;
  background: none;
  border: 0;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .section-3-4-img {
    width: 9.5vw;
  }
}
@media only screen and (max-width: 767px) {
  .section-3-4-img {
    width: 25vw;
  }
}

.section-3-4-img > img {
  width: 100%;
}

.col-table-1,
.p-t-4-1 {
  width: 6.48vw;
}
@media only screen and (max-width: 767px) {
  .col-table-1,
  .p-t-4-1 {
    width: 14.48vw;
  }
}
.col-table-2,
.p-t-4-2 {
  width: 8.92vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-2,
  .p-t-4-2 {
    width: 11.92vw;
  }
}
@media only screen and (max-width: 767px) {
  .col-table-2,
  .p-t-4-2 {
    width: 18vw;
  }
}
.col-table-3,
.p-t-4-3 {
  width: 11.07vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-3,
  .p-t-4-3 {
    width: 11.92vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-3,
  .p-t-4-3 {
    width: 21.07vw;
  }
}

.col-table-4,
.p-t-4-4 {
  width: 18.08vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-4,
  .p-t-4-4 {
    width: 24.08vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-4,
  .p-t-4-4 {
    width: 30.08vw;
  }
}

.col-tb-long {
  width: 10.07vw !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-tb-long {
    width: 12vw !important;
  }
}

@media only screen and (max-width: 767px) {
  .col-tb-long {
    width: 21.15vw !important;
  }
}
.col-table-4-1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1vw;
}

.col-table-4-1-1 {
  text-align: left;
}
.col-table-4-1-2 {
  text-align: right;
}

.p-t-4-2,
.p-t-4-3,
.p-t-4-4 {
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .p-t-4-2,
  .p-t-4-3,
  .p-t-4-4 {
    font-size: 13px;
  }
}

.p-t-in {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
}
.p-t-in-1 {
  width: fit-content;
  border-radius: 50px;
  padding: 1vh 2.5vw;
}

.p-t-in-1-1 {
  background-color: #50a663;
}

.p-t-in-1-2 {
  background-color: #f55182;
}

.part-4-text-2-1 {
  margin-bottom: 2.57vh;
}

.part-4-btn-1 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.part-4-span-1 {
  margin-right: 1.4vw;
}

.part-4-text-2-10 {
  margin-bottom: 0vh;
}
.mobile-text {
  display: none;
}
@media only screen and (max-width: 767px) {
  .mobile-text {
    display: block;
  }
  .mobile-text > .col-table-4-1-1 {
    margin-bottom: 10px !important;
  }
  .mobile-text > .col-table-4-1-1,
  .mobile-text > .col-table-4-1-2 {
    text-align: center !important;
  }
  .Desktop-text {
    display: none;
  }
}

/*detail*/

.koryu,
.taiken {
  display: none;
  margin-left: auto;
  margin-right: auto;
}
.koryu-buffer-1 {
  height: 15vh;
}

@media only screen and (max-width: 767px) {
  .koryu-buffer-1 {
    height: 10vh;
  }
}
.koryu-hr {
  margin-top: 7.5vh;
  margin-bottom: 7.5vh;
  background-color: #fff;
  width: 100%;
}
.koryu-1 {
  width: 40vw;
}

.koryu-2,
.koryu-3,
.koryu-4,
.koryu-5 {
  width: 20vw;
  margin-left: auto;
  margin-right: auto;
}
.koryu-1 > img,
.koryu-2 > img,
.koryu-3 > img,
.koryu-4 > img,
.koryu-5 > img {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .koryu-1 {
    width: 95vw;
  }
  .koryu-2,
  .koryu-3,
  .koryu-4,
  .koryu-5 {
    width: 60vw;
  }
}
/*koryu-1*/
.k-1-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 12.5vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 13vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 40vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-1-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-1-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-1-sensei-1 > img,
.k-1-sensei-2 > img {
  width: 100%;
}

.k-1-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-1-btn > a > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn {
  margin-bottom: 1vh;
  max-width: 40vw;
}

.k-1-btn-txt {
  text-align: center;
  color: #000;
  font-size: 1rem;
  max-width: 40vw;
}

.k-2-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 10vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-2-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 10.5vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-2-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 32vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-2-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-2-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-2-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-2-btn > button {
  background-color: #7a2124;
}
.k-3-btn > a > button {
  background-color: #eb664c;
}

/*part 5*/
.part-5 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6.7vh 0;
  background: url("../img/footer-bg.webp") no-repeat center center;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .part-5 {
    background: url("../img/m-footer-bg.webp") no-repeat bottom center;
    background-size: 100% auto;
  }
}

.part-5-text-1,
.part-5-text-2,
.part-5-text-3,
.part-5-text-4,
.part-5-text-5 {
  text-align: center;
}

.part-5-text-1 {
  font-size: 1.25rem;
  color: #fff;
  font-weight: 600;
  width: 12.48vw;
  padding: 1vh 0;
  background-color: #ff5487;
  border-radius: 40px;
  margin-bottom: 2vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-5-text-1 {
    width: 22.48vw;
  }
}
@media only screen and (max-width: 767px) {
  .part-5-text-1 {
    width: 70vw;
  }
}
.part-5-text-2 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-3 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-4 {
  font-size: 1rem;
  color: #000;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 1.5vh;
}

.part-5-text-5 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  line-height: 1.5;
}

/*coming soon*/
.cs-img-1 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-1 {
    width: 25vw;
  }
}
.cs-img-2 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-2 {
    width: 35vw;
  }
}

.f-part {
  background-color: transparent !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*taiken-1*/
.t-1-sensei {
  display: flex;
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-sensei {
    width: 100%;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-sensei {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}

.t-1-sensei > .t-1-moshikomi {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.t-1-btn > button {
  background-color: #0c9e3b;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-1-btn {
  margin-bottom: 1vh;
}

.t-2-btn > a > button {
  background-color: #cd8c00;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-2-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-2-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-2-btn {
  margin-bottom: 1vh;
}

.taiken-1-s {
  width: 25vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-1-s {
    width: 70vw;
  }
}

.taiken-2-s {
  width: 30vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-2-s {
    width: 80vw;
  }
}
/*global*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #333;
  background-color: #fffef5;
  width: 100vw;
  overflow-x: hidden;
}
html {
  width: 100vw;
  overflow-x: hidden;
}
/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}
img {
  width: 100%;
}

/* Fallback for browsers that don't support scroll-behavior */
@media screen and (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/*part 1*/
.top-nav {
  background-color: #ffffff;
  padding: 10px 20px;
  display: grid;
  grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 15.43vw auto 1.23vw auto 1.23vw auto 1.23vw auto;
  padding: 1.5vh 1vw;

  width: 80%;
  border-radius: 50px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.25));
}
.top-nav > a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.desktop-menu {
  position: fixed;
  top: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  width: 100%;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .top-nav {
    grid: "logo . topnav-1 . topnav-2 . topnav-3 . topnav-4" / auto 22.43vw auto 2.23vw auto 2.1vw auto 2.1vw auto;
    padding: 1.5vh 4.43vw;
    width: 90%;
  }
}

.top-nav > .logo,
.top-nav > .topnav-1,
.top-nav > .topnav-2,
.top-nav > .topnav-3,
.top-nav > .topnav-4 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.top-nav > .logo {
  grid-area: logo;
}

.top-nav > .topnav-1 {
  grid-area: topnav-1;
}

.top-nav > .topnav-2 {
  grid-area: topnav-2;
}

.top-nav > .topnav-3 {
  grid-area: topnav-3;
}

.top-nav > .topnav-4 {
  grid-area: topnav-4;
}
.logo {
  width: 10vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .logo {
    width: 13vw;
  }
}
.obo-btn {
  width: 13.85vw;
  height: 6.6vh;
}

@media only screen and (max-width: 767px) {
  .obo-btn {
    margin-top: 10px;
    width: 46.85vw;
    padding: 2.32vh 6.96vw 26.1px;
  }
}

.obo-btn img {
  width: 100%;
}
.mobile-menu,
.sticky-menu {
  display: none;
}
@media only screen and (max-width: 767px) {
  .desktop-menu {
    display: none;
  }
  .mobile-menu {
    display: none;
    position: fixed;
    top: 100px;
    left: 10%;
    font-size: var(--f-notosansjp);
    justify-content: center;
    align-items: center;
    z-index: 10000;
  }
  .mobile-menu-in {
    background-color: white;
    border: 1px solid black;
    border-radius: 10px;
    width: 80vw;
    text-align: center;
    padding: 30px 0;
  }

  .mobile-menu-in > div > button {
    background: none;
    border: 0;
    color: #333;
    font-size: var(--f-notosansjp);
  }

  .mobile-menu-in-1 {
    margin-bottom: 15px;
  }

  .sticky-menu > button {
    width: 70px;
    background: none;
    border: 0;
  }
  .sticky-menu > button > img {
    width: 100%;
  }
  .sticky-menu {
    display: block;
    position: fixed;
    top: 20px;
    right: 30px;
    width: 45px;
    z-index: 200;
  }
}

/*part 2*/

.part-2 {
  position: relative;
  margin-top: 0vh;
  background: url("../img/part2.webp");
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 10vh;
  flex-direction: column;
  z-index: -1;
  background-size: 100% 100%;
}

.part-2-1 {
  position: relative;
  z-index: 5;
}
.slider-part-2 {
  margin-top: -8vh;
  margin-bottom: -15%;
  width: 110vw;
  background-color: white;
  position: relative;
  z-index: 3;
  padding: 10vh 0;
  transform: rotate(2deg);
  box-shadow: 0 -2px 2px rgba(250, 193, 198, 1),
    /* Top shadow */ 0 3px 3px rgba(200, 236, 177, 1); /* Bottom shadow */
  margin-left: -5%;
}
@media only screen and (max-width: 767px) {
  .slider-part-2 {
    padding: 5vh 0;
  }
}

.part-2 > img {
  width: 80%;
}

.p-2-kotei {
  width: 100vw !important;
  margin-top: 10vh;
  margin-bottom: -13%;
}

.p-2-kotei > img {
  width: 100%;
}
@media (min-width: 768px) {
  .m-part-2,
  .m-part-5-2 {
    display: none;
  }
}

@media only screen and (max-width: 767px) {
  .part-2,
  .part-5-2 {
    display: none;
  }
  .m-part-2 {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 0vh;
    padding: 5%;
    flex-direction: column;
    background: url("../img/m-part2.webp") no-repeat center center;
    background-size: 100% 100%;
  }
  .m-part-2 > img {
    width: 100%;
  }
  .slider-part-2 {
    margin-top: 2vh;
    margin-bottom: -44%;
    width: 110vw;
    margin-left: 0px;
  }
  .p-2-kotei {
    margin-top: 5vh;
    margin-bottom: -20%;
    margin-left: 0px;
  }
}

.swiper-slide {
  text-align: center;
  display: flex !important;
  justify-content: center;
  align-items: center;
}

.swiper-slide img {
  display: block;
  width: 500px;
  height: auto;
  object-fit: cover;
}

@media only screen and (max-width: 767px) {
  .swiper2 {
    width: 340px;
    /* height: calc(100vh - 350px); */
    height: 360px;
    padding-top: 0px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) !important;
    border-radius: 0px;
    box-shadow: none;
    overflow-x: hidden;
  }
  .swiper-slide {
    background-position: center center;
    background-size: cover;
    border-radius: 30px;
  }
  .swiper-slide img {
    display: block;
    width: 85% !important;
  }
}

/*part 3 buffer*/
.part-3-buffer {
  height: 25vh;
  margin-top: 10%;
}
.swiper {
  width: 105vw;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .part-3-buffer {
    height: 5vh;
  }
  .swiper {
    width: 100vw;
    height: auto;
  }
  .swiper-slide img {
    display: block;
    width: 300px;
    height: auto;
    object-fit: cover;
  }
}
/*part 3*/
.part-3 {
  display: grid;
  grid:
    ".               . part-3-img" 3.2vh
    "part-3-text-1   . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-1 . part-3-img"
    ".               . part-3-img"
    "part-3-text-2-2 . part-3-img";
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
  padding: 14vh 0 10vh 0;
  background-color: white;
}

.part-3 > .part-3-text-1 {
  grid-area: part-3-text-1;
}

.part-3 > .part-3-text-2-1 {
  grid-area: part-3-text-2-1;
}

.part-3 > .part-3-text-2-2 {
  grid-area: part-3-text-2-2;
}

.part-3 > .part-3-img {
  grid-area: part-3-img;
  width: 23.02vw;
}
@media only screen and (max-width: 767px) {
  .part-3 {
    display: grid;
    grid:
      ".               " 5vh
      "m-part-3-text-1  "
      ".              " 3vh
      "m-part-3-text-2-1"
      ".              " 3vh
      "m-part-3-text-2-2"
      ".              " 4vh
      "part-3-img     ";
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    padding: 5vh 0;
    background-color: white;
    margin-top: 45%;
  }

  .part-3 > .m-part-3-text-1 {
    grid-area: m-part-3-text-1;
  }

  .part-3 > .m-part-3-text-2-1 {
    grid-area: m-part-3-text-2-1;
  }

  .part-3 > .m-part-3-text-2-2 {
    grid-area: m-part-3-text-2-2;
    padding: 0 30px;
  }

  .part-3 > .part-3-img {
    grid-area: part-3-img;
    width: 75vw;
    margin-left: auto;
    margin-right: auto;
  }
}
.part-3-text-1 {
  color: #ff5487;
  font-size: 3rem;
  font-weight: 900;
}
.m-part-3-text-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-1 {
    display: none;
  }
  .m-part-3-text-1 {
    display: block;
    font-size: 2rem;
    color: #ff5487;
    font-weight: 900;
    text-align: center;
  }
}

@media only screen and (max-width: 767px) {
  .part-3-text-2 {
    width: 90vw;
    padding: 4.61vh 5.69vw;
  }
}
.part-3-text-2-1 {
  color: #333333;
  font-size: 2.25rem;
  font-weight: 600;
}
.m-part-3-text-2-1 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-1 {
    display: none;
  }
  .m-part-3-text-2-1 {
    display: block;
    color: #333333;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
  }
}

.part-3-text-2-2 {
  font-size: 1rem;
  line-height: 30px;
  text-align: left;
  font-weight: 300;
}
.m-part-3-text-2-2 {
  display: none;
}

@media only screen and (max-width: 767px) {
  .part-3-text-2-2 {
    display: none;
  }
  .m-part-3-text-2-2 {
    display: block;
    font-size: 1rem;
    text-align: center;
  }
}

/*part 4 buffer*/
.part-4-buffer-1 {
  color: #333;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 4.89vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-buffer-1 {
  }
}
@media only screen and (max-width: 767px) {
  .part-4-buffer-1 {
  }
}

.part-4-buffer-2 {
  height: 10vh;
}

/*part 4*/
.part-4 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: url("../img/part-4-bg.webp") repeat-y top center;
  background-size: contain;
  padding: 13.29vh 0;
}
@media only screen and (max-width: 767px) {
  .part-4 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-bottom: 5.76vh;
    position: relative;
    background: url(../img/part-4-bg.webp) repeat center center;
    padding: 9.5vh 0;
    background-size: 100% auto;
  }
}

.part-4-img-1 {
  position: absolute;
  top: -2%;
  right: 0%;
}
.part-4-img-2 {
  position: absolute;
  top: 5%;
  left: 0%;
}
.part-4-img-3 {
  position: absolute;
  bottom: 5%;
  left: 0%;
}
.part-4-img-4 {
  position: absolute;
  bottom: 7%;
  right: 0%;
}
@media only screen and (max-width: 767px) {
  .part-4-img-1,
  .part-4-img-2,
  .part-4-img-3,
  .part-4-img-4 {
    display: none;
  }
}
.part-4-top {
  width: 40vw;
  margin-top: -10%;
}
@media only screen and (max-width: 767px) {
  .part-4-top {
    width: 60vw;
  }
}
.part-4-text-1-1 {
  font-weight: 700;
  font-size: 3rem;
  color: #44a059;
  margin-bottom: 2.87vh;
}

.part-4-text-1-2 {
  font-weight: 700;
  font-size: 3rem;
  color: #f55182;
  margin-bottom: 2.87vh;
}

.part-4-text-1-1-1 {
  font-size: 1rem;
  line-height: 1.875;
  font-weight: 300;
  text-align: center;
  margin-bottom: 2.87vh;
}

@media (min-width: 768px) {
  .m-part-4-text-1-1-1 {
    display: none;
  }
}

@media (max-width: 767px) {
  .part-4-text-1-1-1 {
    display: none;
  }
  .m-part-4-text-1-1-1 {
    font-size: 1rem;
    line-height: 1.875;
    font-weight: 300;
    text-align: center;
    margin-bottom: 2.87vh;
  }
}

.part-4-text-1-1-hr {
  width: 100%;
  border-top: 1px solid #5bac6d;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
.part-4-text-1-2-hr {
  width: 100%;
  border-top: 1px solid #f55182;
  height: 0px;
  width: 90%;
  margin-bottom: 5.42vh;
}
@media only screen and (max-width: 767px) {
  .part-4-text-1 {
    font-size: 1.6rem;
  }
}
.part-4-text-2 {
  background-color: white;
  border-radius: 100px;
  width: 70.29vw;
  padding: 7.87vh 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 10;
  border: 1px solid black;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-4-text-2 {
    border-radius: 40px;
  }
}
@media only screen and (max-width: 767px) {
  .part-4-text-2 {
    width: 90vw;
    border-radius: 20px;
    padding: 3.5vh 0;
  }
}

.part-4-span-1 {
  color: var(--c-blue-1);
  font-weight: 700;
  font-size: 2.5rem;
}

@media only screen and (max-width: 767px) {
  .part-4-span-1 {
    font-size: 1.5rem;
  }
}
table {
  border-collapse: collapse;
}

.section-3-4 {
  background-color: white;
  /*margin-bottom: 3.81vh;*/
}
.sec-3-4-1 {
  margin-bottom: 1.9vh;
}
.section-3-4-in {
  color: #333;
  font-size: 18px;
  font-weight: 350;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .section-3-4-in {
    font-size: 13px;
  }
}
.section-3-4-in > table > tbody > tr > td {
  border: 1px solid #333;
  vertical-align: middle;
  padding: 2.6vh 0;
}

.section-3-4-img {
  width: 8vw;
  background: none;
  border: 0;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .section-3-4-img {
    width: 9.5vw;
  }
}
@media only screen and (max-width: 767px) {
  .section-3-4-img {
    width: 25vw;
  }
}

.section-3-4-img > img {
  width: 100%;
}

.col-table-1,
.p-t-4-1 {
  width: 6.48vw;
}
@media only screen and (max-width: 767px) {
  .col-table-1,
  .p-t-4-1 {
    width: 14.48vw;
  }
}
.col-table-2,
.p-t-4-2 {
  width: 8.92vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-2,
  .p-t-4-2 {
    width: 11.92vw;
  }
}
@media only screen and (max-width: 767px) {
  .col-table-2,
  .p-t-4-2 {
    width: 18vw;
  }
}
.col-table-3,
.p-t-4-3 {
  width: 11.07vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-3,
  .p-t-4-3 {
    width: 11.92vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-3,
  .p-t-4-3 {
    width: 21.07vw;
  }
}

.col-table-4,
.p-t-4-4 {
  width: 18.08vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-table-4,
  .p-t-4-4 {
    width: 24.08vw;
  }
}

@media only screen and (max-width: 767px) {
  .col-table-4,
  .p-t-4-4 {
    width: 30.08vw;
  }
}

.col-tb-long {
  width: 10.07vw !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .col-tb-long {
    width: 12vw !important;
  }
}

@media only screen and (max-width: 767px) {
  .col-tb-long {
    width: 21.15vw !important;
  }
}
.col-table-4-1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1vw;
}

.col-table-4-1-1 {
  text-align: left;
}
.col-table-4-1-2 {
  text-align: right;
}

.p-t-4-2,
.p-t-4-3,
.p-t-4-4 {
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .p-t-4-2,
  .p-t-4-3,
  .p-t-4-4 {
    font-size: 13px;
  }
}

.p-t-in {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
}
.p-t-in-1 {
  width: fit-content;
  border-radius: 50px;
  padding: 1vh 2.5vw;
}

.p-t-in-1-1 {
  background-color: #50a663;
}

.p-t-in-1-2 {
  background-color: #f55182;
}

.part-4-text-2-1 {
  margin-bottom: 2.57vh;
}

.part-4-btn-1 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.part-4-span-1 {
  margin-right: 1.4vw;
}

.part-4-text-2-10 {
  margin-bottom: 0vh;
}
.mobile-text {
  display: none;
}
@media only screen and (max-width: 767px) {
  .mobile-text {
    display: block;
  }
  .mobile-text > .col-table-4-1-1 {
    margin-bottom: 10px !important;
  }
  .mobile-text > .col-table-4-1-1,
  .mobile-text > .col-table-4-1-2 {
    text-align: center !important;
  }
  .Desktop-text {
    display: none;
  }
}

/*detail*/

.koryu,
.taiken {
  display: none;
  margin-left: auto;
  margin-right: auto;
}
.koryu-buffer-1 {
  height: 15vh;
}

@media only screen and (max-width: 767px) {
  .koryu-buffer-1 {
    height: 10vh;
  }
}
.koryu-hr {
  margin-top: 7.5vh;
  margin-bottom: 7.5vh;
  background-color: #fff;
  width: 100%;
}
.koryu-1 {
  width: 40vw;
}

.koryu-2,
.koryu-3,
.koryu-4,
.koryu-5 {
  width: 20vw;
  margin-left: auto;
  margin-right: auto;
}
.koryu-1 > img,
.koryu-2 > img,
.koryu-3 > img,
.koryu-4 > img,
.koryu-5 > img {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .koryu-1 {
    width: 95vw;
  }
  .koryu-2,
  .koryu-3,
  .koryu-4,
  .koryu-5 {
    width: 60vw;
  }
}
/*koryu-1*/
.k-1-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 12.5vw auto 9vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 13vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 40vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-1-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-1-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-1-sensei-1 > img,
.k-1-sensei-2 > img {
  width: 100%;
}

.k-1-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-1-btn > a > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn > button {
  background-color: #6fba2c;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .k-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .k-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.k-1-btn {
  margin-bottom: 1vh;
  max-width: 40vw;
}

.k-1-btn-txt {
  text-align: center;
  color: #000;
  font-size: 1rem;
  max-width: 40vw;
}

.k-2-sensei {
  display: grid;
  grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi"/12.5vw auto 10vw auto 8vw;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .k-2-sensei {
    grid: "k-1-sensei-1 . k-1-sensei-2 . k-1-moshikomi" / 13vw auto 10.5vw auto 10vw;
    width: 95%;
  }
}

@media only screen and (max-width: 767px) {
  .k-2-sensei {
    display: grid;
    grid:
      "k-1-sensei-1  .             k-1-sensei-2 "
      ".             .             .            " 30px
      "k-1-moshikomi k-1-moshikomi k-1-moshikomi"
      /40vw auto 32vw;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}
.k-2-sensei > .k-1-sensei-1 {
  grid-area: k-1-sensei-1;
}

.k-2-sensei > .k-1-sensei-2 {
  grid-area: k-1-sensei-2;
}

.k-2-sensei > .k-1-moshikomi {
  grid-area: k-1-moshikomi;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.k-2-btn > button {
  background-color: #7a2124;
}
.k-3-btn > a > button {
  background-color: #eb664c;
}
.k-3-btn > button {
  background-color: #eb664c;
}

.k-4-btn > a > button {
  background-color: #c9dfe1;
  color: #3a6776;
}

.k-5-btn > a > button {
  background-color: #fdf1b5;
  color: #e28f00;
}
/*part 5*/
.part-5 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6.7vh 0;
  background: url("../img/footer-bg.webp") no-repeat center center;
  background-size: 100% 100%;
}

@media only screen and (max-width: 767px) {
  .part-5 {
    background: url("../img/m-footer-bg.webp") no-repeat bottom center;
    background-size: 100% auto;
  }
}

.part-5-text-1,
.part-5-text-2,
.part-5-text-3,
.part-5-text-4,
.part-5-text-5 {
  text-align: center;
}

.part-5-text-1 {
  font-size: 1.25rem;
  color: #fff;
  font-weight: 600;
  width: 12.48vw;
  padding: 1vh 0;
  background-color: #ff5487;
  border-radius: 40px;
  margin-bottom: 2vh;
}
@media (min-width: 768px) and (max-width: 1600px) {
  .part-5-text-1 {
    width: 22.48vw;
  }
}
@media only screen and (max-width: 767px) {
  .part-5-text-1 {
    width: 70vw;
  }
}
.part-5-text-2 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-3 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  margin-bottom: 0vh;
}
.part-5-text-4 {
  font-size: 1rem;
  color: #000;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 1.5vh;
}

.part-5-text-5 {
  font-size: 1rem;
  color: #000;
  font-weight: 600;
  line-height: 1.5;
}

/*coming soon*/
.cs-img-1 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-1 {
    width: 25vw;
  }
}
.cs-img-2 {
  width: 10vw;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (max-width: 767px) {
  .cs-img-2 {
    width: 35vw;
  }
}

.f-part {
  background-color: transparent !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*taiken-1*/
.t-1-sensei {
  display: flex;
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-sensei {
    width: 100%;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-sensei {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
  }
}

.t-1-sensei > .t-1-moshikomi {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.t-1-btn > button {
  background-color: #0c9e3b;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
  cursor: default !important;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-1-btn > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-1-btn > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-1-btn {
  margin-bottom: 1vh;
}

.t-2-btn > a > button {
  background-color: #cd8c00;
  border: 2px solid #000;
  border-radius: 25px;
  width: 100%;
  text-align: center;
  color: #fff;
  font-size: 1.25rem;
  padding: 2vh 1vw;
}

@media (min-width: 768px) and (max-width: 1600px) {
  .t-2-btn > a > button {
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .t-2-btn > a > button {
    font-size: 1rem;
    padding: 3vh 5vw;
  }
}

.t-2-btn {
  margin-bottom: 1vh;
}

.taiken-1-s {
  width: 25vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-1-s {
    width: 70vw;
  }
}

.taiken-2-s {
  width: 30vw;
  margin-top: 30px;
  margin-left: auto;
  margin-right: auto;
}

@media only screen and (max-width: 767px) {
  .taiken-2-s {
    width: 80vw;
  }
}
