/* ==========================================================================
   FAQs — Help centre (searchable accordions, sticky category nav)
   Uses shared tokens from main.css. No hard-coded palette values.
   ========================================================================== */

/* ---- Hero ---------------------------------------------------------------- */
.faq-hero { text-align: center; }
.faq-hero .breadcrumb { justify-content: center; }
.faq-hero h1 { max-width: 20ch; margin-inline: auto; }
.faq-hero .lead { margin-inline: auto; }

/* Search field (pill) */
.faq-search {
  position: relative;
  max-width: 640px;
  margin: var(--sp-8) auto 0;
}
.faq-search .fs-ico {
  position: absolute;
  left: 22px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: var(--text-3);
  pointer-events: none;
  transition: color var(--t-fast) var(--ease-out);
}
.faq-search .input {
  height: 60px;
  padding-left: 54px;
  padding-right: 20px;
  border-radius: var(--r-pill);
  background: var(--glass);
  font-size: 1rem;
}
.faq-search .input:focus { background: var(--bg-inset); }
.faq-search:focus-within .fs-ico { color: var(--emerald-bright); }

/* Hero micro-stats */
.faq-hero-stats {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--sp-10);
  margin-top: var(--sp-10);
  padding-top: var(--sp-6);
  border-top: 1px solid var(--line);
  max-width: 620px;
  margin-inline: auto;
}
.fhs { display: flex; flex-direction: column; gap: 2px; }
.fhs b {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.55rem;
  color: var(--text-0);
  letter-spacing: -0.02em;
}
.fhs small { color: var(--text-3); font-size: 0.78rem; }

/* ---- Sticky category nav ------------------------------------------------- */
.faq-catnav {
  position: sticky;
  top: var(--nav-h);
  z-index: var(--z-sticky);
  padding: var(--sp-4) 0;
  background: color-mix(in srgb, var(--bg-0) 82%, transparent);
  -webkit-backdrop-filter: blur(var(--blur));
  backdrop-filter: blur(var(--blur));
  border-top: 1px solid var(--line-faint);
  border-bottom: 1px solid var(--line);
}
.faq-catnav-inner {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--sp-3);
}
.faq-catnav .chip { font-family: var(--font-body); }
.faq-catnav .chip .cn-num {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--text-3);
  transition: color var(--t-fast) var(--ease-out);
}
.faq-catnav .chip:hover .cn-num { color: var(--emerald-bright); }

/* ---- FAQ body ------------------------------------------------------------ */
.faq-body { padding-top: var(--sp-16); }
.faq-cat {
  max-width: 900px;
  margin: 0 auto var(--sp-20);
  scroll-margin-top: calc(var(--nav-h) + 96px);
}
.faq-cat:last-of-type { margin-bottom: var(--sp-8); }

.faq-cat-head {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  margin-bottom: var(--sp-8);
}
.faq-cat-index {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text-3);
  letter-spacing: 0.14em;
}
.faq-cat-head .icon-chip { flex: none; }
.faq-cat-meta { display: flex; flex-direction: column; gap: 4px; }
.faq-cat-meta h2 {
  font-size: var(--fs-h3);
  margin: 0;
  transition: color var(--t-med) var(--ease-out);
}
.faq-count {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  color: var(--text-3);
  letter-spacing: 0.02em;
}
.faq-cat:target .faq-cat-meta h2 { color: var(--emerald-bright); }

/* Slightly softer summary line-height for long questions */
.faq-cat .acc-item summary { line-height: 1.4; }
.faq-cat .acc-body p { margin: 0 0 12px; }
.faq-cat .acc-body p:last-child { margin-bottom: 0; }
.faq-cat .acc-body strong { color: var(--text-1); font-weight: 600; }
.faq-cat .acc-body a {
  color: var(--emerald-bright);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Visually-hidden search keywords (boost matches without visual clutter) */
.faq-kw {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Hide categories whose questions are all filtered out; show empty-state */
.faq-cat:not(:has(.acc-item:not([style*="display: none"]))) { display: none; }
.faq-noresult {
  display: none;
  max-width: 520px;
  margin: 0 auto;
  padding: var(--sp-16) var(--sp-4);
  text-align: center;
}
#faq-list:not(:has(.acc-item:not([style*="display: none"]))) + .faq-noresult { display: block; }
.faq-noresult .icon-chip { margin: 0 auto var(--sp-5); }
.faq-noresult h3 { margin-bottom: var(--sp-3); }
.faq-noresult p { color: var(--text-2); }

/* ---- "Still have questions?" CTA ---------------------------------------- */
.faq-help { padding-bottom: var(--sp-24); }
.faq-help-card {
  position: relative;
  overflow: hidden;
  padding: clamp(32px, 5vw, 64px);
  border-radius: var(--r-xl);
  text-align: center;
  border: 1px solid var(--glass-border);
  background:
    radial-gradient(70% 120% at 0% 0%, rgba(16, 185, 129, 0.12), transparent 60%),
    radial-gradient(70% 120% at 100% 100%, rgba(59, 130, 246, 0.12), transparent 60%),
    linear-gradient(180deg, var(--glass-2), var(--glass));
}
.faq-help-card h2 { margin-top: var(--sp-4); }
.faq-help-card .lead { max-width: 540px; margin: var(--sp-4) auto 0; }

.faq-help-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin-top: var(--sp-10);
  text-align: left;
  position: relative;
}
.help-tile {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding: var(--sp-6);
  border-radius: var(--r-lg);
  background: var(--bg-2);
  border: 1px solid var(--line);
  transition: transform var(--t-med) var(--ease-out),
    border-color var(--t-fast) var(--ease-out),
    box-shadow var(--t-med) var(--ease-out);
}
.help-tile:hover {
  transform: translateY(-4px);
  border-color: var(--glass-hi);
  box-shadow: var(--shadow-md);
}
.help-tile h3 { font-size: var(--fs-h4); }
.help-tile p { color: var(--text-2); font-size: var(--fs-sm); flex: 1; }
.help-tile .link-arrow { margin-top: auto; }
.help-tile .ht-meta {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  color: var(--text-3);
}

/* ---- Responsive ---------------------------------------------------------- */
@media (max-width: 760px) {
  .faq-help-grid { grid-template-columns: 1fr; }
  .faq-hero-stats { gap: var(--sp-6); }
}
@media (max-width: 560px) {
  .faq-catnav { padding: var(--sp-3) 0; }
  .faq-catnav-inner { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding: 0 var(--sp-1) 4px; }
  .faq-catnav .chip { flex: none; }
  .faq-cat-head { gap: var(--sp-3); }
  .fhs b { font-size: 1.3rem; }
}
