.kuyou-detail {
 padding-bottom: clamp(56px, 7vw, 110px);
}

.kuyou-detail .sub_contents {
 display: grid;
 gap: clamp(22px, 2.5vw, 38px);
 margin: 0;
 padding: 0;
 list-style: none;
}

.kuyou-detail .sub_contents > .kuyou-detail__section {
 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%);
}

.kuyou-detail .h3_title {
 position: relative;
 margin: 0 0 22px;
 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.45;
}

.kuyou-detail #guide-jibokannon {
 scroll-margin-top: clamp(90px, 8vw, 130px);
}

.kuyou-detail__faq-list {
 grid-template-columns: minmax(0, 1fr);
}

.kuyou-detail__faq .home-faq-item__question-text {
 font-size: var(--font-size-18);
}

.kuyou-detail__faq .home-faq-item__answer-text,
.kuyou-detail__faq .home-faq-item__answer-text p,
.kuyou-detail__faq .home-faq-item__answer-text li {
 font-size: var(--font-size-16);
}

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

.kuyou-detail .sub_contents p {
 margin: 0;
 font-size: var(--font-size-18);
 line-height: 1.9;
}

.kuyou-detail .sub_contents p + p {
 margin-top: 1em;
}

/* 「水子供養とは」：floatではなくGridで画像と文章を配置する。 */
.kuyou-detail__about-layout {
 display: grid;
 grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr);
 gap: clamp(24px, 3vw, 42px);
 align-items: start;
}

.kuyou-detail__about-visual {
 margin: 0;
}

.kuyou-detail__about-visual img {
 display: block;
 width: 100%;
 height: auto;
 border-radius: 18px;
}

.kuyou-detail__about-text > :first-child {
 margin-top: 0;
}

.kuyou-detail__about-text > :last-child {
 margin-bottom: 0;
}

/* 「水子供養について」ページの観音像・寺院紹介。 */
.kuyou-detail__guide-visual {
 width: min(100%, 720px);
 margin: 0 auto clamp(22px, 3vw, 34px);
}

.kuyou-detail__guide-visual img {
 display: block;
 width: 100%;
 height: auto;
 border-radius: 18px;
}

.kuyou-detail__guide-text > :first-child {
 margin-top: 0;
}

.kuyou-detail__guide-text > :last-child {
 margin-bottom: 0;
}

.kuyou-detail__official-action {
 margin-top: clamp(8px, 1vw, 16px);
}

/* 水子供養の所要時間と、当日お渡しする御守り・塔婆。 */
.kuyou-detail__duration,
.kuyou-detail__important {
 color: var(--color-accent-pink-dark);
 font-size: 1.1em;
 font-weight: var(--font-weight-bold);
}

.kuyou-detail__received-heading {
 margin: clamp(26px, 3vw, 38px) 0 16px;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-21);
 font-weight: var(--font-weight-bold);
 line-height: 1.5;
}

.kuyou-detail__received-items {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: clamp(16px, 2.5vw, 30px);
}

.kuyou-detail__received-items--single {
 grid-template-columns: minmax(0, 1fr);
 width: min(100%, 520px);
 margin-inline: auto;
}

.kuyou-detail__zoom-button {
 position: relative;
 display: block;
 width: 100%;
 margin: 0;
 padding: 0;
 overflow: hidden;
 border: 0;
 background: #fff;
 color: inherit;
 cursor: zoom-in;
 text-decoration: none;
}

.kuyou-detail__zoom-button:focus-visible {
 outline: 3px solid var(--color-accent-pink);
 outline-offset: -3px;
}

.kuyou-detail__zoom-hint {
 position: absolute;
 right: 12px;
 bottom: 12px;
 padding: 6px 12px;
 border-radius: 999px;
 background: rgb(255 255 255 / 92%);
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-14);
 font-weight: var(--font-weight-bold);
 box-shadow: var(--shadow-small);
}

.kuyou-detail__lightbox {
 width: min(92vw, 960px);
 max-width: none;
 max-height: 92vh;
 margin: auto;
 padding: 46px 18px 18px;
 border: 0;
 border-radius: 18px;
 background: #fff;
 box-shadow: 0 24px 80px rgb(0 0 0 / 35%);
}

.kuyou-detail__lightbox[open] {
 animation: kuyou-lightbox-in 240ms ease-out both;
}

.kuyou-detail__lightbox::backdrop {
 background: rgb(0 0 0 / 72%);
}

.kuyou-detail__lightbox[open]::backdrop {
 animation: kuyou-lightbox-backdrop-in 240ms ease-out both;
}

.kuyou-detail__lightbox.is-closing {
 animation: kuyou-lightbox-out 200ms ease-in both;
}

.kuyou-detail__lightbox.is-closing::backdrop {
 animation: kuyou-lightbox-backdrop-out 200ms ease-in both;
}

.kuyou-detail__lightbox-image {
 display: block;
 width: auto;
 max-width: 100%;
 height: auto;
 max-height: calc(92vh - 64px);
 margin-inline: auto;
 object-fit: contain;
}

.kuyou-detail__lightbox-close {
 position: absolute;
 top: 8px;
 right: 10px;
 display: grid;
 width: 36px;
 height: 36px;
 place-items: center;
 padding: 0;
 border: 0;
 border-radius: 50%;
 background: var(--color-accent-pink-soft);
 color: var(--color-accent-pink-dark);
 font-size: 26px;
 line-height: 1;
 cursor: pointer;
}

html.is-kuyou-lightbox-open {
 overflow: hidden;
}

@keyframes kuyou-lightbox-in {
 from {
  opacity: 0;
  transform: translateY(14px) scale(.96);
 }
 to {
  opacity: 1;
  transform: translateY(0) scale(1);
 }
}

@keyframes kuyou-lightbox-out {
 from {
  opacity: 1;
  transform: translateY(0) scale(1);
 }
 to {
  opacity: 0;
  transform: translateY(10px) scale(.97);
 }
}

@keyframes kuyou-lightbox-backdrop-in {
 from { background: rgb(0 0 0 / 0%); }
 to { background: rgb(0 0 0 / 72%); }
}

@keyframes kuyou-lightbox-backdrop-out {
 from { background: rgb(0 0 0 / 72%); }
 to { background: rgb(0 0 0 / 0%); }
}

@media (prefers-reduced-motion: reduce) {
 .kuyou-detail__lightbox[open],
 .kuyou-detail__lightbox[open]::backdrop,
 .kuyou-detail__lightbox.is-closing,
 .kuyou-detail__lightbox.is-closing::backdrop {
  animation: none;
 }
}

.kuyou-detail__received-item {
 display: flex;
 flex-direction: column;
 margin: 0;
 overflow: hidden;
 border: 1px solid rgb(216 183 123 / 75%);
 border-radius: 16px;
 background: var(--color-brand-gold-soft);
}

.kuyou-detail__received-item img {
 display: block;
 width: 100%;
 aspect-ratio: 4 / 3;
 object-fit: contain;
 background: #fff;
}

.kuyou-detail__received-item figcaption {
 padding: 14px 16px;
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-18);
 font-weight: var(--font-weight-bold);
 line-height: 1.55;
 text-align: center;
}

.kuyou-detail .sub_contents .kuyou-detail__privacy-note {
 margin-top: 18px;
 padding: 12px 16px;
 border-left: 4px solid var(--color-accent-pink);
 background: var(--color-accent-pink-soft);
 font-size: var(--font-size-16);
}

/* 水子供養の流れ：1カラムのSTEPカードと、カード間中央の下向き矢印。 */
.kuyou-detail__flow-steps {
 grid-template-columns: minmax(0, 1fr);
 gap: 64px;
}

.kuyou-detail__flow-steps .kuyou-detail__flow-card {
 min-height: 0;
 padding: clamp(22px, 3vw, 32px);
}

.kuyou-detail__flow-steps .home-flow-card:not(:last-child)::after {
 top: auto;
 right: 50%;
 bottom: -56px;
 transform: translateX(50%) rotate(90deg);
}

.kuyou-detail__flow-steps .home-flow-card__title {
 margin-bottom: 0;
 padding-top: 24px;
 padding-bottom: 12px;
 font-size: var(--font-size-21);
 line-height: 1.5;
}

.kuyou-detail__flow-steps .home-flow-card__title::after {
 display: none;
}

/* 当日供養のご案内は、予約カレンダーページと同じ表示にする。 */
.kuyou-detail__same-day .h3_title {
 margin-bottom: 18px;
 line-height: 1.5;
}

.kuyou-detail .sub_contents .kuyou-detail__same-day > p,
.kuyou-detail .sub_contents .kuyou-detail__same-day .kuyou-detail__section-content > p {
 margin: 0 0 20px;
 font-size: var(--font-size-16);
 line-height: 1.9;
}

.kuyou-detail__same-day .tel_box {
 padding: 16px;
 border: 1px solid #e5d7c7;
 border-radius: 16px;
 background: var(--color-accent-pink-surface);
 line-height: 1.9;
 text-align: center;
}

.kuyou-detail__same-day .tel_box a {
 display: block;
 padding: 6px;
 color: var(--color-brand-gold);
 font-size: var(--font-size-24);
 font-weight: 600;
}

.kuyou-detail__same-day .text_center {
 font-size: var(--font-size-14);
 line-height: 1.9;
 text-align: center;
}

.kuyou-detail__steps,
.kuyou-detail__items {
 display: grid;
 gap: 14px;
 margin: 0;
 padding: 0;
 list-style: none;
 counter-reset: kuyou-step;
}

.kuyou-detail__steps li,
.kuyou-detail__items li {
 display: grid;
 grid-template-columns: minmax(150px, .36fr) minmax(0, 1fr);
 gap: 18px;
 align-items: start;
 padding: 18px 20px;
 border-radius: 14px;
 background: var(--color-brand-gold-soft);
}

.kuyou-detail__steps li {
 counter-increment: kuyou-step;
}

.kuyou-detail__steps strong::before {
 content: 'STEP ' counter(kuyou-step);
 display: block;
 margin-bottom: 4px;
 color: var(--color-accent-pink);
 font-size: var(--font-size-14);
 letter-spacing: .08em;
}

.kuyou-detail__steps strong,
.kuyou-detail__items strong {
 color: var(--color-brand-gold-dark);
 font-size: var(--font-size-18);
}

.kuyou-detail__steps span,
.kuyou-detail__items span {
 font-size: var(--font-size-16);
 line-height: 1.8;
}

.kuyou-detail__note {
 padding: 12px 16px;
 border-left: 4px solid var(--color-accent-pink);
 background: var(--color-accent-pink-soft);
}

/* 旧本文の段組みも、すべての供養詳細ページで同じカードレイアウトにする。 */
.kuyou-detail .two_column,
.kuyou-detail .four_column,
.kuyou-detail .item {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.kuyou-detail .two_column > li,
.kuyou-detail .four_column > li,
.kuyou-detail .item > li {
	min-width: 0;
	padding: 18px 20px;
	border-radius: 14px;
	background: var(--color-brand-gold-soft);
}

.kuyou-detail .mini_title {
	margin: 0 0 10px;
	color: var(--color-brand-gold-dark);
	font-size: var(--font-size-18);
	font-weight: var(--font-weight-bold);
	line-height: 1.55;
}

.kuyou-detail .two_column img,
.kuyou-detail .four_column img {
	display: block;
	width: min(100%, 220px);
	height: auto;
	margin: 0 auto 14px;
}

.kuyou-detail .red {
	color: var(--color-accent-pink-dark);
	font-weight: var(--font-weight-bold);
}

/* 持参物と服装はトップページと同じ部品・SCFデータを使用する。 */
.kuyou-detail__shared-guide {
	margin: 0;
}

.kuyou-detail__shared-guide .home-day-guide-card__items {
	grid-template-columns: minmax(0, 1fr);
}

.kuyou-detail__shared-guide .home-day-guide-card__item {
	grid-template-columns: clamp(84px, 18vw, 150px) minmax(0, 1fr);
	gap: 2em;
	align-items: center;
}

.kuyou-detail__shared-guide .home-day-guide-card__image {
	width: 100%;
	justify-self: start;
}

.kuyou-detail__shared-guide .home-day-guide-card__item-title {
	font-size: var(--font-size-18);
	line-height: 1.5;
	text-align: left !important;
}

.kuyou-detail .sub_contents .home-day-guide-card__text,
.kuyou-detail .sub_contents .home-day-guide-card__item p {
	font-size: var(--font-size-18);
	line-height: 1.9;
}

@media (max-width: 767px) {
 .kuyou-detail .sub_contents > .kuyou-detail__section {
  padding: 22px 18px;
 }


 .kuyou-detail__about-layout {
  grid-template-columns: minmax(0, 1fr);
 }

 .kuyou-detail__about-visual {
  width: min(100%, 420px);
  margin-inline: auto;
 }

 .kuyou-detail__received-items {
  grid-template-columns: 1fr;
 }

 .kuyou-detail__flow-steps {
  gap: 56px;
 }

 .kuyou-detail__flow-steps .home-flow-card:not(:last-child)::after {
  bottom: -50px;
 }

 .kuyou-detail__steps li,
 .kuyou-detail__items li {
  grid-template-columns: 1fr;
  gap: 8px;
 }

	.kuyou-detail .two_column,
	.kuyou-detail .four_column,
	.kuyou-detail .item {
		grid-template-columns: 1fr;
	}

	.kuyou-detail .sub_contents .home-day-guide-card__text,
	.kuyou-detail .sub_contents .home-day-guide-card__item p {
		font-size: var(--font-size-16);
		line-height: 1.8;
	}

	.kuyou-detail__shared-guide .home-day-guide-card__item-title {
		font-size: var(--font-size-16);
	}

	.kuyou-detail__shared-guide .home-day-guide-card__item {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25em;
	}

	.kuyou-detail__shared-guide .home-day-guide-card__image {
		width: 75%;
		justify-self: center;
	}

}

@media (max-width: 480px) {
	.kuyou-detail__shared-guide .home-day-guide-card__image {
		width: 80%;
	}
}

@media (max-width: 350px) {
	.kuyou-detail__shared-guide .home-day-guide-card__image {
		width: 90%;
	}
}
