.dps-posts-wrap { width: 100%; }
.dps-posts {
    --dps-gap: 24px;
    --dps-radius: 18px;
    --dps-card-bg: #ffffff;
    --dps-text: #1a1a1a;
    --dps-accent: #0a7cff;
    display: grid;
    gap: var(--dps-gap);
    margin-bottom: 28px;
}
.dps-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dps-layout-grid.dps-columns-1 { grid-template-columns: 1fr; }
.dps-layout-grid.dps-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dps-layout-grid.dps-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dps-layout-grid.dps-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dps-layout-list { grid-template-columns: 1fr; }
.dps-layout-tile { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dps-layout-tile .dps-card-featured,
.dps-layout-grid .dps-card-featured { grid-column: span 2; grid-row: span 2; }
.dps-card {
    background: var(--dps-card-bg);
    color: var(--dps-text);
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: var(--dps-radius);
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0,0,0,0.05);
    transition: transform .25s ease, box-shadow .25s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.dps-card:hover { transform: translateY(-4px); box-shadow: 0 14px 38px rgba(0,0,0,0.10); }
.dps-thumb { position: relative; overflow: hidden; }
.dps-thumb img { width: 100%; height: auto; display: block; aspect-ratio: 16/9; object-fit: cover; }
.dps-ratio-square .dps-thumb img { aspect-ratio: 1/1; }
.dps-ratio-portrait .dps-thumb img { aspect-ratio: 3/4; }
.dps-content { padding: 20px; display: flex; flex-direction: column; gap: 12px; text-align: inherit; }
.dps-align-left .dps-content { text-align: left; }
.dps-align-center .dps-content { text-align: center; }
.dps-align-right .dps-content { text-align: right; }
.dps-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; color: color-mix(in srgb, var(--dps-text) 58%, white); text-transform: uppercase; letter-spacing: .04em; }
.dps-align-center .dps-meta { justify-content: center; }
.dps-align-right .dps-meta { justify-content: flex-end; }
.dps-title { font-size: 22px; line-height: 1.25; margin: 0; }
.dps-title a { color: var(--dps-text); text-decoration: none; }
.dps-excerpt { margin: 0; color: color-mix(in srgb, var(--dps-text) 72%, white); font-size: 15px; line-height: 1.7; }
.dps-readmore,
.dps-loadmore,
.dps-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 999px;
    text-decoration: none;
}
.dps-readmore { margin-top: auto; font-weight: 600; color: var(--dps-accent); padding-left: 0; min-height: auto; }
.dps-layout-list .dps-card { display: grid; grid-template-columns: 280px 1fr; align-items: stretch; }
.dps-layout-list .dps-thumb img { height: 100%; }
.dps-style-minimal .dps-card { box-shadow: none; }
.dps-style-magazine .dps-title { font-size: 26px; }
.dps-style-magazine .dps-meta { font-size: 12px; letter-spacing: .08em; }
.dps-style-shadow .dps-card { box-shadow: 0 18px 40px rgba(0,0,0,0.12); border: none; }
.dps-style-overlay .dps-card { position: relative; min-height: 100%; justify-content: flex-end; background: #111; }
.dps-style-overlay .dps-thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0.1));
}
.dps-style-overlay .dps-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    color: #fff;
}
.dps-style-overlay .dps-title a,
.dps-style-overlay .dps-readmore,
.dps-style-overlay .dps-excerpt,
.dps-style-overlay .dps-meta { color: #fff; }
.dps-layout-tile .dps-card-featured .dps-title,
.dps-layout-grid .dps-card-featured .dps-title { font-size: 30px; }
.dps-pagination,
.dps-loadmore-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
}
.dps-pagination .page-numbers,
.dps-loadmore {
    background: #f5f7fb;
    border: 1px solid rgba(0,0,0,0.08);
    color: var(--dps-text);
    font-weight: 600;
}
.dps-pagination .current,
.dps-loadmore:hover,
.dps-pagination .page-numbers:hover {
    background: var(--dps-accent);
    color: #fff;
    border-color: var(--dps-accent);
}
.dps-empty { padding: 20px; border: 1px dashed #bbb; border-radius: 12px; }
@media (max-width: 1024px) {
    .dps-layout-grid,
    .dps-layout-tile { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dps-layout-grid.dps-columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .dps-layout-grid,
    .dps-layout-tile,
    .dps-layout-list,
    .dps-layout-list .dps-card { grid-template-columns: 1fr; }
    .dps-layout-tile .dps-card-featured,
    .dps-layout-grid .dps-card-featured { grid-column: auto; grid-row: auto; }
    .dps-title { font-size: 20px; }
    .dps-style-overlay .dps-content { position: static; color: inherit; }
    .dps-style-overlay .dps-thumb::after { display: none; }
    .dps-style-overlay .dps-title a,
    .dps-style-overlay .dps-readmore,
    .dps-style-overlay .dps-excerpt,
    .dps-style-overlay .dps-meta { color: inherit; }
}
