.ct-faq-page .page-hero, .ct-faq-page .page-content { width:min(calc(100% - 40px),1100px); }
.ct-faq-page .page-hero { padding-bottom:32px; }
.ct-faq .lede { max-width:820px; margin-top:0; }
.ct-faq-meta { font-size:.86rem; }
.ct-faq [hidden] { display:none !important; }
.ct-faq-search { padding:24px; margin:30px 0 40px; border:1px solid var(--rule); border-radius:18px; background:var(--paper-soft); }
.ct-faq-search label { display:block; margin-bottom:10px; font-weight:750; }
.ct-faq-search-row { display:flex; gap:12px; }
.ct-faq-search input { width:100%; min-width:0; min-height:48px; border:1px solid var(--ink-2); padding:10px 14px; background:var(--paper); color:var(--ink); border-radius:8px; font:inherit; }
.ct-faq-search input:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.ct-faq-search button { flex-shrink:0; min-height:48px; border:1px solid var(--ink); padding:10px 16px; border-radius:8px; background:var(--ink); color:var(--paper); font:700 .9rem var(--sans); cursor:pointer; }
.ct-faq-search [role="status"] { margin:12px 0 0; font-size:.9rem; }
.ct-faq-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:44px; align-items:start; }
.ct-faq-topics { position:sticky; top:24px; border:1px solid var(--rule); border-radius:18px; padding:22px; background:var(--paper-soft); }
.ct-faq .ct-faq-topics h2 { margin:0 0 18px; font:700 1.2rem var(--serif); }
.ct-faq-topics ul { list-style:none; padding:0; margin:0; }
.ct-faq-topics li { margin:0 0 15px; font-size:.9rem; line-height:1.4; }
.ct-faq-topics a { text-decoration:none; color:var(--ink); }
.ct-faq-topics a:hover { text-decoration:underline; }
.ct-faq-guide-link { display:block; border-top:1px solid var(--rule); padding-top:18px; font-size:.85rem; }
.ct-faq-answers { min-width:0; }
.ct-faq-topic { margin-bottom:42px; scroll-margin-top:24px; }
.ct-faq .ct-faq-topic h2 { margin:0 0 18px; font:700 clamp(1.7rem,3vw,2.3rem)/1.1 var(--serif); letter-spacing:-.02em; }
.ct-faq details { border-bottom:1px solid var(--rule); scroll-margin-top:24px; }
.ct-faq details:first-of-type { border-top:1px solid var(--rule); }
.ct-faq details:target { box-shadow:-3px 0 0 var(--accent); padding-left:16px; }
.ct-faq summary { padding:18px 0; font-weight:750; line-height:1.45; cursor:pointer; }
.ct-faq summary:hover { color:var(--accent); }
.ct-faq summary:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.ct-faq-answer { padding:0 0 8px 18px; }
.ct-faq-answer > :first-child { margin-top:0; }
.ct-faq-answer li { margin:10px 0; }
.ct-faq-answer p, .ct-faq-answer li { overflow-wrap:break-word; }
.ct-faq .ct-faq-permalink { margin:16px 0 12px; font-size:.8rem; }
.ct-faq-empty, .ct-faq-contact { border:1px solid var(--rule); background:var(--paper-soft); padding:24px; border-radius:18px; }
.ct-faq .ct-faq-contact h2 { margin:0 0 12px; font:700 1.6rem var(--serif); }
.ct-faq-contact p { margin-bottom:0; }
.ct-faq-back { font-size:.9rem; margin-top:24px; }
.ct-faq-entry { font-size:.95rem; padding:16px 20px; border-left:3px solid var(--accent); background:var(--paper-soft); margin:0 0 28px; }
@media (max-width:860px) {
 .site-nav li.ct-faq-menu { display:list-item; }
 .ct-faq-layout { grid-template-columns:1fr; gap:30px; }
 .ct-faq-topics { position:static; }
 .ct-faq-topics ul { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
}
@media (max-width:560px) {
 .ct-faq-page .page-hero, .ct-faq-page .page-content { width:calc(100% - 28px); }
 .ct-faq-search { padding:18px; }
 .ct-faq-search-row { flex-wrap:wrap; }
 .ct-faq-search button { width:100%; }
 .ct-faq-topics { padding:20px; }
 .ct-faq-topics ul { grid-template-columns:1fr; }
 .ct-faq-answer { padding-left:0; }
}
