.faq { max-width: 820px; margin: 84px auto; padding: 0 24px; }
.faq > h2 { margin: 8px 0 24px; font: 40px/1.12 Georgia,serif; letter-spacing: -.03em; }
.resource-inventories { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); align-items: start; gap: 16px; }
.resource-inventory { padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); box-shadow: 0 10px 30px rgba(23,48,56,.05); }
.resource-inventory h3 { margin: 0 0 10px; color: var(--ink); font-size: 18px; line-height: 1.3; }
.resource-inventory ul { display: grid; gap: 0; margin: 0; padding: 0 0 0 18px; }
.resource-inventory li::marker { color: var(--blue); }
.resource-inventory li + li { border-top: 1px solid var(--line); }
.resource-inventory a { display: block; padding: 11px 0; color: var(--blue-dark); font-weight: 760; line-height: 1.45; text-underline-offset: 3px; }
.resource-source-link { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid var(--line); }
.resource-source-link a { display: flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.faq details { border-top: 1px solid var(--line); padding: 18px 0; }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; font-weight: 800; font-size: 17px; }
.faq summary::marker { color: var(--blue); }
.faq details p { color: var(--muted); line-height: 1.65; margin: 12px 0 2px; }

@media (max-width: 640px) {
  .resource-inventories { grid-template-columns: 1fr; }
}
