--font-*/--radius-*/--transition design tokens in assets/css/main.css — no new tokens introduced,same light-green editorial theme (and dark-mode override,which main.css's
   [data-theme="dark"] block already re-points every one of these
   variables to) as the rest of the site.

   Accordion behavior itself is native <details>/<summary> (see
   faq.php) — this file only styles it. assets/js/faq.js (new) adds
   only the search/filter behavior; it never toggles open/closed state
   except to auto-open a match while a search is active (see that
   file's own comment). ========================================================================== */ .faq-search{position:relative;display:flex;align-items:center;max-width:560px;margin:0 0 0.75rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg);transition:border-color var(--transition),box-shadow var(--transition);}.faq-search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-tint);}.faq-search-icon{flex-shrink:0;width:18px;height:18px;margin-left:1rem;color:var(--color-ink-soft);}.faq-search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;padding:0.7rem 1rem 0.7rem 0.6rem;font-size:0.95rem;font-family:var(--font-sans);color:var(--color-ink);}.faq-search-input::placeholder{color:var(--color-ink-soft);}.faq-search-input::-webkit-search-cancel-button{cursor:pointer;}.faq-result-count{min-height:1.2em;margin:0 0 1.25rem;font-size:0.85rem;color:var(--color-ink-soft);}.faq-list{max-width:780px;margin:0 0 1.5rem;}.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);margin-bottom:0.75rem;overflow:hidden;}.faq-item[hidden]{display:none;}.faq-question{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;cursor:pointer;list-style:none;font-family:var(--font-serif);font-size:1.02rem;font-weight:600;color:var(--color-ink);transition:background-color var(--transition);}.faq-question:hover{background:var(--color-accent);}.faq-question:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;}.faq-question::-webkit-details-marker{display:none;}.faq-question::marker{content:"";}.faq-question-text{flex:1;}.faq-question-icon{flex-shrink:0;position:relative;width:18px;height:18px;}.faq-question-icon::before,.faq-question-icon::after{content:"";position:absolute;background:var(--color-primary);border-radius:2px;transition:transform var(--transition);}.faq-question-icon::before{top:50%;left:0;width:100%;height:2px;transform:translateY(-50%);}.faq-question-icon::after{left:50%;top:0;width:2px;height:100%;transform:translateX(-50%);}.faq-item[open] .faq-question-icon::after{transform:translateX(-50%) rotate(90deg) scaleX(0);}.faq-answer{padding:0 1.25rem 1.25rem;}.faq-answer-text{margin:0;color:var(--color-ink-soft);font-size:0.95rem;line-height:1.7;max-width:700px;}.faq-answer-text a,.faq-empty a{color:var(--color-primary);font-weight:600;text-decoration:none;}.faq-answer-text a:hover,.faq-answer-text a:focus-visible,.faq-empty a:hover,.faq-empty a:focus-visible{text-decoration:underline;}.faq-empty{max-width:700px;margin:0 0 1.5rem;padding:1.25rem 1.5rem;border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-ink-soft);font-size:0.95rem;line-height:1.6;}.faq-contact-callout{margin-top:2rem;}@media (max-width:480px){.faq-question{padding:0.85rem 1rem;font-size:0.96rem;}.faq-answer{padding:0 1rem 1rem;}.faq-search-icon{margin-left:0.85rem;}.faq-search-input{padding:0.65rem 0.85rem 0.65rem 0.5rem;}}