.ys-faq { box-sizing: border-box; width: calc(100% - 40px); max-width: 800px; margin: 80px auto; color: #2a3833; }
.ys-faq h2 { margin: 0 0 28px; font-family: inherit; font-size: clamp(2.8rem, 3vw, 3.6rem); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; text-align: center; }
.ys-faq__items { border-top: 1px solid #e2e9e6; }
.ys-faq details { border-bottom: 1px solid #e2e9e6; }
.ys-faq summary { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding: 20px 0; color: #303a36; font: inherit; font-size: 1.6rem; font-weight: 600; line-height: 1.4; cursor: pointer; list-style: none; }
.ys-faq summary::-webkit-details-marker { display: none; }
.ys-faq summary::after { content: '+'; flex: none; color: #56b490; font-size: 24px; font-weight: 400; line-height: 1; }
.ys-faq details[open] summary::after { content: '−'; }
.ys-faq summary:focus-visible { outline: 2px solid #56b490; outline-offset: 4px; border-radius: 2px; }
.ys-faq details p { margin: 0 0 22px; padding-right: 32px; color: #625d67; font-size: 1.5rem; line-height: 1.65; overflow-wrap: anywhere; }
@media(max-width:749px) { .ys-faq { width: calc(100% - 36px); margin-block: 56px; } .ys-faq h2 { margin-bottom: 22px; } .ys-faq summary { gap: 16px; padding-block: 18px; } .ys-faq details p { padding-right: 24px; } }
