.resource-directory {
  background: var(--thf-bg);
  color: var(--thf-text);
  padding: clamp(1.25rem, 4vw, 3rem);
  min-height: 80vh;
}
.resource-directory-inner { max-width: 960px; margin: 0 auto; }
.resource-directory nav { color: var(--thf-text-2); font-size: .9rem; margin-bottom: 2rem; }
.resource-directory h1,
.resource-directory h2,
.resource-directory h3 { color: var(--thf-heading); line-height: 1.25; }
.resource-directory h1 { font-size: clamp(2rem, 5vw, 3rem); margin: 0 0 1rem; }
.resource-directory h2 { font-size: 1.5rem; margin: 2rem 0 1rem; }
.resource-directory h3 { font-size: 1.3rem; margin: 0 0 .75rem; }
.resource-directory p { line-height: 1.7; }
.resource-directory-intro { max-width: 720px; font-size: 1.15rem; }
.resource-directory a { color: var(--thf-link); text-decoration: underline; text-underline-offset: .2em; }
.resource-directory a:focus-visible { outline: 2px solid var(--thf-link); outline-offset: 4px; }
.resource-directory-note { background: var(--thf-surface-2); border: 1px solid var(--thf-border); border-radius: .75rem; padding: 1.25rem; margin-top: 1.5rem; }
.resource-directory-note p { margin: 0; }
.resource-directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.resource-directory-card { display: flex; flex-direction: column; padding: 1.5rem; background: var(--thf-surface); border: 1px solid var(--thf-border); border-radius: .75rem; }
.resource-directory-card p { margin: 0 0 1.25rem; }
.resource-directory-card a { margin-top: auto; align-self: flex-start; }
.resource-directory-return { margin-top: 2rem; }
@media (max-width: 600px) {
  .resource-directory-grid { grid-template-columns: 1fr; }
}
