/* トップページ：ご供養者様の声（FAQと共通のピンク・ゴールド配色） */

.home-voice {
 position: relative;
 z-index: 1;
 scroll-margin-top: clamp(76px, 6vw, 112px);
 padding: calc(clamp(80px, 6.25vw, 120px) + clamp(50px, 7.29167vw, 140px)) 0 calc(clamp(90px, 7.29167vw, 140px) + clamp(50px, 7.29167vw, 140px));
 background: var(--color-surface-cream);
 color: var(--color-text);
 overflow: hidden;
}

.home-voice__top-curve,
.home-voice__curve {
 position: absolute;
 z-index: 1;
 display: block;
 width: 100%;
 height: clamp(50px, 7.29167vw, 140px);
 pointer-events: none;
}

.home-voice__top-curve {
 inset: -1px 0 auto;
 fill: var(--color-accent-pink-surface);
}

.home-voice__curve {
 inset: auto 0 -1px;
 fill: var(--color-white);
}

.home-voice__inner {
 position: relative;
 z-index: 1;
 width: min(var(--content-width-1600), calc(100% - 80px));
 margin-inline: auto;
}

.home-voice__header {
 margin-bottom: clamp(40px, 3.64583vw, 70px);
 text-align: center;
}

.home-voice__title {
 margin: 0;
 color: var(--color-text);
 font-family: var(--font-family-base);
 font-size: var(--font-size-60);
 font-weight: var(--font-weight-bold);
 line-height: 1.25;
 letter-spacing: .04em;
 text-shadow: 0 3px 0 var(--color-white), 0 6px 16px rgb(101 73 49 / 12%);
}

.home-voice__title span {
 color: var(--color-accent-pink);
}

.home-voice__lead {
 margin: clamp(12px, 1.04167vw, 20px) 0 0;
 color: var(--color-text);
 font-size: var(--font-size-24);
 font-weight: var(--font-weight-bold);
 line-height: 1.6;
}

.home-voice-slider {
 --voice-gap: 20px;
 --voice-card-width: calc(33.333333% - 13.333333px);
}

.home-voice-slider__viewport {
 width: 100%;
 overflow-x: auto;
 overflow-y: hidden;
 overscroll-behavior-inline: contain;
 scroll-behavior: smooth;
 scroll-snap-type: x mandatory;
 scrollbar-width: none;
 touch-action: pan-x pan-y;
}

.home-voice-slider__viewport::-webkit-scrollbar {
 display: none;
}

.home-voice-slider__viewport:focus-visible {
 outline: 3px solid var(--color-focus);
 outline-offset: 6px;
 border-radius: 28px;
}

.home-voice-slider__track {
 display: flex;
 align-items: stretch;
 gap: var(--voice-gap);
}

.home-voice-card {
 position: relative;
 box-sizing: border-box;
 display: flex;
 min-width: 0;
 flex: 0 0 var(--voice-card-width);
 flex-direction: column;
 scroll-snap-align: start;
 border: 3px solid var(--color-accent-pink-border);
 border-radius: clamp(18px, 1.5625vw, 30px);
 padding: clamp(22px, 1.5625vw, 30px);
 background: var(--color-white);
 box-shadow: var(--shadow-card);
 overflow: hidden;
}

.home-voice-card__quote {
 position: absolute;
 top: 6px;
 right: 16px;
 color: var(--color-accent-pink-soft);
 font-family: Georgia, serif;
 font-size: var(--font-size-84);
 font-weight: 700;
 line-height: 1;
 pointer-events: none;
}

.home-voice-card__title {
 position: relative;
 z-index: 1;
 margin: 0;
 padding-right: 22px;
 font-size: var(--font-size-24);
 line-height: 1.55;
}

.home-voice-card__title a {
 color: var(--color-text);
 text-decoration: none;
 transition: color .25s ease;
}

.home-voice-card__title a:hover {
 color: var(--color-accent-pink);
}

.home-voice-card__title a:focus-visible,
.home-voice-card__more:focus-visible,
.home-voice-slider__arrow:focus-visible,
.home-voice-slider__pagination button:focus-visible,
.home-voice__more:focus-visible {
 outline: 3px solid var(--color-focus);
 outline-offset: 4px;
}

.home-voice-card__meta {
 display: flex;
 flex-wrap: wrap;
 gap: 4px 12px;
 margin: 16px 0 0;
 color: var(--color-brand-gold);
 font-size: var(--font-size-18);
 font-weight: var(--font-weight-bold);
 line-height: 1.6;
}

.home-voice-card__text {
 display: -webkit-box;
 margin: 18px 0 0;
 overflow: hidden;
 color: #4d5053;
 font-size: var(--font-size-16);
 line-height: 1.85;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 7;
}

.home-voice-card__comment {
 margin-top: 18px;
 padding: 14px;
 border-radius: 14px;
 background: var(--color-brand-gold-soft);
 color: #5f5137;
 font-size: var(--font-size-18);
 line-height: 1.7;
}

.home-voice-card__comment p {
 margin: 0;
}

.home-voice-card__comment p:not(.home-voice-card__comment-label) {
 display: -webkit-box;
 overflow: hidden;
 font-size: var(--font-size-16);
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 3;
}

.home-voice-card__comment-label {
 margin-bottom: 5px !important;
 color: var(--color-brand-gold);
 font-weight: var(--font-weight-bold);
}

.home-voice-card__more {
 display: inline-flex;
 align-self: flex-end;
 align-items: center;
 justify-content: flex-start;
 gap: 12px;
 margin-top: auto;
 padding-top: 20px;
 color: var(--color-brand-gold);
 font-size: var(--font-size-16);
 font-weight: var(--font-weight-bold);
 text-decoration: none;
}

.home-voice-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);
 line-height: 1;
 transition: transform .25s ease, background-color .25s ease;
}

.home-voice-card__more span:first-child {
 text-decoration: underline;
 text-decoration-color: transparent;
 text-underline-offset: 4px;
 transition: text-decoration-color .25s ease;
}

.home-voice-card__more:hover span:first-child {
 text-decoration-color: currentColor;
}

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

.home-voice-slider__controls {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: clamp(20px, 2.08333vw, 40px);
 margin-top: clamp(30px, 2.60417vw, 50px);
}

.home-voice-slider.has-single-page .home-voice-slider__controls {
 display: none;
}

.home-voice-slider__arrow {
 display: inline-grid;
 width: clamp(48px, 3.125vw, 60px);
 aspect-ratio: 1;
 place-items: center;
 border: 2px solid var(--color-accent-pink);
 border-radius: 50%;
 background: var(--color-white);
 color: var(--color-accent-pink);
 font: inherit;
 font-size: var(--font-size-24);
 cursor: pointer;
 transition: background-color .25s ease, color .25s ease, opacity .25s ease;
}

.home-voice-slider__arrow:hover:not(:disabled) {
 background: var(--color-accent-pink);
 color: var(--color-white);
}

.home-voice-slider__arrow:disabled {
 opacity: .3;
 cursor: default;
}

.home-voice-slider__pagination {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 10px;
}

.home-voice-slider__pagination button {
 box-sizing: border-box;
 width: 12px;
 height: 12px;
 padding: 0;
 border: 2px solid var(--color-accent-pink);
 border-radius: 50%;
 background: var(--color-white);
 cursor: pointer;
 transition: width .2s ease, background-color .2s ease;
}

.home-voice-slider__pagination button.is-current {
 width: 30px;
 border-radius: 999px;
 background: var(--color-accent-pink);
}

.home-voice__actions {
 display: flex;
 justify-content: center;
 margin-top: clamp(40px, 3.64583vw, 70px);
}

.home-voice__more {
 position: relative;
 box-sizing: border-box;
 display: inline-flex;
 width: min(100%, var(--content-width-600));
 min-height: 76px;
 align-items: center;
 justify-content: center;
 gap: 30px;
 padding: 16px 28px;
 border: 3px solid var(--color-accent-pink);
 border-radius: 999px;
 background: var(--color-white);
 color: var(--color-accent-pink);
 font-size: var(--font-size-24);
 font-weight: var(--font-weight-bold);
 text-decoration: none;
 transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}

.home-voice__more span:last-child {
 position: absolute;
 right: 32px;
 font-size: 1.25em;
}

.home-voice__more:hover {
 background: var(--color-accent-pink);
 color: var(--color-white);
 box-shadow: 0 10px 24px rgb(245 49 112 / 18%);
}



@media (min-width: 768px) and (max-width: 1199px) {
 .home-voice-slider {
  --voice-card-width: calc(50% - 10px);
 }
}

@media (max-width: 767px) {
 .home-voice {
  padding: 120px 0 140px;
 }

 .home-voice__top-curve,
 .home-voice__curve {
  height: clamp(30px, 6.5189vw, 50px);
 }

 .home-voice__inner {
  width: calc(100% - 32px);
 }

 .home-voice__header {
  margin-bottom: 32px;
 }

 .home-voice__title {
  font-size: var(--font-size-42);
 }

 .home-voice__lead {
  font-size: var(--font-size-16);
  text-align: left;
 }

 .home-voice-slider {
  --voice-gap: 16px;
  --voice-card-width: 100%;
 }

 .home-voice-card {
  border-radius: 20px;
  padding: 22px;
 }

 .home-voice-card__text {
  font-size: var(--font-size-16);
  -webkit-line-clamp: 8;
 }

 .home-voice-slider__controls {
  gap: 18px;
  margin-top: 28px;
 }

 .home-voice-slider__arrow {
  width: 46px;
 }

 .home-voice__actions {
  margin-top: 38px;
 }

 .home-voice__more {
  min-height: 64px;
  padding: 13px 20px;
  border-width: 2px;
  font-size: var(--font-size-16);
 }

 .home-voice__more span:last-child {
  right: 20px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .home-voice-slider__viewport {
  scroll-behavior: auto;
 }

 .home-voice-card__title a,
 .home-voice-slider__arrow,
 .home-voice-slider__pagination button,
 .home-voice-card__more span:first-child,
 .home-voice-card__more span:last-child,
 .home-voice__more {
  transition: none;
 }
}
