.categories-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.category-card { height: fit-content; border: 1px solid var(--color-border); background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
.category-card.is-open { border-color: rgba(0,63,120,.32); box-shadow: var(--shadow-md); }
.category-card__button { width: 100%; border: 0; background: transparent; display: grid; grid-template-columns: auto 1fr auto; gap: .9rem; align-items: center; padding: 1rem; text-align: left; color: var(--color-ink); }
.category-card__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: var(--color-primary-soft); }
.category-card__icon img { width: 28px; height: 28px; }
.category-card__title { font-weight: 500; line-height: 1.2; }
.category-card__toggle { width: 28px; height: 28px; border-radius: 999px; background: var(--color-surface-soft); color: var(--color-primary); display: grid; place-items: center; transition: transform .25s var(--ease), background .25s var(--ease); }
.category-card.is-open .category-card__toggle { transform: rotate(45deg); background: var(--color-accent); color: #172536; }
.category-card__panel { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .35s var(--ease), opacity .25s var(--ease); }
.category-card.is-open .category-card__panel { max-height: 340px; opacity: 1; }
.category-card__list { padding: 0 1rem 1rem 1rem; display: grid; gap: .45rem; }
.category-card__list li { color: #40586d; padding: .52rem .75rem; border-radius: 12px; background: var(--color-surface-soft); }
.category-teaser { grid-template-columns: repeat(4, 1fr); }
