.nv-catalog-page { max-width: 1180px; margin: 0 auto; padding: 40px 20px 64px; }
.nv-catalog-page header { max-width: 740px; margin-bottom: 28px; }
.nv-catalog-page h1 { font-size: clamp(2rem, 4vw, 3rem); }
.nv-catalog-search { display: grid; gap: 8px; max-width: 620px; margin-bottom: 20px; }
.nv-catalog-search label { font-weight: 600; }
.nv-catalog-search input { width: 100%; padding: 12px 16px; border: 1px solid #9eafbf; border-radius: 8px; }
.nv-catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.nv-catalog-card { padding: 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.nv-catalog-card h2 { font-size: 1.35rem; line-height: 1.4; margin: 0; }
.nv-catalog-card h2 a { color: inherit; text-decoration: none; }
.nv-catalog-card h2 a:hover { text-decoration: underline; }
.nv-catalog-card p { margin: 0; }
.nv-catalog-card__badges { display: flex; gap: 8px; flex-wrap: wrap; }
.nv-catalog-card__description { flex: 1; }
.nv-catalog-card__counts { font-weight: 600; }
.nv-catalog-card details { width: 100%; margin-top: 8px; border-top: 1px solid #dce3e9; padding-top: 12px; }
.nv-catalog-card summary { cursor: pointer; }
.nv-catalog-card dd { overflow-wrap: anywhere; }
.nv-catalog-card dl { margin-top: 12px; }
@media (max-width: 700px) { .nv-catalog-grid { grid-template-columns: 1fr; } .nv-catalog-page { padding: 24px 12px; } }
