/* 固定ページ：タイトル・背景・曲線・本文 */

.standard-page {
 --page-surface: var(--color-surface-cream);
 background: var(--page-surface);
 color: var(--color-text);
}

.page-intro {
 --page-title-height: 460px;
 --page-title-duration: 1.8s;
 position: relative;
 isolation: isolate;
 overflow: hidden;
 min-height: 610px;
 background: var(--page-surface, var(--color-surface-cream));
 word-break: normal;
 overflow-wrap: anywhere;
}

.page-intro__background {
 position: absolute;
 inset: 0 0 auto;
 height: calc(var(--page-stage-height, var(--page-title-height)) + clamp(40px, 10.41667vw, 200px));
 z-index: -1;
}

.page-intro__background img {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center bottom;
}

.page-intro__stage {
 position: relative;
 z-index: 1;
 box-sizing: border-box;
 min-height: var(--page-title-height);
 display: flex;
 align-items: center;
 padding-block: 110px 70px;
}

.page-intro__content {
 box-sizing: border-box;
 width: 100%;
 max-width: var(--content-width-980);
 margin-inline: auto;
 padding-inline: 40px;
}

.page-intro__title,
.page-intro__english,
.page-intro__description {
 margin: 0;
 paint-order: stroke fill;
 -webkit-text-stroke: 2px var(--color-white);
}

.page-intro__title {
 max-width: var(--content-width-600);
 font-size: var(--font-size-36);
 font-weight: var(--font-weight-bold);
 color: var(--color-brand-gold-dark);
 line-height: 1.4;
}

.page-intro__english {
 margin-top: 4px;
 max-width: var(--content-width-600);
 font-size: var(--font-size-30);
 font-family: Georgia, 'Times New Roman', serif;
 color: var(--color-brand-gold);
 line-height: 1.5;
 letter-spacing: 0.2em;
}

.page-intro__description {
 max-width: var(--content-width-768);
 margin-top: 34px;
 font-size: var(--font-size-21);
 font-weight: var(--font-weight-bold);
 line-height: 1.7;
 -webkit-text-stroke-width: 1.5px;
}

.page-intro__curve {
 position: absolute;
 z-index: 2;
 top: calc(var(--page-stage-height, var(--page-title-height)) - 110px);
 inset-inline: 0;
 pointer-events: none;
}

.page-intro__curve picture,
.page-intro__curve img {
 display: block;
 width: 100%;
 height: auto;
}

.page-intro::after {
 content: '';
 position: absolute;
 z-index: 3;
 inset: auto 0 0;
 height: clamp(90px, 10vw, 160px);
 background: linear-gradient(to bottom, transparent, var(--page-surface, var(--color-surface-cream)));
 pointer-events: none;
}

.page-intro__curve::after {
 content: '';
 position: absolute;
 inset: calc(100% - 1px) 0 auto;
 height: 1500px;
 background: var(--page-surface, var(--color-surface-cream));
}

.page-intro.is-ready .page-intro__heading-group {
 animation: page-title-dissolve var(--page-title-duration) ease both;
}

.page-intro.is-ready .page-intro__description {
 animation: page-description-wipe 1.6s ease var(--page-title-duration) both;
}

.standard-page__body {
 position: relative;
 z-index: 3;
 box-sizing: border-box;
 max-width: var(--content-width-980);
 margin: -54px auto 0;
 padding: 10px 40px 24px;
}

.standard-page__body > .breadcrumbs {
 margin-bottom: 18px;
}

.standard-page__content {
 overflow-wrap: anywhere;
}

.standard-page__content img {
 max-width: 100%;
 height: auto;
}

/* 法務ページ：供養詳細ページと同じカード表現。 */
.legal-page {
 padding-bottom: clamp(56px, 7vw, 110px);
}

.legal-page > p:first-child {
 margin: 0 0 clamp(22px, 2.5vw, 38px);
 font-size: var(--font-size-18);
 line-height: 1.9;
}

.legal-page .information {
 display: grid;
 margin: 0;
 padding: 0;
}

.legal-page .information dt,
.legal-page .information dd {
 box-sizing: border-box;
 margin: 0;
 border-inline: 1px solid rgb(216 183 123 / 75%);
 background: rgb(255 255 255 / 92%);
}

.legal-page .information dt {
 position: relative;
 padding: clamp(24px, 3vw, 42px) clamp(24px, 3vw, 42px) 18px;
 border-top: 1px solid rgb(216 183 123 / 75%);
 border-radius: clamp(18px, 2vw, 28px) clamp(18px, 2vw, 28px) 0 0;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-30);
 font-weight: var(--font-weight-bold);
 line-height: 1.45;
}

.legal-page .information dt::after {
 content: '';
 display: block;
 width: 72px;
 height: 3px;
 margin-top: 14px;
 border-radius: 999px;
 background: var(--color-accent-pink);
}

.legal-page .information dd {
 margin-bottom: clamp(22px, 2.5vw, 38px);
 padding: 0 clamp(24px, 3vw, 42px) clamp(24px, 3vw, 42px);
 border-bottom: 1px solid rgb(216 183 123 / 75%);
 border-radius: 0 0 clamp(18px, 2vw, 28px) clamp(18px, 2vw, 28px);
 font-size: var(--font-size-18);
 line-height: 1.9;
 box-shadow: 0 14px 36px rgb(133 91 0 / 8%);
}

.legal-page .information dd > p:empty {
 display: none;
}

.legal-page .information .item {
 display: grid;
 gap: 12px;
 margin: 18px 0 0;
 padding: 0;
 list-style: none;
}

.legal-page .information .item li {
 position: relative;
 padding: 14px 18px 14px 42px;
 border-radius: 12px;
 background: var(--color-brand-gold-soft);
 line-height: 1.8;
}

.legal-page .information .item li::before {
 content: '';
 position: absolute;
 top: 1.1em;
 left: 20px;
 width: 8px;
 height: 8px;
 border-radius: 50%;
 background: var(--color-accent-pink);
}

@keyframes page-title-dissolve {
 from {
  opacity: 0;
  transform: translateY(10px);
 }

 to {
  opacity: 1;
  transform: translateY(0);
 }
}

@keyframes page-description-wipe {
 from {
  clip-path: inset(-4px 100% -4px -4px);
 }

 to {
  clip-path: inset(-4px -4px -4px -4px);
 }
}

@media (min-width: 768px) and (max-width: 1199px) {
 .page-intro {
  --page-title-height: 490px;
  min-height: 610px;
 }

 .page-intro__content {
  max-width: 100%;
  padding-inline: clamp(60px, 7.8125vw, 94px);
 }

 .page-intro__title {
  font-size: var(--font-size-54);
 }

 .page-intro__english {
  font-size: var(--font-size-24);
 }

 .page-intro__description {
  font-size: var(--font-size-21);
 }

 .page-intro__curve {
  top: calc(var(--page-stage-height, var(--page-title-height)) - 90px);
 }
}

@media (max-width: 767px) {
 .page-intro {
  --page-title-height: 440px;
  min-height: 540px;
 }

 .page-intro__stage {
  padding-block: 105px 100px;
 }

 .page-intro__content {
  max-width: 100%;
  padding-inline: clamp(30px, calc(8.52349px + 6.71141vw), 60px);
 }

 .page-intro__title {
  font-size: var(--font-size-42);
 }

 .page-intro__english {
  font-size: var(--font-size-16);
 }

 .page-intro__description {
  margin-top: 26px;
 }

 .page-intro__curve {
  top: calc(var(--page-stage-height, var(--page-title-height)) - 40px);
 }

 .standard-page__body {
  margin-top: -28px;
  padding: 12px 30px 32px;
 }

 .legal-page > p:first-child,
 .legal-page .information dd {
  font-size: var(--font-size-16);
 }

 .legal-page .information dt {
  padding: 22px 18px 16px;
  font-size: var(--font-size-24);
 }

 .legal-page .information dd {
  padding: 0 18px 22px;
 }

 .legal-page .information .item li {
  padding: 12px 14px 12px 36px;
 }

 .legal-page .information .item li::before {
  left: 16px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .page-intro.is-ready .page-intro__heading-group,
 .page-intro.is-ready .page-intro__description {
  animation: none;
 }

}

/* お知らせ・アーカイブ一覧のカード。 */
.standard-list {
 display: grid;
 gap: clamp(22px, 2.5vw, 38px);
 padding-bottom: clamp(56px, 7vw, 110px);
}

.standard-list__item {
 position: relative;
 display: flex;
 min-width: 0;
 flex-direction: column;
 padding: clamp(24px, 3vw, 42px);
 border: 1px solid rgb(216 183 123 / 75%);
 border-radius: clamp(18px, 2vw, 28px);
 background: rgb(255 255 255 / 92%);
 box-shadow: 0 14px 36px rgb(133 91 0 / 8%);
}

.standard-list__item h2 {
 position: relative;
 margin: 0;
 padding: 0 0 14px;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-30);
 font-weight: var(--font-weight-bold);
 line-height: 1.5;
}

.standard-list__item h2::after {
 content: '';
 position: absolute;
 left: 0;
 bottom: 0;
 width: 72px;
 height: 3px;
 border-radius: 999px;
 background: var(--color-accent-pink);
}

.standard-list__item h2 a {
 color: inherit;
 text-decoration: none;
 transition: color .25s ease;
}

.standard-list__item h2 a:hover {
 color: var(--color-accent-pink-dark);
}

.standard-list__item time {
 display: inline-flex;
 align-self: flex-start;
 margin-top: 18px;
 padding: 6px 14px;
 border-radius: 999px;
 background: var(--color-accent-pink-soft);
 color: var(--color-accent-pink-dark);
 font-size: var(--font-size-14);
 font-weight: var(--font-weight-bold);
 line-height: 1.4;
}

.news-card__excerpt {
 margin-top: 18px;
 font-size: var(--font-size-18);
 line-height: 1.9;
}

.news-card__excerpt > :first-child {
 margin-top: 0;
}

.news-card__excerpt > :last-child {
 margin-bottom: 0;
}

.news-card__more {
 display: inline-flex;
 align-self: flex-end;
 align-items: center;
 gap: 12px;
 margin-top: 22px;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-16);
 font-weight: var(--font-weight-bold);
 text-decoration: none;
}

.news-card__more span:last-child {
 display: inline-grid;
 width: 40px;
 aspect-ratio: 1;
 place-items: center;
 border-radius: 50%;
 background: var(--color-brand-gold);
 color: var(--color-white);
 font-size: var(--font-size-21);
 transition: background-color .25s ease, transform .25s ease;
}

.news-card__more:hover span:last-child {
 background: var(--color-brand-gold-dark);
 transform: translateX(3px);
}

.standard-list :is(a, .page-numbers):focus-visible {
 outline: 3px solid var(--color-focus);
 outline-offset: 4px;
}

.standard-list .pagination {
 margin-top: clamp(10px, 2vw, 26px);
}

.standard-list .pagination .screen-reader-text {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 border: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0 0 0 0);
 white-space: nowrap;
}

.standard-list .pagination .nav-links {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 10px;
}

.standard-list .pagination .page-numbers {
 box-sizing: border-box;
 display: inline-flex;
 min-width: 48px;
 min-height: 48px;
 align-items: center;
 justify-content: center;
 gap: 8px;
 padding: 8px 14px;
 border: 2px solid var(--color-accent-pink-border);
 border-radius: 999px;
 background: var(--color-white);
 color: var(--color-accent-pink-dark);
 font-size: var(--font-size-16);
 font-weight: var(--font-weight-bold);
 line-height: 1;
 text-decoration: none;
 transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.standard-list .pagination .page-numbers.current,
.standard-list .pagination a.page-numbers:hover {
 border-color: var(--color-accent-pink);
 background: var(--color-accent-pink);
 color: var(--color-white);
}

.standard-list__empty {
 margin: 0;
 padding: 28px;
 border: 1px solid var(--color-brand-gold-border);
 border-radius: 20px;
 background: var(--color-white);
 font-size: var(--font-size-18);
 text-align: center;
}

@media (max-width: 767px) {
 .standard-list__item {
  padding: 22px 18px;
 }

 .standard-list__item h2 {
  font-size: var(--font-size-24);
 }

 .news-card__excerpt {
  font-size: var(--font-size-16);
 }

 .standard-list .pagination .nav-links {
  gap: 7px;
 }

 .standard-list .pagination .page-numbers {
  min-width: 42px;
  min-height: 42px;
  padding: 7px 11px;
  font-size: var(--font-size-14);
 }
}

/* お知らせ・シングルページのカード。 */
.news-single {
 padding-bottom: clamp(56px, 7vw, 110px);
}

.news-single__card {
 box-sizing: border-box;
 padding: clamp(24px, 3vw, 42px);
 border: 1px solid rgb(216 183 123 / 75%);
 border-radius: clamp(18px, 2vw, 28px);
 background: rgb(255 255 255 / 92%);
 box-shadow: 0 14px 36px rgb(133 91 0 / 8%);
}

.news-single__title {
 position: relative;
 margin: 0;
 padding: 0 0 14px;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-30);
 font-weight: var(--font-weight-bold);
 line-height: 1.5;
}

.news-single__title::after {
 content: '';
 position: absolute;
 left: 0;
 bottom: 0;
 width: 72px;
 height: 3px;
 border-radius: 999px;
 background: var(--color-accent-pink);
}

.news-single__date {
 display: inline-flex;
 margin-top: 18px;
 padding: 6px 14px;
 border-radius: 999px;
 background: var(--color-accent-pink-soft);
 color: var(--color-accent-pink-dark);
 font-size: var(--font-size-14);
 font-weight: var(--font-weight-bold);
 line-height: 1.4;
}

.news-single__content {
 margin-top: clamp(20px, 2.5vw, 30px);
 font-size: var(--font-size-18);
 line-height: 1.9;
}

.news-single__content > :first-child {
 margin-top: 0;
}

.news-single__content > :last-child {
 margin-bottom: 0;
}

.news-single__actions {
 display: flex;
 justify-content: center;
 margin-top: clamp(24px, 3vw, 38px);
}

.news-single__back {
 display: inline-flex;
 min-height: 52px;
 align-items: center;
 justify-content: center;
 gap: 10px;
 padding: 10px 24px;
 border: 2px solid var(--color-accent-pink-border);
 border-radius: 999px;
 background: var(--color-white);
 color: var(--color-accent-pink-dark);
 font-size: var(--font-size-16);
 font-weight: var(--font-weight-bold);
 text-decoration: none;
 transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.news-single__back:hover {
 border-color: var(--color-accent-pink);
 background: var(--color-accent-pink);
 color: var(--color-white);
}

.news-single :is(a, .post-page-numbers):focus-visible {
 outline: 3px solid var(--color-focus);
 outline-offset: 4px;
}

@media (max-width: 767px) {
 .news-single__card {
  padding: 22px 18px;
 }

 .news-single__title {
  font-size: var(--font-size-24);
 }

 .news-single__content {
  font-size: var(--font-size-16);
 }

 .news-single__back {
  width: 100%;
 }
}
