#faq { position:relative; }
#faq h2::before { content:""; display:block; width:48px; height:3px; margin-bottom:20px; border-radius:4px; background:linear-gradient(90deg,#2563eb,#60a5fa); }
#faq .faq-item { padding:0; overflow:hidden; border-radius:16px; transition:border-color .3s ease,background-color .3s ease,box-shadow .3s ease; }
#faq .faq-item:hover { border-color:rgba(96,165,250,.4); }
#faq .faq-item.is-expanded { border-color:rgba(59,130,246,.55); box-shadow:0 8px 32px rgba(37,99,235,.08); }
#faq summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; list-style:none; line-height:1.5; -webkit-tap-highlight-color:transparent; }
#faq summary::-webkit-details-marker { display:none; }
#faq summary::marker { content:""; }
#faq summary:focus-visible { outline:2px solid #60a5fa; outline-offset:-5px; border-radius:14px; }
#faq .faq-icon { position:relative; flex:0 0 30px; width:30px; height:30px; border-radius:50%; background:rgba(59,130,246,.09); border:1px solid rgba(59,130,246,.18); color:#60a5fa; transition:transform .42s cubic-bezier(.22,1,.36,1),background-color .3s ease; }
#faq .faq-icon::before, #faq .faq-icon::after { content:""; position:absolute; left:8px; top:13px; width:12px; height:2px; border-radius:2px; background:currentColor; transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .3s ease; }
#faq .faq-icon::after { transform:rotate(90deg); }
#faq .is-expanded .faq-icon, #faq details[open]:not(.faq-animated) .faq-icon { transform:rotate(180deg); background:rgba(59,130,246,.17); }
#faq .is-expanded .faq-icon::after, #faq details[open]:not(.faq-animated) .faq-icon::after { transform:rotate(0); opacity:0; }
#faq .faq-answer-inner { padding:0 24px 24px; }
#faq .faq-answer p { margin:0; max-width:100%; line-height:1.85; }
#faq.faq-enhanced .faq-answer-inner { opacity:0; transform:translateY(-6px); transition:opacity .28s ease,transform .42s cubic-bezier(.22,1,.36,1); }
#faq.faq-enhanced .is-expanded .faq-answer-inner { opacity:1; transform:translateY(0); transition-delay:.06s; }
#faq.faq-enhanced .faq-reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease,transform .7s cubic-bezier(.22,1,.36,1); transition-delay:var(--faq-delay,0ms); }
#faq.faq-enhanced .faq-reveal.is-revealed { opacity:1; transform:translateY(0); }
html.light #faq .faq-icon { color:#2563eb; }
@media (max-width:640px) { #faq summary { padding:18px; gap:14px; font-size:14px; } #faq .faq-answer-inner { padding:0 18px 20px; } #faq .faq-icon { flex-basis:28px; width:28px; height:28px; } #faq .faq-icon::before,#faq .faq-icon::after { left:7px; top:12px; } }
@media (prefers-reduced-motion:reduce) { #faq *,#faq *::before,#faq *::after { transition:none !important; animation:none !important; } #faq.faq-enhanced .faq-reveal, #faq.faq-enhanced .faq-answer-inner { opacity:1; transform:none; } }
