/* Shared FAQ component. Contents/details remain accessible without JavaScript. */
:root {
  --faq-pad: clamp(18px, 2vw, 24px); --faq-gap: 10px; --faq-radius: 16px; --faq-question-size: var(--type-body-size); --faq-answer-size: var(--type-body-size); --faq-leading: var(--prose-leading);
  --faq-icon-size: 24px; --faq-icon-stroke: 2px; --faq-icon-line: 14px; --faq-duration: 360ms; --faq-ease: cubic-bezier(.2,.72,.18,1); --faq-reveal-offset: 5px;
}
details.dfvn-faq-item { padding: 0; margin: 0 0 var(--faq-gap); border: 1px solid var(--line); border-radius: var(--faq-radius); background: var(--bg); transition: background var(--faq-duration) var(--faq-ease), border-color var(--faq-duration) var(--faq-ease); }
details.dfvn-faq-item:first-child { padding-top: 0; }
details.dfvn-faq-item[data-faq-open="true"] { background: var(--surface); }
details.dfvn-faq-item > summary { display: flex; justify-content: space-between; align-items: center; gap: var(--faq-pad); padding: var(--faq-pad); list-style: none; cursor: pointer; color: var(--ink); font-size: var(--faq-question-size); font-weight: var(--font-weight); line-height: 1.35; }
details.dfvn-faq-item > summary::-webkit-details-marker { display: none; }
details.dfvn-faq-item > summary .dfvn-faq-mark { position: relative; flex: 0 0 var(--faq-icon-size); width: var(--faq-icon-size); height: var(--faq-icon-size); transform: none; }
.dfvn-faq-mark::before, .dfvn-faq-mark::after { content: ""; position: absolute; top: 50%; left: 50%; width: var(--faq-icon-line); height: var(--faq-icon-stroke); border-radius: var(--pill); background: currentColor; transform: translate(-50%, -50%); }
.dfvn-faq-mark::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform var(--faq-duration) var(--faq-ease), opacity var(--faq-duration) var(--faq-ease); }
[data-faq-open="true"] .dfvn-faq-mark::after { transform: translate(-50%, -50%) rotate(0deg); opacity: 0; }
.dfvn-faq-answer { padding: 0 var(--faq-pad) var(--faq-pad); color: var(--paragraph-ink); font-size: var(--faq-answer-size); line-height: var(--faq-leading); }
.dfvn-faq-answer > :first-child { margin-top: 0; }
.dfvn-faq-answer > :last-child { margin-bottom: 0; }
.dfvn-faq-answer > * + * { margin-top: var(--faq-pad); }
.dfvn-member-faq .dfvn-faq-answer p { margin: 0; color: var(--paragraph-ink); }
@media (prefers-reduced-motion: reduce) {
  details.dfvn-faq-item, .dfvn-faq-mark::after { transition: none; }
}
