.p_top_mv {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 725px;
}
@media screen and (min-width: 768px) {
  .p_top_mv {
    align-items: center;
    min-height: clamp(
        40.625rem,
        22.65625vw + 29.75rem,
        56.9375rem
    );
  }
}
.p_top_mv__img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.p_top_mv__img img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}
.p_top_mv__main {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-bottom: 14px;
}
@media screen and (min-width: 768px) {
  .p_top_mv__main {
    padding-bottom: 0;
  }
}
.p_top_mv__container {
  padding: 0 5px 0 clamp(
        0.3125rem,
        120vw + -27.8125rem,
        1.4375rem
    );
  width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .p_top_mv__container {
    padding: 0 40px;
    max-width: 1620px;
  }
}
.p_top_mv__head {
  font-family: "Shippori Mincho", serif;
  line-height: 1;
  position: relative;
  color: #fff;
  font-size: 4.075rem;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .p_top_mv__head {
    letter-spacing: 0.322em;
    color: #231815;
    top: -35px;
    font-size: clamp(
        4.375rem,
        3.8133680556vw + 2.5445833333rem,
        7.120625rem
    );
  }
}

.p_top_system {
  padding: 62px 0 93px;
}
@media screen and (min-width: 768px) {
  .p_top_system {
    padding: 159px 0 199px;
  }
}
.p_top_system__wrapper {
  padding: 20px 0;
}
@media screen and (min-width: 768px) {
  .p_top_system__wrapper {
    padding: 40px 0;
  }
}
.p_top_system .c_txt01 {
  margin-top: 72px;
}
@media screen and (min-width: 768px) {
  .p_top_system .c_txt01 {
    letter-spacing: 0.122em;
    margin-top: 120px;
  }
}
.p_top_system__logo {
  position: relative;
  width: 73px;
  margin: 45px auto 0;
}
@media screen and (min-width: 768px) {
  .p_top_system__logo {
    width: 223.2625px;
    margin-top: 89px;
    left: 1px;
  }
}
.p_top_system__flow {
  margin-top: 16px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow {
    margin-top: 43px;
  }
}
.p_top_system__flow__line01 {
  width: 1px;
  background-color: #231815;
  margin: 0 auto;
  height: 38px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__line01 {
    height: 82px;
  }
}
.p_top_system__flow__line02 {
  position: relative;
  margin: 0 auto;
  width: 100%;
  border-top: solid 1px #231815;
  border-left: solid 1px #231815;
  border-right: solid 1px #231815;
  max-width: 162px;
  height: 43px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__line02 {
    max-width: 610px;
    height: 90px;
  }
}
.p_top_system__flow__line02 .arrow {
  display: block;
  position: absolute;
  bottom: 0;
  border-top: solid 6px #231815;
  border-left: solid 4px transparent;
  border-right: solid 4px transparent;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__line02 .arrow {
    border-top: solid 13px #231815;
    border-left: solid 8px transparent;
    border-right: solid 8px transparent;
  }
}
.p_top_system__flow__line02 .arrow01 {
  left: -5px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__line02 .arrow01 {
    left: -9px;
  }
}
.p_top_system__flow__line02 .arrow02 {
  right: -5px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__line02 .arrow02 {
    right: -9px;
  }
}
.p_top_system__flow__blocks {
  margin-top: 25px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__blocks {
    width: calc(100% + 4px);
    left: -2px;
    margin-top: 27px;
  }
}
.p_top_system__flow__block {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 0 15px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block {
    padding: 20px clamp(
        2.5rem,
        10.4166666667vw + -6.875rem,
        5.625rem
    ) 75px;
    border: solid 1px #231815;
    margin: 0 -0.5px;
    min-height: 667px;
  }
}
.p_top_system__flow__block .img_logo {
  position: relative;
  width: 100%;
  margin: 0 auto;
}
.p_top_system__flow__block .img_logo01 {
  max-width: 105px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block .img_logo01 {
    max-width: 288px;
  }
}
.p_top_system__flow__block .img_logo02 {
  max-width: 77px;
  margin-top: -5px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block .img_logo02 {
    left: -11px;
    max-width: 211px;
    margin-top: 0;
  }
}
.p_top_system__flow__block .img_txt {
  position: relative;
  width: 100%;
  margin: 0 auto 0;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block .img_txt {
    left: -11px;
    margin-top: 30px;
  }
}
.p_top_system__flow__block .img_txt01 {
  max-width: 135px;
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block .img_txt01 {
    margin-top: 80px;
    max-width: 428px;
  }
}
.p_top_system__flow__block .img_txt02 {
  max-width: 98px;
  margin-top: 29px;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block .img_txt02 {
    max-width: 305px;
    margin-top: clamp(
        5.25rem,
        3.869047619vw + 3.3928571429rem,
        6.875rem
    );
  }
}
.p_top_system__flow__block .c_btn01 {
  text-align: center;
  margin: 23px auto 0;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block .c_btn01 {
    max-width: 420px;
    margin-top: 90px;
  }
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block.i01 {
    padding-top: 115px;
  }
}
@media screen and (min-width: 768px) {
  .p_top_system__flow__block.i02 {
    padding-top: 98px;
  }
}

.p_top_message {
  padding: 20px 0 76px;
}
@media screen and (min-width: 768px) {
  .p_top_message {
    padding: 40px 0 255px;
  }
}
.p_top_message__main {
  margin-top: 30px;
  padding: 0 17px;
}
@media screen and (min-width: 768px) {
  .p_top_message__main {
    padding: 0;
  }
}
.p_top_message .c_block01 {
  margin-top: 81px;
}
@media screen and (min-width: 768px) {
  .p_top_message .c_block01 {
    margin-top: 130px;
  }
}
.p_top_message .c_txt01 {
  letter-spacing: 0.122em;
}
@media screen and (min-width: 768px) {
  .p_top_message .c_txt01 {
    letter-spacing: 0.139em;
    line-height: 2em;
    margin-top: 166px;
  }
}

.p_top_book {
  background-color: #F5F5F5;
  padding: 64px 0 62px;
}
@media screen and (min-width: 768px) {
  .p_top_book {
    padding: 111px 0 74px;
  }
}
.p_top_book__wrapper {
  padding: 20px 0;
}
@media screen and (min-width: 768px) {
  .p_top_book__wrapper {
    padding: 40px 0;
  }
}
.p_top_book .c_txt01 {
  margin-top: 60px;
  text-align: center;
  line-height: 1.7702984039;
}
@media screen and (min-width: 768px) {
  .p_top_book .c_txt01 {
    line-height: 1.8668861712;
    margin-top: 127px;
  }
}
.p_top_book__frame {
  margin-top: 50px;
  height: 164px;
  max-width: 1190px;
}
@media screen and (min-width: 768px) {
  .p_top_book__frame {
    margin-top: 133px;
    height: 595px;
  }
}
.p_top_book__frame iframe, .p_top_book__frame video, .p_top_book__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: inherit !important;
  min-width: inherit !important;
}
.p_top_book .c_txt_link01 {
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p_top_book .c_txt_link01 {
    margin-top: 63px;
  }
}
.p_top_book .c_btn01 {
  margin-top: 52px;
}
@media screen and (min-width: 768px) {
  .p_top_book .c_btn01 {
    margin-top: 30px;
  }
}

.p_top_philosophy {
  padding: 107px 0 57px;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy {
    padding: 267px 0 230px;
  }
}
.p_top_philosophy__wrapper {
  padding: 20px 0;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__wrapper {
    padding: 40px 0;
  }
}
.p_top_philosophy .c_txt01 {
  margin-top: 60px;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy .c_txt01 {
    line-height: 1.8668861712;
    margin-top: 120px;
  }
}
.p_top_philosophy__blocks {
  margin-top: 63px;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__blocks {
    margin-top: 138px;
  }
}
.p_top_philosophy__block {
  position: relative;
  margin: 42px auto 0;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block {
    left: 8px;
    margin-top: 94px;
    max-width: 755px;
  }
}
.p_top_philosophy__block:first-child {
  margin-top: 0;
}
.p_top_philosophy__block .txt01, .p_top_philosophy__block .txt02, .p_top_philosophy__block .txt03 {
  color: #231815;
}
.p_top_philosophy__block .txt01 {
  letter-spacing: 0.049em;
  font-family: "din-condensed", sans-serif;
  font-weight: 700;
  line-height: 1;
  font-size: 1.151875rem;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block .txt01 {
    font-size: 2.004375rem;
  }
}
.p_top_philosophy__block .txt02 {
  font-feature-settings: "palt";
  font-size: 0.753125rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 2.0058091286;
  margin-top: 3px;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block .txt02 {
    line-height: 2.1665194346;
    font-size: 1.415rem;
  }
}
.p_top_philosophy__block .txt03 {
  font-feature-settings: "palt";
  font-size: 0.981875rem;
  font-weight: 400;
  line-height: 1.8669637174;
  letter-spacing: 0.14em;
  margin-top: 12px;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block .txt03 {
    line-height: 1.8667293823;
    font-size: 1.993125rem;
    margin-top: 25px;
  }
}
.p_top_philosophy__block.i03 {
  margin-top: 38px;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block.i03 {
    margin-top: 85px;
  }
}
.p_top_philosophy__block.i03 .txt03 {
  width: calc(100% + 30px);
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block.i03 .txt03 {
    width: 100%;
  }
}
.p_top_philosophy__block.i04 {
  margin-top: 45px;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block.i04 {
    margin-top: 97px;
  }
}
.p_top_philosophy__block.i04 .txt03 {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .p_top_philosophy__block.i04 .txt03 {
    margin-top: 39px;
  }
}

.p_top_history {
  background-color: #f5f5f5;
  padding: 63px 0 56px;
}
@media screen and (min-width: 768px) {
  .p_top_history {
    padding: 107px 0 167px;
  }
}
.p_top_history__wrapper {
  padding: 20px 0;
}
@media screen and (min-width: 768px) {
  .p_top_history__wrapper {
    padding: 40px 0;
  }
}
.p_top_history__list {
  margin-top: 84px;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .p_top_history__list {
    margin-top: 112px;
    padding: 0 clamp(
        0rem,
        18.75vw + -18.75rem,
        3.75rem
    ) 0 clamp(
        0rem,
        46.875vw + -46.875rem,
        9.375rem
    );
  }
}
.p_top_history__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0 16px;
}
@media screen and (min-width: 768px) {
  .p_top_history__item {
    gap: 0 45px;
  }
}
.p_top_history__item::after {
  position: absolute;
  content: "";
  left: 54px;
  top: 7px;
  height: 100%;
  width: 1px;
  background-color: #231815;
}
@media screen and (min-width: 768px) {
  .p_top_history__item::after {
    top: 0;
    left: 115px;
  }
}
.p_top_history__item::before {
  position: absolute;
  z-index: 1;
  left: 0;
  width: 100%;
  background-color: #f5f5f5;
}
.p_top_history__item:first-child::before {
  top: 0;
  content: "";
}
@media screen and (min-width: 768px) {
  .p_top_history__item:first-child::before {
    height: 10px;
  }
}
.p_top_history__item:last-child::before {
  bottom: 0;
  content: "";
}
@media screen and (min-width: 768px) {
  .p_top_history__item:last-child::before {
    height: 10px;
  }
}
.p_top_history__item .txt_year,
.p_top_history__item .txt {
  color: #231815;
  letter-spacing: 0.1em;
  font-size: 0.76125rem;
  line-height: 2.5336617406;
}
@media screen and (min-width: 768px) {
  .p_top_history__item .txt_year,
.p_top_history__item .txt {
    line-height: 2.5338258165;
    font-size: clamp(
        1.375rem,
        1.1625vw + 0.2125rem,
        1.6075rem
    );
  }
}
.p_top_history__item .txt_year {
  width: 54px;
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .p_top_history__item .txt_year {
    width: 105px;
  }
}
.p_top_history__item .txt {
  width: calc(100% - 54px);
}
@media screen and (min-width: 768px) {
  .p_top_history__item .txt {
    width: calc(100% - 105px);
  }
}

.p_top_mark {
  padding: 108px 0 59px;
}
@media screen and (min-width: 768px) {
  .p_top_mark {
    padding: 287px 0 235px;
  }
}
.p_top_mark__logo {
  width: 122px;
  margin: 57px auto 65px;
}
@media screen and (min-width: 768px) {
  .p_top_mark__logo {
    margin-top: 155px;
    width: 247px;
  }
}
.p_top_mark__wrapper {
  padding: 20px 0;
}
@media screen and (min-width: 768px) {
  .p_top_mark__wrapper {
    padding: 40px 0;
  }
}
.p_top_mark .c_txt01 {
  padding: 0 17px;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .p_top_mark .c_txt01 {
    margin-top: 172px;
    padding: 0;
    letter-spacing: 0.129em;
    line-height: 1.8668861712;
  }
}
.p_top_mark__txt02, .p_top_mark__txt03 {
  width: 100%;
  margin: 0 auto;
  color: #505050;
  letter-spacing: 0.139em;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p_top_mark__txt02, .p_top_mark__txt03 {
    left: clamp(
        0rem,
        4.0625vw + -4.0625rem,
        0.8125rem
    );
    max-width: 565px;
  }
}
.p_top_mark__txt02 {
  padding: 0 17px;
  font-size: 0.7975rem;
  line-height: 2.5971786834;
  font-weight: 700;
  text-decoration: underline;
  margin-top: 51px;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .p_top_mark__txt02 {
    margin-top: 77px;
    padding: 0;
    font-size: 1.683125rem;
    line-height: 2.3156331229;
  }
}
.p_top_mark__txt03 {
  font-size: 0.70625rem;
  line-height: 1.8663716814;
  font-weight: 400;
  margin-top: 61px;
  padding: 0 17px;
}
@media screen and (min-width: 768px) {
  .p_top_mark__txt03 {
    margin-top: 89px;
    padding: 0;
    font-size: 1.32875rem;
    line-height: 1.8668861712;
  }
}
.p_top_mark .txt_underline {
  position: relative;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .p_top_mark .txt_underline {
    transition: all 0.5s;
  }
  .p_top_mark .txt_underline:hover {
    opacity: 0.7;
  }
  .p_top_mark .txt_underline:hover::after {
    opacity: 0;
  }
}
.p_top_mark .txt_underline::after {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: #505050;
  transition: all 0.5s;
}
@media screen and (min-width: 768px) {
  .p_top_mark .txt_underline::after {
    bottom: 5px;
  }
}

/*# sourceMappingURL=top.css.map */
