/* DLS Base Styles v1.05 */
.dls-grid { display:grid; gap:1.1rem; }
.dls-grid.cols-1 { grid-template-columns: 1fr; }
.dls-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.dls-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.dls-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }

/* Card */
.dls-card{ border:1px solid #e8e8e8; border-radius:12px; background:#fff; overflow:hidden;
  box-shadow:0 2px 6px rgba(0,0,0,.06); transition:transform .22s ease; }
.dls-card:hover{ transform:translateY(-3px); }
.dls-thumb{ display:block; position:relative; width:100%; }
.dls-thumb-inner{ position:relative; width:100%; background:#f6f6f6; overflow:hidden; }
.dls-thumb-inner img{ width:100%; height:100%; object-fit:cover; display:block; }
.dls-body{ padding:.9rem 1rem 1.1rem; }
.dls-title{ font-size:.98rem; font-weight:700; margin:.2rem 0 .5rem; line-height:1.35; }
.dls-title a{ color:inherit; text-decoration:none; }
.dls-title a:hover{ text-decoration:underline; }
.dls-meta{ font-size:.82rem; color:#777; margin-bottom:.45rem; }
.dls-excerpt{ font-size:.9rem; color:#444; }

@media (min-width:641px){
  .dls-card-grid .dls-thumb-inner{ height: var(--dls-img-h, 220px); }
}

@media (max-width:640px){
  .dls-card-grid{
    display:flex; overflow-x:auto;
    gap: var(--dls-gap, 16px);
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling: touch; padding-bottom:.75rem;
  }
  .dls-card-grid .dls-card{
    min-width: var(--dls-card-w, 85%);
    scroll-snap-align:center;
    scroll-snap-stop: always;
    flex: 0 0 var(--dls-card-w, 85%);
  }
  .dls-dots{ display:flex; justify-content:center; gap:8px; margin-top:.4rem; }
  .dls-dots button{ width:8px; height:8px; border-radius:50%; border:none; background:#ccd0d4; padding:0; }
  .dls-dots button.is-active{ background:#111; }
}

/* List */
.dls-list .item{ display:flex; gap:12px; align-items:flex-start; margin-bottom:14px; }
.dls-list .thumb{ width:92px; flex:0 0 92px; border-radius:10px; overflow:hidden; }
.dls-list .thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.dls-list .title{ margin:0 0 4px; font-weight:700; font-size:.98rem; }
.dls-list .meta{ font-size:.85rem; color:#777; }
.dls-list .excerpt{ font-size:.9rem; color:#444; }