.faq { padding: 0 0 120px; }
.faq__list { margin-top: 48px; border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__q { font-size: inherit; font-weight: inherit; }
.faq__q button { position: relative; display: flex; align-items: flex-start; width: 100%; padding: 26px 56px 26px 4px; text-align: left; }
.faq__q button::before { content: "Q"; flex-shrink: 0; width: 34px; font-family: var(--en); font-size: 22px; font-weight: 700; line-height: 1.45; color: var(--accent); }
.faq__q span { font-size: 17px; font-weight: 700; letter-spacing: .05em; line-height: 1.9; }
.faq__q button::after { content: ""; position: absolute; top: 50%; right: 8px; width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(var(--accent), var(--accent)) center / 12px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) center / 2px 12px no-repeat, var(--panel); transform: translateY(-50%); transition: transform .35s var(--ease); }
.faq__item.is-open .faq__q button::after { background: linear-gradient(var(--accent), var(--accent)) center / 12px 2px no-repeat, var(--panel); transform: translateY(-50%) rotate(180deg); }
.faq__a { height: 0; overflow: hidden; visibility: hidden; transition: height .35s var(--ease), visibility .35s; }
.faq__item.is-open .faq__a { visibility: visible; }
.faq__a p { position: relative; padding: 0 56px 28px 38px; font-size: 16px; line-height: 2; }
.faq__a p::before { content: "A"; position: absolute; top: 0; left: 5px; font-family: var(--en); font-size: 22px; font-weight: 700; line-height: 1.45; color: var(--accent-soft); }

@media (max-width: 767px) {
  .faq { padding-bottom: 80px; }
  .faq__list { margin-top: 36px; }
  .faq__q button { padding: 22px 44px 22px 0; }
  .faq__q button::after { right: 0; }
  .faq__q span { font-size: 16px; }
  .faq__a p { padding: 0 8px 24px 34px; }
  .faq__a p::before { left: 1px; }
}
