@charset "UTF-8";
/* ================================================

- Base

================================================ */
[v-cloak] {
  display: none;
}

_:-ms-lang(x)::-ms-backdrop, [v-cloak] {
  display: block;
}

:root {
  --cc-main: #bd3c31;
  --space: 30px;
  --w1280: 1280px;
  --w1920: 1920px;
}

/* ================================================

- 表示アニメーション

================================================ */
body {
  animation: fadeIn 2s ease 0s 1 normal;
  -webkit-animation: fadeIn 2s ease 0s 1 normal;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* ================================================

- フォント

================================================ */
/* ================================================

- フォントサイズ

================================================ */
/* ================================================

- RWD表示切り替え

================================================ */
@media all and (min-width: 569px) {
  .nopc {
    display: none !important;
  }
}
@media all and (max-width: 569px) {
  body {
    max-width: 1280px;
  }
}
@media all and (max-width: 568px) {
  .nosp {
    display: none !important;
  }
}
/* ================================================

- flex

================================================ */
/* ================================================

- margin

================================================ */
/* magrin-topを5px刻みで50pxまで */
.mTop0 {
  margin-top: 0px;
}

.mTop5 {
  margin-top: 5px;
}

.mTop10 {
  margin-top: 10px;
}

.mTop15 {
  margin-top: 15px;
}

.mTop20 {
  margin-top: 20px;
}

.mTop25 {
  margin-top: 25px;
}

.mTop30 {
  margin-top: 30px;
}

.mTop35 {
  margin-top: 35px;
}

.mTop40 {
  margin-top: 40px;
}

.mTop45 {
  margin-top: 45px;
}

.mTop50 {
  margin-top: 50px;
}

/* magrin-bottomを5px刻みで50pxまで */
.mBottom0 {
  margin-bottom: 0px;
}

.mBottom5 {
  margin-bottom: 5px;
}

.mBottom10 {
  margin-bottom: 10px;
}

.mBottom15 {
  margin-bottom: 15px;
}

.mBottom20 {
  margin-bottom: 20px;
}

.mBottom25 {
  margin-bottom: 25px;
}

.mBottom30 {
  margin-bottom: 30px;
}

.mBottom35 {
  margin-bottom: 35px;
}

.mBottom40 {
  margin-bottom: 40px;
}

.mBottom45 {
  margin-bottom: 45px;
}

.mBottom50 {
  margin-bottom: 50px;
}

/* ================================================

- @hover

================================================ */
@media (hover: hover) {
  .top-sc__btn a:-moz-any-link:hover {
    opacity: 0.7;
  }
  .top-sc__btn a:any-link:hover {
    opacity: 0.7;
  }
}
.top-sc__btn a {
  -webkit-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
}

/* ================================================

- MV

================================================ */
.top-mv {
  position: relative;
}

.top-mv__note {
  position: absolute;
  left: 15px;
  bottom: 10px;
}
.top-mv__note p {
  font-size: 0.75rem;
  line-height: 1.625;
  letter-spacing: 0.06em;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  color: #FFFFFF;
  text-shadow: 2px 2px 15px rgba(0, 0, 0, 0.7);
}

/* @media screen */
@media screen and (max-width: 568px) {
  .top-mv__note {
    position: static;
    padding: 10px 5.333vw 20px;
    background-color: rgba(223, 204, 151, 0.65);
  }
  .top-mv__note p {
    font-size: 2.6666666667vw;
    line-height: 1.425;
    color: #000000;
    text-shadow: none;
  }
}
/* ================================================

-

================================================ */
.top-body {
  padding: 30px 0 80px;
  overflow-x: clip;
}

.top-sc[data-pos=right] .top-sc__block::after {
  top: -70px;
  left: auto;
  right: 0;
}
.top-sc[data-pos=right] .top-sc__ttl {
  padding-right: 8.594vw;
  text-align: right;
}
.top-sc[data-pos=right] .top-sc__content {
  left: auto;
  right: 0;
}
.top-sc[data-pos=right] .top-sc__summarys {
  left: 70px;
}

.top-sc[data-pos=left] .top-sc__block::after {
  top: -70px;
  left: 0;
  right: auto;
}
.top-sc[data-pos=left] .top-sc__photo {
  right: auto;
}
.top-sc[data-pos=left] .top-sc__ttl {
  padding-left: 8.594vw;
}
.top-sc[data-pos=left] .top-sc__content {
  left: 0;
  right: auto;
}
.top-sc[data-pos=left] .top-sc__summarys {
  left: 20.313vw;
}

.top-sc:not(:first-of-type) {
  margin-top: 30px;
}

.top-sc__ttl {
  font-size: 5rem;
  letter-spacing: 0.025em;
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: #FFFFFF;
}

.top-sc__block {
  width: 100%;
  min-height: 410px;
  background-color: #FFFFFF;
  position: relative;
  z-index: 1;
}
.top-sc__block::after {
  content: "";
  position: absolute;
  top: 70px;
  width: 110px;
  height: calc(100% + 70px);
  background-color: #bd3c31;
  z-index: -1;
}

.top-sc__content {
  position: absolute;
  top: 80px;
}

.top-sc__photo {
  width: 84.156vw;
}
.top-sc__photo img {
  height: 250px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
}

.top-sc__summarys {
  position: absolute;
  bottom: 30px;
  left: 5.469vw;
  width: 100%;
  padding-right: 22.5vw;
}
.top-sc__summarys p {
  font-size: 1.125rem;
  line-height: 1.833;
  letter-spacing: 0.06em;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
  color: #FFFFFF;
}

.top-sc__btn {
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -ms-flex-pack: end;
  -webkit-box-pack: end;
          justify-content: flex-end;
  -ms-flex-align: center;
  -webkit-box-align: center;
          align-items: center;
  margin-top: 2px;
}
.top-sc__btn a {
  width: 180px;
  min-height: 44px;
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -ms-flex-pack: start;
  -webkit-box-pack: start;
          justify-content: flex-start;
  -ms-flex-align: center;
  -webkit-box-align: center;
          align-items: center;
  padding: 0 28px;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  color: #bd3c31;
  background-color: rgba(255, 255, 255, 0.7);
  position: relative;
}
.top-sc__btn a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 23px;
  translate: 0 -50%;
  background-image: url("data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2217.286mm%22%20height%3D%221.82mm%22%20version%3D%221.1%22%20viewBox%3D%220%200%2049%205.158%22%3E%20%3Cg%3E%20%3Cg%20id%3D%22_%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20data-name%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%3E%20%3Cg%3E%20%3Cline%20y1%3D%222.579%22%20x2%3D%2243.293%22%20y2%3D%222.579%22%20fill%3D%22none%22%20stroke%3D%22%23b43c30%22%20stroke-miterlimit%3D%2210%22%2F%3E%20%3Cpath%20d%3D%22M42.037%2C2.579L40.503.057l.086-.057%2C4.112%2C1.633c1.433.315%2C2.866.63%2C4.298.946-1.433.315-2.866.63-4.298.946l-4.112%2C1.633-.086-.043%2C1.534-2.536Z%22%20fill%3D%22%23b43c30%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  width: 49px;
  height: 5px;
}
.top-sc__btn a:not([href]) {
  font-size: 0.8125rem;
  letter-spacing: 0;
}

.top-sc__btn.-l2 {
  margin-top: 20px;
}

.top-gallry {
  max-width: 900px;
  margin: 80px auto 0;
}
.top-gallry .top-sc__btn {
  position: absolute;
  bottom: 46px;
  right: 45px;
}

.top-gallry__inner {
  position: relative;
}

.top-gallry__summarys {
  position: absolute;
  inset: 0;
  width: 100%;
}

.top-gallry__ttl {
  position: absolute;
  top: 84px;
  left: 70px;
  font-size: 2.25rem;
  letter-spacing: 0.025em;
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  color: #FFFFFF;
}
.top-gallry__ttl span {
  display: block;
  margin-top: 1px;
  font-size: 1rem;
  letter-spacing: 0.01em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  text-align: center;
}

/* @media screen */
@media screen and (max-width: 568px) {
  .top-body {
    padding: 2.933vw 0 21.333vw;
  }
  .top-sc[data-pos=right] .top-sc__block::after {
    top: 0;
  }
  .top-sc[data-pos=right] .top-sc__ttl {
    padding-right: 8.533vw;
    text-align: right;
  }
  .top-sc[data-pos=right] .top-sc__content {
    left: auto;
    right: 0;
  }
  .top-sc[data-pos=right] .top-sc__summarys {
    left: 0;
  }
  .top-sc[data-pos=right] .top-sc__btn {
    padding-right: 13.333vw;
  }
  .top-sc[data-pos=left] .top-sc__block::after {
    top: 0;
  }
  .top-sc[data-pos=left] .top-sc__photo {
    right: auto;
  }
  .top-sc[data-pos=left] .top-sc__ttl {
    padding-left: 8.533vw;
  }
  .top-sc[data-pos=left] .top-sc__content {
    left: 0;
    right: auto;
  }
  .top-sc[data-pos=left] .top-sc__summarys {
    left: 0;
    padding: 0 2.667vw 0 19.733vw;
  }
  .top-sc:not(:first-of-type) {
    margin-top: 2.667vw;
  }
  .top-sc__ttl {
    font-size: 5.8666666667vw;
  }
  .top-sc__block {
    width: 100%;
    min-height: 45.333vw;
  }
  .top-sc__block::after {
    top: 0;
    width: 8.533vw;
    height: 100%;
  }
  .top-sc__content {
    position: absolute;
    top: 6.667vw;
  }
  .top-sc__photo {
    width: 85.333vw;
  }
  .top-sc__photo img {
    height: 32vw;
  }
  .top-sc__summarys {
    bottom: 2.933vw;
    left: 0;
    right: 0;
    padding: 0 3.733vw;
  }
  .top-sc__summarys p {
    font-size: 3.4666666667vw;
    line-height: 1.538;
  }
  .top-sc__btn {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: end;
    -webkit-box-pack: end;
            justify-content: flex-end;
    -ms-flex-align: center;
    -webkit-box-align: center;
            align-items: center;
    margin-top: 2.667vw;
  }
  .top-sc__btn a {
    width: 26.667vw;
    min-height: 6.667vw;
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex-pack: start;
    -webkit-box-pack: start;
            justify-content: flex-start;
    -ms-flex-align: center;
    -webkit-box-align: center;
            align-items: center;
    padding: 0 1.867vw;
    font-size: 2.9333333333vw;
  }
  .top-sc__btn a::after {
    right: 1.333vw;
    width: 6.4vw;
    height: 0.533vw;
  }
  .top-sc__btn.-l2 {
    margin-top: 6.667vw;
  }
  .top-gallry {
    width: 81.6vw;
    margin: 5.067vw auto 0;
    padding: 0 4vw;
  }
  .top-gallry .top-sc__btn {
    bottom: 5.333vw;
    right: 4vw;
  }
  .top-gallry__ttl {
    top: 9.6vw;
    left: 7.467vw;
    font-size: 5.8666666667vw;
  }
  .top-gallry__ttl span {
    margin-top: 0;
    font-size: 2.9333333333vw;
  }
}