/* FAQ navigation and local filtering. Existing answer content is unchanged. */
[data-faq-page] .reveal { opacity: 1; transform: none; }
.faq-browser { max-width: 1080px; }
.faq-browser [hidden] { display: none !important; }
.faq-find { padding: clamp(22px, 4vw, 36px); margin-bottom: 42px; border: 1px solid #e1e5eb; border-radius: 24px; background: #fff; }
.faq-find > h2 { margin: 0 0 22px; font-size: clamp(1.45rem, 2.7vw, 1.9rem); }
.faq-search { margin: 0 0 24px; }
.faq-search label { display: block; margin-bottom: 9px; color: #0B1B33; font-size: .95rem; font-weight: 600; }
.faq-search-row { display: flex; align-items: stretch; gap: 12px; }
.faq-search input { width: 100%; min-width: 0; min-height: 48px; padding: 13px 16px; border: 1px solid #b8c1cd; border-radius: 12px; background: #fff; color: #0B1B33; font: inherit; font-size: 16px; }
.faq-search input::placeholder { color: #59687b; opacity: 1; }
.faq-search button { flex: 0 0 auto; min-height: 48px; padding: 12px 22px; border: 1px solid #0B1B33; border-radius: 999px; background: #0B1B33; color: #fff; font: inherit; font-size: .95rem; font-weight: 600; cursor: pointer; }
.faq-search button:hover { background: #233a59; }
.faq-search-status { margin: 12px 0 0; color: #59687b; font-size: .9rem; }
.faq-categories > p { margin: 0 0 10px; color: #0B1B33; font-size: .95rem; font-weight: 600; }
.faq-categories ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px 20px; list-style: none; margin: 0; padding: 0; }
.faq-categories li { margin: 0; padding: 0; }
.faq-categories a { display: flex; align-items: center; min-height: 44px; width: fit-content; max-width: 100%; color: #0B1B33; font-size: .92rem; line-height: 1.45; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: #AE8B4E; border: 0; }
.faq-categories a:hover { color: #79633D; }
.faq-category + .faq-category { margin-top: 48px; }
.faq-category > h2 { scroll-margin-top: 125px; margin: 0 0 12px; font-size: clamp(1.4rem, 2.8vw, 1.9rem); }
.faq-browser details.faq-item { padding: 13px 0; }
.faq-browser details.faq-item summary { min-height: 48px; }
.faq-browser details.faq-item summary h3 { margin: 0; font: inherit; font-weight: 500; line-height: 1.45; color: inherit; letter-spacing: inherit; }
.faq-browser details.faq-item p { max-width: 82ch; line-height: 1.75; }
.faq-no-results { padding: 24px; border: 1px solid #e1e5eb; border-radius: 18px; background: #fff; color: #0B1B33; }
.faq-no-results h2 { margin: 0 0 8px; font-size: 1.4rem; }
.faq-no-results p { margin: 0; }
.faq-search :focus-visible, .faq-categories a:focus-visible, .faq-browser summary:focus-visible { outline: 3px solid #927345; outline-offset: 4px; }
.faq-category > h2:focus { outline: none; }
.faq-category > h2:focus-visible { outline: 3px solid #927345; outline-offset: 6px; }
@media (max-width: 720px) {
  .faq-categories ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 20px; }
  .faq-search-row { gap: 8px; }
  .faq-search button { padding: 12px 16px; }
  .faq-category > h2 { scroll-margin-top: 100px; }
}
@media (max-width: 420px) {
  .faq-find { padding: 20px; }
  .faq-categories ul { grid-template-columns: 1fr; gap: 0; }
  .faq-search-row { flex-wrap: wrap; }
  .faq-search input { flex-basis: 100%; }
  .faq-search button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .faq-browser details.faq-item summary::after { transition: none; }
}
@media (forced-colors: active) {
  .faq-search :focus-visible, .faq-categories a:focus-visible, .faq-browser summary:focus-visible, .faq-category > h2:focus-visible { outline-color: Highlight; }
  .faq-search button { border: 1px solid ButtonText; }
}
