/* FAQ library: shared tokens, editorial rows and progressive browsing. */
.faq-page [hidden] { display: none !important; }
.faq-intro {
  display: grid;
  grid-template-columns: minmax(0,1.4fr) minmax(0,1fr);
  gap: var(--space-12);
  padding-block: var(--space-8) var(--section-inset);
}
.faq-intro h1 {
  font-family: var(--font-display);
  font-size: var(--seo-title-size);
  line-height: 1.08;
  letter-spacing: -.05em;
  margin: var(--space-6) 0;
  text-wrap: balance;
}
.faq-search-panel {
  align-self: end;
  padding: var(--panel-inset);
  background: var(--color-surface);
  border: var(--size-1) solid var(--color-line);
}
.faq-total { display: flex; align-items: center; gap: var(--space-4); font-size: var(--seo-title-size); line-height: 1; font-weight: 700; }
.faq-total>span { font-size: var(--text-sm); line-height: 1.5; max-width: 12ch; font-weight: 400; }
.faq-search { margin-top: var(--space-8); }
.faq-search label { display: block; font-size: var(--text-sm); margin-bottom: var(--space-3); }
.faq-search>div { display: flex; gap: var(--space-3); border-bottom: var(--size-1) solid var(--color-ink); }
.faq-search input { min-width: 0; width: 100%; border: 0; background: transparent; font: inherit; font-size: var(--text-base); padding: var(--space-3) 0; color: var(--color-ink); }
.faq-search button { border: 0; background: none; font: inherit; font-size: var(--text-xs); color: var(--color-muted); cursor: pointer; min-height: var(--touch-target); }
.faq-search-panel>p { font-size: var(--text-sm); color: var(--color-muted); line-height: 1.5; margin: var(--space-4) 0 0; }
.faq-library { display: grid; grid-template-columns: var(--faq-sidebar-width) minmax(0,1fr); gap: var(--space-12); padding-bottom: var(--section-inset); }
.faq-sidebar { min-width: 0; align-self: start; position: sticky; top: var(--space-6); }
.faq-sidebar nav { display: grid; }
.faq-topic { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: var(--touch-target); padding: var(--space-3) var(--space-4); font-size: var(--text-sm); text-decoration: none; border-bottom: var(--size-1) solid var(--color-line); }
.faq-topic>span:last-child { color: var(--color-muted); font-variant-numeric: tabular-nums; }
.faq-topic.is-active { background: var(--color-ink); color: var(--color-surface); }
.faq-topic.is-active>span:last-child { color: inherit; }
.faq-services-link { display: inline-flex; align-items: center; min-height: var(--touch-target); margin-top: var(--space-4); font-size: var(--text-sm); }
.faq-results { min-width: 0; scroll-margin-top: var(--space-6); }
.faq-results-bar { border-bottom: var(--size-1) solid var(--color-line); }
.faq-results-bar p { font-size: var(--text-sm); color: var(--color-muted); margin: 0 0 var(--space-4); }
.faq-group { scroll-margin-top: var(--space-6); }
.faq-group>h2 { font-size: var(--text-lg); margin: var(--space-8) 0 var(--space-4); letter-spacing: -.025em; }
.faq-page .faq-answer { scroll-margin-top: var(--space-6); }
.faq-page .faq-answer summary { grid-template-columns: minmax(0,1fr) auto; gap: var(--space-6); padding: var(--space-5) var(--space-4); min-height: var(--touch-target); }
.faq-page .faq-answer summary h3 { font-size: var(--text-base); font-weight: 600; line-height: 1.4; margin: 0; }
.faq-answer-body { padding: 0 var(--space-4) var(--space-6); }
.faq-answer-body>p { font-size: var(--text-base); line-height: 1.65; max-width: var(--seo-reading-width); margin: 0; }
.faq-answer-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3) var(--space-6); margin-top: var(--space-4); }
.faq-answer-links nav { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); }
.faq-answer-links a { display: inline-flex; align-items: center; min-height: var(--touch-target); font-size: var(--text-sm); text-underline-offset: .2em; }
.faq-permalink { color: var(--color-muted); }
.faq-answer:target { background: var(--color-surface); }
.faq-more { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-8); }
.faq-more span { font-size: var(--text-sm); color: var(--color-muted); }
.faq-empty { padding-block: var(--space-12); }
.faq-empty h2 { font-size: var(--text-lg); }
.faq-empty p { font-size: var(--text-base); line-height: 1.5; }
.faq-help { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); }
.faq-help h2 { margin-top: var(--space-4); }
.faq-help p { margin-bottom: 0; }
.faq-help .button { flex-shrink: 0; }
@media(max-width:1000px) {
  .faq-intro { grid-template-columns: 1fr 1fr; gap: var(--layout-gap); }
  .faq-library { gap: var(--layout-gap); }
}
@media(max-width:700px) {
  .faq-intro { grid-template-columns: 1fr; gap: var(--space-6); }
  .faq-intro h1 { font-size: var(--text-mobile-heading); line-height: 1.12; }
  .faq-intro .seo-lead { font-size: var(--text-mobile-body); }
  .faq-total { font-size: var(--seo-section-title-size); }
  .faq-library { grid-template-columns: 1fr; gap: var(--space-8); }
  .faq-sidebar { position: static; }
  .faq-sidebar nav { display: flex; overflow-x: auto; gap: var(--space-2); padding-bottom: var(--space-2); scroll-snap-type: x proximity; }
  .faq-topic { flex: 0 0 auto; white-space: nowrap; border: var(--size-1) solid var(--color-line); scroll-snap-align: start; }
  .faq-services-link { margin-top: var(--space-2); }
  .faq-page .faq-answer summary { padding-inline: 0; gap: var(--space-4); }
  .faq-answer-body { padding-inline: 0; }
  .faq-help { flex-direction: column; align-items: start; }
}
