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

- Base

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

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

body {
  background-color: #FFFFFF;
}

body {
  overflow-x: hidden;
  overscroll-behavior: auto;
}

body.-bodyScrollStop {
  overflow: hidden;
  overscroll-behavior: contain;
}

:root {
  --cc-green: #1d4c45;
  --cc-yellow: #ffe553;
  --header-w: 260px;
  --w1280: 1280px;
  --space: 30px;
}

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

- 表示アニメーション

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

- フォント

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

- フォントサイズ

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

- RWD表示切り替え

================================================ */
@media all and (min-width: 569px) {
  .nopc {
    display: none !important;
  }
}
@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まで */
.mBtm0 {
  margin-bottom: 0px;
}

.mBtm5 {
  margin-bottom: 5px;
}

.mBtm10 {
  margin-bottom: 10px;
}

.mBtm15 {
  margin-bottom: 15px;
}

.mBtm20 {
  margin-bottom: 20px;
}

.mBtm25 {
  margin-bottom: 25px;
}

.mBtm30 {
  margin-bottom: 30px;
}

.mBtm35 {
  margin-bottom: 35px;
}

.mBtm40 {
  margin-bottom: 40px;
}

.mBtm45 {
  margin-bottom: 45px;
}

.mBtm50 {
  margin-bottom: 50px;
}

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

- z-index

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

-

================================================ */
.lozad {
  opacity: 0;
  transition: opacity 0.3s;
}

.lozad[data-loaded=true] {
  opacity: 1;
}

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

- イージング

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

- @hover

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

- 共通

================================================ */
.top-page__ttl {
  font-size: 2.429vw;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  text-align: center;
}

.top-page__ttl.-access {
  text-align: left;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-page__ttl {
    font-size: 6.1333333333vw;
  }
}
/* ================================================

- メインビジュアル

================================================ */
.top-mv__swiper .swiper-slide img {
  transition: transform 10s ease-out;
  object-fit: cover;
  object-position: 50% 50%;
}
.top-mv__swiper .swiper-slide[class*=-active] img {
  transition-delay: 0s;
  transform: scale(1.05);
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-mv__swiper .swiper-slide img {
    height: 90.667vw;
  }
}
/* ================================================

- showcase

================================================ */
.top-sc.-showcase {
  padding: 6.429vw 0 10.714vw;
  background-color: #f2f2f2;
}
.top-sc.-showcase .top-sc__inner {
  padding-right: 5vw;
}

.top-showcase {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 4.5vw;
  padding: 4vw 4.143vw 9.286vw;
  background-color: #FFFFFF;
  position: relative;
}

.top-showcase__lead {
  order: 2;
  font-size: 2.214vw;
  line-height: 1.742;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}

.top-showcase__summary {
  order: 1;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}
.top-showcase__summary p {
  font-size: 1.214vw;
  line-height: 2.118;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.top-showcase__photo {
  position: absolute;
}

.top-showcase__photo.-photo1 {
  width: 30.714vw;
  top: -2.143vw;
  left: 0;
}

.top-showcase__photo.-photo2 {
  width: 34.286vw;
  bottom: -17.857vw;
  right: -5vw;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-sc.-showcase {
    padding: 9.8vw 0 20vw;
  }
  .top-sc.-showcase .top-sc__inner {
    padding-right: 4.8vw;
  }
  .top-showcase {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    flex-direction: column;
    gap: 5.333vw;
    padding: 97.333vw 4.8vw 41.333vw 4.8vw;
  }
  .top-showcase__lead {
    order: 1;
    font-size: 5.8666666667vw;
    position: absolute;
    top: 6.667vw;
    right: 13.333vw;
  }
  .top-showcase__summary {
    order: 2;
    -webkit-writing-mode: horizontal-tb;
    writing-mode: horizontal-tb;
  }
  .top-showcase__summary p {
    font-size: 4vw;
  }
  .top-showcase__photo {
    position: absolute;
  }
  .top-showcase__photo.-photo1 {
    width: 56vw;
    top: -5.143vw;
    left: -4.8vw;
  }
  .top-showcase__photo.-photo2 {
    width: 76.8vw;
    bottom: -13.333vw;
    right: -4.8vw;
  }
}
/* ================================================

- お知らせ

================================================ */
.top-sc.-news {
  padding: 12.714vw 0 21vw;
  background-color: #FFFFFF;
}
.top-sc.-news .top-sc__inner {
  padding: 0 7.143vw;
}

.top-news {
  position: relative;
}

.top-news__list {
  margin-top: 2.357vw;
}

.top-news__item {
  border-bottom: solid 1px #e4e4e4;
}
.top-news__item a {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  padding: 1.5vw 1.714vw 1.429vw;
  color: #000000;
}
.top-news__item a span {
  font-size: 1.143vw;
  line-height: 1.75;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.top-news__item:first-child {
  border-top: solid 1px #e4e4e4;
}

.top-news__day {
  flex: none;
  width: 9.286vw;
}

.top-news__txt {
  flex: auto;
}

.top-news__btn {
  margin-top: 2.571vw;
}

.top-news__photo {
  width: 64.286vw;
  position: absolute;
  bottom: -35.714vw;
  right: -7.143vw;
  z-index: 1;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-sc.-news {
    padding: 16vw 0 32vw;
  }
  .top-sc.-news .top-sc__inner {
    padding: 0 4.8vw;
  }
  .top-news__list {
    margin-top: 8.8vw;
  }
  .top-news__item a {
    padding: 5.6vw 4vw 5.333vw;
  }
  .top-news__item a span {
    font-size: 4vw;
  }
  .top-news__day {
    width: 25.333vw;
  }
  .top-news__btn {
    margin-top: 9.6vw;
  }
  .top-news__photo {
    width: 92vw;
    bottom: -57.6vw;
    right: -4.8vw;
  }
}
/* ================================================

- 園内のご案内

================================================ */
.top-sc.-guide {
  padding-top: 10.429vw;
  background-color: #f2f2f2;
}
.top-sc.-guide .top-sc__inner {
  padding-left: 5vw;
}

.top-guide {
  padding: 9.429vw 5vw 3.929vw 2.857vw;
  background-color: #FFFFFF;
  position: relative;
}

.top-page__ttl.-guide {
  transform: translateX(-1.214vw);
}

.top-guide__col {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  margin-top: 3.357vw;
  position: relative;
}

.top-guide__photo {
  width: 38.571vw;
  position: absolute;
  top: 0;
  left: -7.857vw;
}

.top-guide__lead {
  padding-top: 25.929vw;
}

.top-guide__lead__list {
  margin-top: 2vw;
}
.top-guide__lead__list li {
  padding-left: 2.143vw;
  font-size: 1.714vw;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  position: relative;
}
.top-guide__lead__list li::before {
  content: "";
  position: absolute;
  top: 0.786vw;
  left: 0;
  width: 1.286vw;
  height: 1px;
  background-color: #000000;
}
.top-guide__lead__list li small {
  display: block;
  margin-top: 0.786vw;
  font-size: 1.143vw;
}
.top-guide__lead__list li:not(:first-of-type) {
  margin-top: 1.857vw;
}

.top-guide__lead__list + .top-guide__lead__txt {
  margin-top: 1.857vw;
}

.top-guide__lead__txt {
  font-size: 1.571vw;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.top-guide__map {
  width: 30.786vw;
}

.top-guide__summary {
  margin-top: 3.357vw;
}
.top-guide__summary p {
  font-size: 1.143vw;
  line-height: 1.75;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-sc.-guide {
    padding-top: 20vw;
  }
  .top-sc.-guide .top-sc__inner {
    padding-left: 4.8vw;
  }
  .top-guide {
    padding: 16vw 4.8vw 12vw 4.8vw;
  }
  .top-page__ttl.-guide {
    transform: translateX(0);
  }
  .top-guide__col {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    flex-direction: column;
    margin-top: 10.533vw;
  }
  .top-guide__photo {
    width: 82.667vw;
    position: relative;
    top: 0;
    left: -9.6vw;
  }
  .top-guide__lead {
    padding-top: 0;
    margin-top: 9.333vw;
  }
  .top-guide__lead__list {
    margin-top: 5.333vw;
  }
  .top-guide__lead__list li {
    padding-left: 7.467vw;
    font-size: 5.3333333333vw;
  }
  .top-guide__lead__list li::before {
    top: 2.933vw;
    left: 0;
    width: 4.8vw;
  }
  .top-guide__lead__list li small {
    margin-top: 2.933vw;
    font-size: 3.7333333333vw;
  }
  .top-guide__lead__list li:not(:first-of-type) {
    margin-top: 5.6vw;
  }
  .top-guide__lead__list + .top-guide__lead__txt {
    margin-top: 4vw;
  }
  .top-guide__lead__txt {
    font-size: 5.0666666667vw;
  }
  .top-guide__map {
    width: 85.333vw;
    margin-top: 9.333vw;
  }
  .top-guide__summary {
    margin-top: 8vw;
  }
  .top-guide__summary p {
    font-size: 3.7333333333vw;
  }
}
/* ================================================

- 墓地の種類

================================================ */
.top-sc.-type {
  padding: 4.071vw 0 5vw;
  background-color: #f2f2f2;
}
.top-sc.-type .top-sc__inner {
  padding: 0 5vw;
}

.top-type {
  margin-top: 7.357vw;
  padding: 7.143vw 3.571vw 3.286vw;
  background-color: #FFFFFF;
  position: relative;
}

.top-type__list {
  margin-top: -11.786vw;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(50% - 2.144vw), 1fr));
  gap: 4.286vw;
}

.top-type__item {
  display: grid;
  grid-template-rows: auto 1fr;
}

.top-type__photo {
  position: relative;
}
.top-type__photo figcaption {
  position: absolute;
  top: 0;
  right: 2.143vw;
  padding: 1.429vw 0.714vw;
  font-size: 2vw;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  background-color: #FFFFFF;
}

.top-type__summary {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 1;
  gap: 0;
  margin-top: 1.429vw;
}
.top-type__summary p {
  font-size: 1.143vw;
  line-height: 1.75;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.top-type__btn {
  margin-top: 1.929vw;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-sc.-type {
    padding: 20vw 0 20vw;
  }
  .top-sc.-type .top-sc__inner {
    padding: 0 4.8vw;
  }
  .top-type {
    margin-top: 18.667vw;
    padding: 7.143vw 9.6vw 10.667vw;
  }
  .top-type__list {
    margin-top: -17.333vw;
    grid-template-columns: repeat(auto-fit, minmax(100%));
    gap: 16vw;
  }
  .top-type__item {
    grid-template-rows: auto auto;
  }
  .top-type__photo figcaption {
    right: 4vw;
    padding: 4vw 1.867vw;
    font-size: 5.3333333333vw;
  }
  .top-type__summary {
    margin-top: 4vw;
  }
  .top-type__summary p {
    font-size: 3.7333333333vw;
  }
  .top-type__btn {
    margin-top: 5.333vw;
  }
}
/* ================================================

- 募集中の区画

================================================ */
.top-sc.-grave {
  padding-top: 4.786vw;
  background-color: #FFFFFF;
}

.top-grave__summary {
  margin-top: 1.929vw;
  text-align: center;
}
.top-grave__summary p {
  font-size: 1.214vw;
  line-height: 1.882;
  letter-spacing: 0.02em;
  color: #000000;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.top-grave {
  margin-top: 5.571vw;
  padding: 7.143vw 5vw 4.643vw;
  background-color: #f2f2f2;
  position: relative;
}

.top-grave__list {
  margin-top: -10vw;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(calc(33.3333333333% - 1.6673333333vw), 1fr));
  gap: 2.5vw;
}

.top-grave__item {
  display: grid;
  grid-template-rows: auto 1fr;
  background-color: #FFFFFF;
}

.top-grave__item.-notRecruiting .top-grave__photo::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(16, 16, 14, 0.6);
}
.top-grave__item.-notRecruiting .top-grave__photo::after {
  content: "現在\a募集はしておりません";
  position: absolute;
  inset: 0;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  white-space: pre;
  font-size: 1.286vw;
  line-height: 1.278;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  text-align: center;
  color: #FFFFFF;
}

.top-grave__photo {
  position: relative;
}
.top-grave__photo figcaption {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.857vw 0.786vw 0.714vw;
  font-size: 1.714vw;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  background-color: #FFFFFF;
}

.top-grave__item__summarys {
  display: grid;
  grid-template-rows: 1fr;
  padding: 1.071vw 1.429vw 6.071vw;
}

.top-grave__item__summarys:has(.top-grave__btn) {
  padding: 1.071vw 1.429vw 1.429vw;
}

.top-grave__item__summary {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 1;
  gap: 0;
}
.top-grave__item__summary p {
  font-size: 1.143vw;
  line-height: 1.625;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.top-grave__btn {
  margin-top: 1.5vw;
}
.top-grave__btn a {
  min-width: 10.286vw;
  min-height: 3.286vw;
  padding: 0;
}
.top-grave__btn a span {
  width: auto;
  padding-right: 0.714vw;
}

.top-grave__chart {
  width: 42.857vw;
  margin: 7.5vw auto 0;
  padding: 3.286vw 1.071vw 1.929vw;
  background-color: #FFFFFF;
  position: relative;
}

.top-grave__chart__btn {
  position: absolute;
  top: -4.286vw;
  left: 50%;
  transform: translateX(-50%);
}

.top-grave__chart__txt {
  font-size: 1.143vw;
  line-height: 1.75;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  text-align: center;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-sc.-grave {
    padding-top: 16vw;
  }
  .top-grave__summary {
    margin-top: 5.333vw;
  }
  .top-grave__summary p {
    font-size: 3.7333333333vw;
  }
  .top-grave {
    margin-top: 18.667vw;
    padding: 7.143vw 4.8vw 16vw;
  }
  .top-grave__list {
    margin-top: -17.333vw;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(calc(50% - 2vw), 1fr));
    gap: 4vw;
  }
  .top-grave__item {
    display: grid;
    grid-template-rows: auto 1fr;
  }
  .top-grave__item.-notRecruiting .top-grave__photo::after {
    font-size: 2.6666666667vw;
  }
  .top-grave__photo {
    position: relative;
  }
  .top-grave__photo figcaption {
    position: absolute;
    top: 0;
    right: 0;
    padding: 3.2vw 1.333vw 2.667vw;
    font-size: 4.2666666667vw;
  }
  .top-grave__photo img {
    height: 40vw;
    object-fit: cover;
    object-position: 50% 50%;
  }
  .top-grave__item__summarys {
    display: grid;
    grid-template-rows: 1fr;
    padding: 4vw 2.4vw 8vw;
  }
  .top-grave__item__summarys:has(.top-grave__btn) {
    padding: 4vw 2.4vw 5.333vw;
  }
  .top-grave__item__summary p {
    font-size: 3.2vw;
  }
  .top-grave__btn.m-btn.-next.-end {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    margin-top: 5.333vw;
  }
  .top-grave__btn.m-btn.-next.-end a {
    width: 100%;
    min-width: auto;
    min-height: 11.2vw;
    padding: 0 4vw;
    font-size: 3.2vw;
  }
  .top-grave__btn.m-btn.-next.-end a span {
    width: 100%;
    padding-right: 0;
  }
  .top-grave__btn.m-btn.-next.-end a span::before {
    width: 1.867vw;
    height: 1.867vw;
  }
  .top-grave__chart {
    width: 85.333vw;
    margin: 20vw auto 0;
    padding: 11.2vw 4vw 4.533vw;
  }
  .top-grave__chart__btn {
    top: -13.867vw;
    left: 50%;
    transform: translateX(-50%);
  }
  .top-grave__chart__txt {
    font-size: 3.7333333333vw;
  }
}
/* ================================================

- ギャラリー

================================================ */
.top-sc.-gallery {
  padding-top: 5.714vw;
  background-color: #FFFFFF;
}

.top-gallery {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
}

.top-gallery__item {
  width: 50%;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-sc.-gallery {
    padding-top: 16vw;
  }
  .top-gallery {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    flex-direction: column;
  }
  .top-gallery__item {
    width: 100%;
  }
  .top-gallery__item:nth-of-type(1) {
    order: 2;
  }
  .top-gallery__item:nth-of-type(2) {
    order: 1;
  }
}
/* ================================================

- アクセス

================================================ */
.top-sc.-access {
  padding: 3.929vw 0 6.429vw;
  background-color: #FFFFFF;
}

.top-access {
  padding: 0 4.643vw;
}

.top-access__summary {
  margin-top: 1.786vw;
}
.top-access__summary p {
  font-size: 1.143vw;
  line-height: 2;
  letter-spacing: 0.02em;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
}

.top-access__map {
  margin-top: 3.214vw;
}
.top-access__map iframe {
  width: 100%;
  aspect-ratio: 1140/420;
}

/*--- media screen ---*/
@media screen and (max-width: 568px) {
  .top-sc.-access {
    padding: 14.667vw 0 24vw;
  }
  .top-access {
    padding: 0 4.8vw;
  }
  .top-access__summary {
    margin-top: 5.333vw;
  }
  .top-access__summary p {
    font-size: 3.7333333333vw;
  }
  .top-access__summary p span {
    display: block;
  }
  .top-access__map {
    margin-top: 9.333vw;
  }
  .top-access__map iframe {
    aspect-ratio: 3/3;
  }
}
/* ================================================

-

================================================ */
/*--- media screen ---*/