.faq {
  padding: clamp(48px, 6vw, 104px) clamp(20px, 5vw, 80px);
  background: radial-gradient(circle at 2% 3%, #e4eccb 0, transparent 19%),
    radial-gradient(circle at 97% 98%, #e7edcf 0, transparent 21%), #fffefa;
  color: #102b20;
}
.faq-inner { max-width: 1120px; margin: auto; }
.faq-label { color: #a87517; text-align: center; letter-spacing: .35em; font-size: 1rem; }
.faq h2 { margin: 8px 0 42px; color: #08120d; text-align: center; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2.4rem, 5vw, 4.6rem); }
.faq details { border-bottom: 1px solid #ba923a; }
.faq details:first-of-type { border-top: 1px solid #ba923a; }
.faq summary { display: flex; align-items: center; gap: 16px; padding: 24px 14px; cursor: pointer; list-style: none; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.1rem, 2vw, 1.55rem); font-weight: 700; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: "Q"; color: #b98316; font-size: 1.55em; line-height: 1; }
.faq summary::after { content: "+"; margin-left: auto; color: #b98316; font-family: sans-serif; font-size: 1.5em; font-weight: 300; }
.faq details[open] summary::after { content: "−"; }
.faq summary:focus-visible, .faq a:focus-visible { outline: 3px solid #b98316; outline-offset: 3px; }
.faq-answer { display: flex; gap: 16px; padding: 0 46px 24px 14px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.8; }
.faq-answer::before { content: "A"; color: #064731; font-size: 1.55em; line-height: 1; }
.faq-answer p { margin: 0; }
.faq a { color: #064731; text-underline-offset: .18em; }
@media (max-width: 700px) {
  .faq { padding: 52px 20px 70px; }
  .faq h2 { margin-bottom: 28px; }
  .faq summary { gap: 12px; padding: 20px 2px; }
  .faq-answer { gap: 12px; padding: 0 12px 22px 2px; }
}
