/* Layout + Filters */
.dx-hero { text-align:center; padding: 2rem 1rem; }
.dx-layout { display:grid; grid-template-columns: 280px 1fr; gap: 1rem; padding: 1rem; }
@media (max-width: 992px){ .dx-layout { grid-template-columns: 1fr; } .dx-filters{ order:2; } .dx-results{ order:1; } }
.dx-filter-form { position: sticky; top: 1rem; display: grid; gap: 1rem; }
.dx-filter { background:#f7f9fc; border:1px solid #e8eef6; border-radius: 12px; padding: .75rem; }
.dx-filter__title { font-weight:600; margin-bottom: .25rem; }
.dx-filter label { display:block; font-size: 14px; margin:.15rem 0; }
.dx-filter input[type="search"]{ width:100%; padding:.5rem .75rem; border-radius:8px; border:1px solid #dbe5f2; }
.dx-filter-buttons { display:flex; gap:.5rem; align-items:center; }
.dx-reset { font-size:14px; text-decoration:none; }

.dx-cases-grid { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
@media (max-width:1024px){ .dx-cases-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .dx-cases-grid { grid-template-columns: 1fr; } }

.dx-card { background:#10131b; color:#fff; border:1px solid rgba(255,255,255,0.08); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; }
.dx-card__thumb img { width:100%; height:220px; object-fit:cover; display:block; }
.dx-card__body { padding:16px; display:flex; flex-direction:column; gap:.5rem; }
.dx-card__tags { display:flex; flex-wrap:wrap; gap:.5rem; min-height:20px; }
.dx-tag { background: rgba(255,255,255,0.08); color:#cfe3ff; padding:2px 8px; border-radius:999px; font-size:12px; }
.dx-card__title { font-size:18px; margin:0; }
.dx-card__title a { color:#fff; text-decoration:none; }
.dx-card__meta { color:#9fb3c8; font-size:13px; }
.dx-card__excerpt { color:#d9e3ee; font-size:14px; margin: .25rem 0 .5rem; }
.dx-card__stack { display:flex; flex-wrap:wrap; gap:.5rem; }
.dx-chip { background:#0b7bff1a; border:1px solid #0b7bff44; color:#b9d8ff; padding:2px 8px; border-radius:999px; font-size:12px; }
.dx-card__cta { margin-top:auto; align-self:flex-start; font-size:14px; padding:8px 12px; border-radius:10px; border:1px solid rgba(255,255,255,0.2); color:#fff; text-decoration:none; }
.dx-card__cta:hover { transform:translateY(-1px); border-color:#fff; }

/* Single template pieces */
.dx-single__wrap { max-width:1100px; margin:0 auto; padding:1rem; color:#111; }
.dx-meta { color:#555; margin-bottom:.75rem; }
.dx-heroimg img { width:100%; height:auto; border-radius:12px; }
.dx-quickfacts, .dx-techstack, .dx-gallery, .dx-kpis, .dx-downloads, .dx-related { margin-top:2rem; }
.dx-facts { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
@media (max-width:640px){ .dx-facts{ grid-template-columns:1fr; } }
.dx-cso { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:1rem; margin-top:2rem; }
@media (max-width:992px){ .dx-cso { grid-template-columns:1fr; } }
.dx-panel { background:#f7f9fc; padding:1rem; border-radius:12px; }
.dx-chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.dx-gallery__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
@media (max-width:992px){ .dx-gallery__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){ .dx-gallery__grid { grid-template-columns:1fr; } }
.dx-cta { text-align:center; margin:2rem 0; }
.dx-cta__btn { display:inline-block; padding:.75rem 1.25rem; border-radius:10px; background:#0b7bff; color:#fff; text-decoration:none; }
