/* A reading surface built from the shared brand and disclosure components. */
.page--faq .faq-hero { padding-bottom:clamp(2rem,4vw,4rem); }
.page--faq .faq-hero h1 { margin-bottom:0; }
.page--faq .faq-hero .page-hero__aside { max-width:31rem; }
.faq-library { padding:0 0 var(--space-section); }
.faq-tools { margin-bottom:clamp(2rem,4vw,3.5rem); padding:var(--space-card); border:1px solid var(--brand-line); border-radius:var(--radius-lg); background:var(--brand-card); box-shadow:var(--shadow-card); }
.faq-search { max-width:44rem; }
.faq-search label { display:block; margin-bottom:.75rem; font-size:1rem; font-weight:600; color:var(--brand-ink); }
.faq-search__field { display:flex; align-items:center; gap:.75rem; min-height:3.5rem; padding:.25rem 1rem; border:1px solid #99a8cf; border-radius:var(--radius-sm); background:#fffefa; color:var(--brand-blue); }
.faq-search__field:focus-within { border-color:var(--brand-blue); outline:2px solid var(--brand-blue); outline-offset:3px; }
.faq-search__field svg { flex:0 0 22px; fill:none; stroke:currentColor; stroke-width:1.7; }
.faq-search input { width:100%; min-width:0; min-height:3rem; padding:.4rem 0; border:0; background:transparent; color:var(--brand-ink); font:inherit; font-size:1rem; }
.faq-search input:focus-visible { outline:none; }
.faq-search input::placeholder { color:var(--brand-muted); opacity:1; }
.faq-filters,.faq-topics { display:flex; flex-wrap:wrap; gap:.6rem; }
.faq-filters { margin-top:1.5rem; }
.faq-filters button,.faq-topics a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.6rem 1rem; border:1px solid var(--brand-line); border-radius:var(--radius-pill); background:#fffefa; color:var(--brand-muted); font-size:.9375rem; line-height:1.4; transition:background var(--motion-ui),border-color var(--motion-ui),color var(--motion-ui); }
.faq-filters button:hover,.faq-topics a:hover { background:var(--brand-soft); color:var(--brand-blue); border-color:var(--brand-blue); }
.faq-filters button[aria-pressed="true"] { background:var(--brand-ink); border-color:var(--brand-ink); color:#fff; }
.faq-topics { margin-bottom:3rem; }
.faq-tools__status { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.5rem 1rem; min-height:44px; margin-top:.75rem; }
.faq-tools__status p { margin:0; color:var(--brand-muted); font-size:.875rem; }
.faq-reset { min-height:44px; border:0; background:none; color:var(--brand-blue); padding:.5rem 0; font-size:.875rem; text-decoration:underline; text-underline-offset:.25em; }
.faq-group { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); align-items:start; gap:clamp(2rem,5vw,5rem); margin-top:clamp(2.5rem,5vw,4rem); }
.faq-group:first-child { margin-top:0; }
.faq-group__intro { padding-top:1rem; }
.faq-group__intro h2 { margin:0 0 .75rem; color:var(--brand-ink); font-family:var(--font-sans); font-size:clamp(1.6rem,2.5vw,2.25rem); font-weight:600; line-height:1.2; letter-spacing:-.035em; }
.faq-group__intro p { max-width:26ch; margin:0; color:var(--brand-muted); font-size:1rem; line-height:1.65; }
.page--faq :is(.faq-group,.tfa-faq__item) { scroll-margin-top:calc(var(--header-height) + 1.5rem); }
.page--faq .tfa-faq__answer a { color:var(--brand-blue); text-decoration:underline; text-underline-offset:.2em; overflow-wrap:anywhere; }
.page--faq .faq-permalink { display:inline-flex; align-items:center; min-height:44px; margin-top:.75rem; font-size:.875rem; }
.page--faq .tfa-faq__item:target { outline:2px solid var(--brand-blue); outline-offset:4px; border-radius:var(--radius-md); }
.page--faq .tfa-faq__item:nth-child(1 of :not([hidden])),
.page--faq .tfa-faq__item:nth-child(1 of :not([hidden])) > summary { border-top-left-radius:var(--radius-lg); border-top-right-radius:var(--radius-lg); }
.page--faq .tfa-faq__item:nth-last-child(1 of :not([hidden])) { border-bottom:0; border-bottom-left-radius:var(--radius-lg); border-bottom-right-radius:var(--radius-lg); }
.page--faq .tfa-faq__item:nth-last-child(1 of :not([hidden])):not([open]) > summary { border-bottom-left-radius:var(--radius-lg); border-bottom-right-radius:var(--radius-lg); }
.faq-empty { padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--brand-line); border-radius:var(--radius-lg); background:var(--brand-soft); text-align:center; }
.faq-empty h2 { font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.2; }
.faq-empty p { max-width:50ch; margin:0 auto 1.5rem; color:var(--brand-muted); font-size:1rem; line-height:1.65; }
.faq-empty > div { display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; }
@media (max-width:900px) {
  .faq-group { grid-template-columns:1fr; gap:1.25rem; }
  .faq-group__intro { padding:0; }
  .faq-group__intro p { max-width:none; }
}
@media (max-width:700px) {
  .page--faq .faq-hero h1 { margin-bottom:.25rem; }
  .faq-tools { padding:1.25rem; }
  .faq-search__field { padding-inline:.75rem; gap:.5rem; }
  .faq-filters { gap:.5rem; }
  .faq-filters button { font-size:.875rem; padding-inline:.8rem; }
  .page--faq .tfa-faq__item > summary { min-height:5rem; gap:.75rem; padding:1rem 1.25rem; }
}
@media (prefers-reduced-motion:reduce) {
  .faq-filters button,.faq-topics a { transition:none; }
}
@media (forced-colors:active) {
  .faq-filters button[aria-pressed="true"] { border:2px solid Highlight; color:Highlight; }
  .faq-search__field,.faq-tools,.faq-empty { border-color:CanvasText; }
}
