.aq-tpl-prod { display: flex; flex-direction: column; gap: 40px; margin-bottom: 56px; }
.aq-tpl-prod-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--aq-line);
}
.aq-tpl-prod-head h3 { font-size: 22px; }
.aq-tpl-prod-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--aq-gap); }
.aq-tpl-prod-card {
    display: flex;
    flex-direction: column;
    background: var(--aq-card);
    border-radius: var(--aq-radius);
    box-shadow: var(--aq-shadow);
    border: var(--aq-border);
    overflow: hidden;
    transition: transform .3s var(--aq-ease), box-shadow .3s var(--aq-ease);
}
.aq-tpl-prod-card:hover { transform: translateY(-5px); box-shadow: var(--aq-shadow-hover); }
.aq-tpl-prod-card .prod-cover { aspect-ratio: 1/1; overflow: hidden; background: var(--aq-soft); }
.aq-tpl-prod-card .prod-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--aq-ease); }
.aq-tpl-prod-card:hover .prod-cover img { transform: scale(1.06); }
.aq-tpl-prod-card .placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 44px; font-weight: 700; color: #fff; background: var(--aq-grad); }
.aq-tpl-prod-card .prod-body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.aq-tpl-prod-card .prod-title { font-size: 16px; margin-bottom: 8px; }
.aq-tpl-prod-card:hover .prod-title { color: var(--aq-green); }
.aq-tpl-prod-card .prod-desc {
    font-size: 13px; color: var(--aq-ink-2); line-height: 1.6; flex: 1; margin-bottom: 12px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.aq-tpl-prod-card .prod-meta { display: flex; gap: 14px; font-size: 12px; color: var(--aq-ink-3); padding-top: 10px; border-top: 1px solid var(--aq-line); }
.aq-tpl-prod-empty { padding: 36px; text-align: center; color: var(--aq-ink-3); }

@media (max-width: 1024px) { .aq-tpl-prod-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .aq-tpl-prod-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .aq-tpl-prod-grid { grid-template-columns: 1fr; } }