/* よくある質問とお客様の声。既存と同じ配色・書体、独立したスコープ。 */
.hs-faq, .hs-faq *, .hs-voices, .hs-voices * { box-sizing: border-box; }
.hs-faq, .hs-voices { padding: clamp(65px, 7vw, 100px) 0; color: var(--hs-color-text); font-family: var(--hs-font-sans); scroll-margin-top: 24px; }
.hs-faq { background: #F1E5D3; }
.hs-voices { background: var(--hs-color-base); }
.hs-faq__inner, .hs-voices__inner { width: min(900px, 88%); margin-inline: auto; }
.hs-faq__header, .hs-voices__header { text-align: center; }
.hs-faq__eyebrow, .hs-voices__eyebrow { display: flex; justify-content: center; align-items: center; gap: 18px; margin: 0 0 20px; font-size: 15px; letter-spacing: .16em; }
.hs-faq__eyebrow > span, .hs-voices__eyebrow > span { color: var(--hs-color-accent); }
.hs-faq__title, .hs-voices__title { margin: 0; color: var(--hs-color-main); font-family: var(--hs-font-serif); font-size: clamp(30px, 3vw, 40px); font-weight: 500; line-height: 1.8; letter-spacing: .05em; }
.hs-faq__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px; margin-top: 38px; }
.hs-faq__item { min-width: 0; border: 1px solid #c9a15c88; background: #fffdf9; }
.hs-faq__item summary { position: relative; display: flex; align-items: center; min-height: 142px; padding: 22px 58px 22px 26px; color: var(--hs-color-main); cursor: pointer; font-size: 18px; font-weight: 500; line-height: 1.8; list-style: none; }
.hs-faq__item summary::-webkit-details-marker { display: none; }
.hs-faq__item summary::after { content: "+"; position: absolute; right: 25px; top: 50%; transform: translateY(-50%); color: #987139; font-size: 24px; line-height: 1.35; }
.hs-faq__item[open] summary::after { content: "−"; }
.hs-faq__item summary:hover { background: #faf3e8; }
.hs-faq__item summary:focus-visible { outline: 3px solid var(--hs-color-main); outline-offset: 3px; }
.hs-faq__answer { margin: 0 26px; padding: 20px 0 24px; border-top: 1px solid #c9a15c55; }
.hs-faq__answer p { margin: 0; font-size: 17px; line-height: 2; }
.hs-faq__answer a { color: var(--hs-color-main); text-underline-offset: 4px; }
.hs-faq__answer a:focus-visible { outline: 2px solid var(--hs-color-main); outline-offset: 3px; }
@media (max-width: 760px) {
  .hs-faq__inner, .hs-voices__inner { width: min(88%, 520px); }
  .hs-faq__title, .hs-voices__title { font-size: 30px; }
  .hs-faq__item summary { min-height: 92px; padding: 20px 48px 20px 20px; font-size: 17px; }
  .hs-faq__item summary::after { right: 18px; }
  .hs-faq__answer { margin-inline: 20px; }
}

/* 架空の感想サンプル。各カードでもサンプルであることを明示する。 */
.hs-voices__sample-notice { max-width: 740px; margin: 27px auto 0; padding: 17px 22px; border: 1px solid #c9a15c88; background: #f5ecde; font-size: 16px; line-height: 1.9; }
.hs-voices__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; margin-top: 30px; }
.hs-voices__card { padding: 30px 34px; border: 1px solid #c9a15c88; background: #fffdf9; }
.hs-voices__card .hs-voices__sample-label { margin: 0 0 17px; color: var(--hs-color-main); font-size: 15px; font-weight: 600; line-height: 1.8; }
.hs-voices__card h3 { margin: 0 0 17px; color: var(--hs-color-main); font-family: var(--hs-font-serif); font-size: 25px; font-weight: 500; line-height: 1.8; }
.hs-voices__card p { margin: 0; font-size: 17px; line-height: 2; }
@media (max-width: 760px) {
  .hs-voices__sample-notice { padding: 17px 20px; }
  .hs-voices__card { padding: 25px 22px; }
  .hs-voices__card h3 { font-size: 23px; }
}
@media (max-width: 760px) { .hs-voices__cards { grid-template-columns: minmax(0, 1fr); } }

@media (max-width: 760px) { .hs-faq__list { grid-template-columns: minmax(0, 1fr); } }

/* FAQの幅・高さ・開閉記号を揃える。奇数件の最後は横幅いっぱいに配置。 */
@media (min-width: 761px) {
  .hs-faq__inner { width: min(1120px, 88%); }
  .hs-faq__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
}