/* Shared beveled discovery shell for category hubs. */
.directory-page .category-directory[hidden],
.directory-page .category-directory [hidden],
.directory-page .cat-tools__grid [hidden],
.directory-page .cat-section-label[hidden] { display: none !important; }
.directory-page .category-directory {
  --category-directory-surface: #fff;
  --category-directory-accent: var(--color-info);
  --category-directory-soft: var(--color-info-light);
  display: flow-root;
  position: relative;
  z-index: 1;
  width: min(100%, 960px);
  margin: 28px auto var(--space-5);
  padding: 0;
  border: 0;
  border-radius: 0 24px 24px 24px;
  background: var(--category-directory-surface);
  box-shadow: 0 18px 40px -30px rgba(57, 100, 185, .3), 0 0 0 1px var(--color-border);
}
.directory-page--seo .category-directory { --category-directory-accent: var(--seo-accent); --category-directory-soft: var(--seo-soft); }
.directory-page--developer .category-directory { --category-directory-accent: var(--developer-accent); --category-directory-soft: var(--developer-soft); }
.directory-page--audio .category-directory { --category-directory-accent: var(--audio-accent); --category-directory-soft: var(--audio-soft); }
.directory-page--social .category-directory { --category-directory-accent: var(--social-accent); --category-directory-soft: var(--social-soft); }
.category-directory__heading { position: relative; display: flex; align-items: center; gap: 14px; width: fit-content; max-width: calc(100% - 64px); margin-top: -40px; padding: 18px 46px 12px 24px; border-radius: 24px 30px 0 0; background: var(--category-directory-surface); }
.category-directory__heading::after { content: ''; position: absolute; z-index: -1; right: -33px; bottom: 0; width: 55px; height: 100%; border-radius: 0 20px 0 0; background: var(--category-directory-surface); transform: skewX(28deg); pointer-events: none; }
.category-directory__heading-icon { display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px; border-radius: 14px; color: var(--color-info); background: var(--color-info-light); }
.category-directory__heading-icon svg { width: 25px; height: 25px; }
.category-directory__heading-copy { min-width: 0; }
.category-directory__heading h2 { margin: 0; color: var(--color-text); font-size: var(--text-xl); font-weight: 750; line-height: 1.3; letter-spacing: -.025em; }
.category-directory__heading p { margin: 4px 0 0; color: var(--color-text-secondary); font-size: var(--text-sm); line-height: 1.4; }
.category-directory__body { padding: 8px var(--space-5) var(--space-5); }
.category-directory__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.category-directory__search-row { display: flex; align-items: flex-end; gap: var(--space-4); }
.category-directory__search { flex: 1; max-width: none; min-width: 0; }
.category-directory__input-wrap { position: relative; }
.category-directory__input-wrap svg { position: absolute; top: 50%; left: var(--space-3); width: 1.2rem; height: 1.2rem; transform: translateY(-50%); color: var(--color-text-secondary); pointer-events: none; }
.category-directory__input-wrap input { width: 100%; min-height: 46px; padding: var(--space-3) var(--space-4) var(--space-3) var(--space-10); font-family: var(--font-body); font-size: var(--text-base); color: var(--color-text); background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.category-directory__summary { display: grid; gap: 2px; flex: 0 0 auto; margin: 0 0 var(--space-1) auto; text-align: right; }
.category-directory__summary strong { color: var(--color-text); font-size: var(--text-sm); font-weight: 700; }
.category-directory__summary span { color: var(--color-text-secondary); font-size: var(--text-xs); }
.category-directory__filters { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
.category-directory__filters button, .category-directory__empty button { min-height: 42px; padding: var(--space-2) var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg); color: var(--color-text-secondary); font: inherit; font-size: var(--text-sm); cursor: pointer; }
.category-directory__filters button { transition: background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base); }
.category-directory__filters button span { margin-inline-start: var(--space-2); font-size: var(--text-xs); opacity: .8; }
.category-directory__filters button[aria-pressed="true"] { border-color: var(--category-directory-accent); color: var(--category-directory-accent); background: var(--category-directory-soft); font-weight: 650; }
.category-directory__filters button:focus-visible { border-color: var(--category-directory-accent); color: var(--category-directory-accent); background: var(--category-directory-soft); }
@media (hover: hover) and (pointer: fine) {
  .category-directory__filters button:hover {
    border-color: var(--category-directory-accent);
    color: var(--category-directory-accent);
    background: var(--category-directory-soft);
    box-shadow: 0 6px 14px -8px color-mix(in srgb, var(--category-directory-accent) 45%, transparent);
    transform: translateY(-2px);
  }
  .category-directory__filters button:active { transform: translateY(0); box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
  .category-directory__filters button { transition: none; }
  .category-directory__filters button:hover { transform: none; }
}
.category-directory__empty { margin-top: var(--space-4); color: var(--color-text-secondary); }
.category-directory__empty p { margin: 0 0 var(--space-3); }
.category-directory :is(button, input):focus-visible { outline: 3px solid var(--category-directory-accent); outline-offset: 3px; }
[data-theme="dark"] .directory-page .category-directory { --category-directory-surface: var(--color-bg-elevated); }
@media (min-width: 769px) {
  .category-directory__body { padding-block: 4px var(--space-4); }
  .category-directory__filters { gap: 6px; margin-top: var(--space-3); }
  .category-directory__filters button { min-height: 38px; padding: 7px 9px; font-size: .8125rem; }
  .category-directory__filters button span { margin-inline-start: 4px; }
}
@media (max-width: 768px) {
  .directory-page .category-directory { margin-top: 24px; border-radius: 0 18px 18px 18px; }
  /* Match Home's rounded skew while reserving room for longer category copy. */
  .category-directory__heading { max-width: calc(100% - 72px); margin-top: -28px; padding: 16px 18px 12px; gap: 10px; border-radius: 18px 24px 0 0; }
  .category-directory__heading::after { right: -24px; width: 40px; border-radius: 0 20px 0 0; clip-path: none; transform: skewX(28deg); }
  .category-directory__heading-icon { flex-basis: 36px; width: 36px; height: 36px; border-radius: 11px; }
  .category-directory__heading-icon svg { width: 21px; height: 21px; }
  .category-directory__heading h2 { font-size: clamp(1.05rem, 4.4vw, 1.35rem); }
  .category-directory__heading p { font-size: .72rem; }
  .category-directory__body { padding: 6px var(--space-4) var(--space-4); }
  .category-directory__search-row { align-items: stretch; flex-direction: column; gap: var(--space-2); }
  .category-directory__summary { margin: 0; text-align: left; }
  .category-directory__filters { flex-wrap: nowrap; overflow-x: auto; padding: var(--space-1) var(--space-1) var(--space-2); }
  .category-directory__filters button { flex: 0 0 auto; white-space: nowrap; }
}
