/* Image hub: shared directory shell, compact editorial cards and local filters. */
.directory-page--image {
  --image-accent: #be185d;
  --image-soft: #fdf2f8;
  --image-surface: #fff;
}
/* FAQ follows the editorial blue; category discovery controls keep their accent. */
.directory-page--image .faq-section--category {
  --cat-hsl-override: var(--color-info);
  --faq-gradient: linear-gradient(135deg, var(--color-info), var(--color-info));
  --color-primary: var(--color-info);
}
.directory-page--image .faq-section__heading-accent {
  color: var(--cat-hsl-override);
  background: none;
  -webkit-text-fill-color: currentColor;
}
.directory-page--image .faq-contact-btn:hover {
  color: var(--cat-hsl-override);
  border-color: color-mix(in srgb, var(--cat-hsl-override) 30%, var(--color-border));
  box-shadow: 0 6px 16px color-mix(in srgb, var(--cat-hsl-override) 13%, transparent);
}
.directory-page--image .faq-contact-btn:active {
  box-shadow: 0 2px 7px color-mix(in srgb, var(--cat-hsl-override) 10%, transparent);
}
.directory-page--image .faq-support-cta {
  background: var(--image-surface);
  border-color: color-mix(in srgb, var(--cat-hsl-override) 20%, var(--color-border));
}
[data-theme="dark"] .directory-page--image .faq-section--category {
  --cat-hsl-override: #93c5fd;
}
.directory-page--image [hidden] { display: none !important; }
.directory-page--image .image-directory {
  display: flow-root;
  position: relative;
  z-index: 1;
  margin-top: 44px;
  margin-bottom: var(--space-5);
  border-radius: 0 24px 24px 24px;
  background: var(--image-surface);
  box-shadow: 0 18px 40px -30px rgba(57, 100, 185, .3), 0 0 0 1px var(--color-border);
}
.image-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(--image-surface); }
.image-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(--image-surface); transform: skewX(28deg); pointer-events: none; }
.image-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); }
.image-directory__heading-icon svg { width: 25px; height: 25px; }
.image-directory__heading-copy { min-width: 0; }
.image-directory__heading h2 { margin: 0; color: var(--color-text); font-size: var(--text-xl); font-weight: 750; line-height: 1.3; letter-spacing: -.025em; }
.image-directory__heading p { margin: 4px 0 0; color: var(--color-text-secondary); font-size: var(--text-sm); line-height: 1.4; }
.image-directory__body { padding: 8px var(--space-5) var(--space-5); }
.image-directory__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.image-directory__search-row { display: flex; align-items: flex-end; gap: var(--space-4); }
.image-directory__search { flex: 1; min-width: 0; }
.image-directory__search label { display: block; margin-bottom: var(--space-2); font-size: var(--text-sm); font-weight: 650; color: var(--color-text); }
.image-directory__input-wrap { position: relative; }
.image-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; }
.image-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); }
.image-directory__summary { display: grid; gap: 2px; flex: 0 0 auto; margin: 0 0 var(--space-1) auto; text-align: right; }
.image-directory__count { color: var(--color-text); font-size: var(--text-sm); font-weight: var(--font-semibold); }
.image-directory__status { color: var(--color-text-secondary); font-size: var(--text-xs); }
.image-directory__filters { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
.image-directory__filters button, .image-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; }
.image-directory__filters button span { margin-left: var(--space-2); font-size: var(--text-xs); opacity: .8; }
.image-directory__filters button[aria-pressed="true"] { border-color: var(--image-accent); color: var(--image-accent); background: var(--image-soft); font-weight: 650; }
.image-directory__empty { margin-top: var(--space-4); color: var(--color-text-secondary); }
.image-directory__empty p { margin: 0 0 var(--space-3); }
.directory-page--image :is(.image-directory, .cat-image-content) :is(a, button, input, [tabindex]):focus-visible { outline: 3px solid var(--image-accent); outline-offset: 3px; }
.directory-page--image .cat-tool-card__desc { display: block; -webkit-line-clamp: unset; }
.cat-image-content { display: grid; gap: var(--space-4); margin: var(--space-6) 0 var(--space-8); }
.cat-image-content > .tool-editorial { min-width: 0; margin: 0; padding: var(--space-6); color: var(--color-text); background: var(--image-surface); border: 1px solid var(--color-border); border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); scroll-margin-top: 90px; }
.cat-image-content h2 { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-4); font-size: var(--text-xl); font-weight: 750; line-height: 1.4; }
.cat-image-content .tool-editorial__scroll-btn { flex: 0 0 auto; margin-left: auto; min-height: 36px; padding: var(--space-2) var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-lg); color: var(--image-accent); background: var(--image-soft); font-family: var(--font-body); font-size: var(--text-xs); font-weight: 600; cursor: pointer; }
.cat-image-content :is(p, dd, td, th) { color: var(--color-text-secondary); font-size: var(--text-base); line-height: 1.65; }
.cat-image-content p { margin: 0; }
.cat-image-content p + p { margin-top: var(--space-3); }
.cat-image-content .tool-editorial__table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.cat-image-content table { width: 100%; min-width: 640px; border-collapse: collapse; }
.cat-image-content :is(td, th) { padding: var(--space-4); text-align: left; vertical-align: top; border-bottom: 1px solid var(--color-border); }
.cat-image-content thead th { background: var(--color-bg-secondary); color: var(--color-text); font-size: var(--text-sm); }
.cat-image-content tbody th { width: 25%; color: var(--color-text); font-weight: 600; }
.cat-image-content tbody td { width: 37.5%; }
.cat-image-content tbody td p { margin-top: var(--space-2); }
.cat-image-content tr:last-child :is(td, th) { border-bottom: 0; }
.cat-image-content .tool-editorial__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.cat-image-content .tool-editorial__item { min-width: 0; padding: var(--space-4); background: var(--color-bg-secondary); border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.cat-image-content h3 { margin: 0 0 var(--space-3); font-size: var(--text-base); font-weight: 700; line-height: 1.45; }
.cat-image-content .cat-image-content__links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); margin-top: var(--space-4); }
[data-theme="dark"] .directory-page--image { --image-accent: #f9a8d4; --image-soft: #302030; --image-surface: var(--color-bg-elevated); }
@media (max-width: 900px) { .cat-image-content .tool-editorial__grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .directory-page--image .image-directory { margin-top: 32px; border-radius: 0 18px 18px 18px; }
  .image-directory__heading { max-width: calc(100% - 42px); margin-top: -28px; padding: 13px 24px 10px 16px; gap: 10px; border-radius: 18px 24px 0 0; }
  .image-directory__heading::after { right: -24px; width: 40px; }
  .image-directory__heading-icon { flex-basis: 36px; width: 36px; height: 36px; border-radius: 11px; }
  .image-directory__heading-icon svg { width: 21px; height: 21px; }
  .image-directory__heading h2 { font-size: var(--text-lg); }
  .image-directory__heading p { font-size: var(--text-xs); }
  .image-directory__body { padding: 6px var(--space-4) var(--space-4); }
  .cat-image-content > .tool-editorial { padding: var(--space-4); border-radius: var(--radius-lg); }
  .image-directory__search-row { align-items: stretch; flex-direction: column; gap: var(--space-2); }
  .image-directory__summary { margin: 0; text-align: left; }
  .image-directory__filters { flex-wrap: nowrap; overflow-x: auto; padding: var(--space-1) var(--space-1) var(--space-2); }
  .image-directory__filters button { flex: 0 0 auto; white-space: nowrap; }
  .cat-image-content h2 { font-size: var(--text-lg); }
}
@media (max-width: 480px) {
  .directory-page--image .cat-tools__grid { grid-template-columns: 1fr; }
  .directory-page--image .cat-tool-card__name { font-size: var(--text-base); }
  .directory-page--image .cat-tool-card__desc { font-size: var(--text-sm); line-height: 1.6; }
}
