.index-directory { scroll-margin-top:24px; }
.index-directory .section-heading p { color:var(--muted); font-size:.92rem; margin:12px 0 0; max-width:640px; }
.index-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:14px; }
.index-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:13px; min-width:0; padding:23px 10px 19px; background:var(--card); border:1px solid var(--line); border-radius:18px; color:var(--ink); box-shadow:var(--shadow); transition:transform .15s,border-color .15s; }
.index-card:hover { transform:translateY(-3px); border-color:var(--accent); color:var(--accent); }
.index-logo { width:80px; height:80px; display:flex; align-items:center; justify-content:center; background:#fff; border-radius:14px; }
.index-logo img { width:64px; height:64px; object-fit:contain; }
.index-card strong { font-size:.9rem; line-height:1.35; min-height:2.7em; display:flex; align-items:center; }
.index-card-caption { font-size:.72rem; color:var(--muted); }
@media(max-width:1100px) { .index-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:600px) { .index-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .index-card { padding:18px 10px; } }
@media(prefers-reduced-motion:reduce) { .index-card { transition:none; } .index-card:hover { transform:none; } }
