.faq-hub-page {
  --faq-navy: #003870;
  --faq-blue: #117FC3;
  --faq-accent: #CCDB2F;
  --faq-line: #DDE3E8;
}

.faq-hub-page .faq-hero h1 {
  max-width: 1100px !important;
  font-size: clamp(2.9rem, 5.4vw, 5.15rem) !important;
}

.faq-hero-copy {
  display: grid;
  gap: 5px;
  max-width: 1050px !important;
  margin: 0 !important;
  color: rgba(255,255,255,.84) !important;
  font-size: clamp(1.05rem,1.55vw,1.27rem) !important;
  line-height: 1.55 !important;
}

.faq-hero-copy span { display: block; }
.faq-library-heading { max-width: 980px; margin: 0 auto 42px; text-align: center; }
.faq-library-heading p { max-width: 760px; margin: 0 auto; font-size: 1.08rem; }

.faq-tools { max-width: 1040px; margin: 0 auto 58px; }
.faq-search-label { display: block; margin-bottom: 9px; color: var(--faq-navy); font-size: .82rem; font-weight: 800; }
.faq-search-wrap { position: relative; }
.faq-search-wrap input { width: 100%; height: 58px; padding: 0 58px 0 20px; border: 1px solid #C7D2DA; border-radius: 12px; color: #383939; background: white; font: inherit; font-size: 1rem; outline: none; }
.faq-search-wrap input:focus { border-color: var(--faq-blue); box-shadow: 0 0 0 3px rgba(17,127,195,.14); }
.faq-search-wrap span { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: var(--faq-blue); font-size: 1.5rem; pointer-events: none; }
.faq-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 20px; }
.faq-filter { padding: 9px 15px; border: 1px solid #C8D2DA; border-radius: 999px; color: var(--faq-navy); background: white; font: inherit; font-size: .82rem; font-weight: 750; cursor: pointer; }
.faq-filter:hover,
.faq-filter.active { border-color: var(--faq-navy); color: white; background: var(--faq-navy); }
.faq-result-count { margin-top: 15px; color: #69747D; font-size: .82rem; text-align: center; }

.faq-category { max-width: 1040px; margin: 0 auto 64px; }
.faq-category[hidden] { display: none; }
.faq-category-heading { display: grid; grid-template-columns: 54px 1fr; gap: 20px; align-items: start; margin-bottom: 18px; }
.faq-category-heading > span { padding-top: 8px; color: var(--faq-blue); font-size: .72rem; font-weight: 850; letter-spacing: .13em; }
.faq-category-heading h3 { margin: 0 0 7px !important; font-size: clamp(1.65rem,3vw,2.35rem) !important; }
.faq-category-heading p { margin: 0; }
.faq-accordion { border-top: 1px solid var(--faq-line); }

.faq-entry { padding: 0 !important; border: 0 !important; border-bottom: 1px solid var(--faq-line) !important; border-radius: 0 !important; background: transparent !important; }
.faq-entry[hidden] { display: none; }
.faq-entry summary { position: relative; padding: 22px 54px 22px 0; color: var(--faq-navy); font-size: 1.04rem; font-weight: 750; line-height: 1.45; list-style: none; cursor: pointer; }
.faq-entry summary::-webkit-details-marker { display: none; }
.faq-entry summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid #C8D2DA; border-radius: 50%; color: var(--faq-blue); font-size: 1.2rem; font-weight: 500; }
.faq-entry[open] summary::after { content: "−"; color: white; background: var(--faq-blue); border-color: var(--faq-blue); }
.faq-entry > div { padding: 0 54px 24px 0; }
.faq-entry p { max-width: 900px; margin: 0; color: #53606A !important; line-height: 1.7; }
.faq-entry a { display: inline-block; margin-top: 12px; color: var(--faq-blue); font-size: .88rem; font-weight: 800; text-decoration: none; }
.faq-entry a:hover { text-decoration: underline; }
.faq-empty { max-width: 1040px; margin: 0 auto; padding: 42px; border: 1px dashed #BAC6CF; border-radius: 14px; color: var(--faq-navy); background: white; text-align: center; font-weight: 700; }

.faq-contact-strip { display: flex; justify-content: space-between; align-items: center; gap: 36px; }
.faq-contact-strip h2 { margin: 0 0 10px !important; font-size: clamp(1.8rem,3vw,2.7rem) !important; }
.faq-contact-strip p { max-width: 780px; margin: 0; }
.faq-contact-strip .cta { flex: 0 0 auto; }

@media (max-width: 760px) {
  .faq-hub-page .faq-hero h1 { font-size: clamp(2rem,10vw,3.25rem) !important; }
  .faq-filters { justify-content: flex-start; }
  .faq-category-heading { grid-template-columns: 38px 1fr; gap: 10px; }
  .faq-entry summary { padding-right: 46px; }
  .faq-entry > div { padding-right: 0; }
  .faq-contact-strip { align-items: flex-start; flex-direction: column; }
}
