/* ==========================================================================
   1. توکن‌ها
   ========================================================================== */
.dgp-list{
  --dgp-font: inherit;

  --dgp-primary: var(--drm-primary, #6c1410);
  --dgp-ink: var(--drm-text-strong, #1e1e1e);
  --dgp-muted: var(--drm-text-muted, #7b7b7b);
  --dgp-card-bg: #f9f8f6;                          /* = --cat-card-bg */
  --dgp-image-bg: #efeeec;                         /* = --cat-image-bg */

  --dgp-container: var(--drm-container, 1200px);
  --dgp-radius: var(--drm-r-md, 16px);
  --dgp-radius-img: 12px;
  --dgp-gap: 10px;
  --dgp-per-view: 3.2;                             /* کارت در دید، دسکتاپ */
  --dgp-thumb: 116px;

  --dgp-fs-title: 14px;
  --dgp-lh-title: 1.85;
  --dgp-fs-meta: 11px;
  --dgp-title-lines: 2;
  --dgp-line: calc(var(--dgp-fs-title) * var(--dgp-lh-title));

  --dgp-ease: var(--drm-ease, cubic-bezier(.22,.61,.36,1));
  --dgp-dur: var(--drm-fast, .2s);

  font-family: var(--dgp-font);
  direction: rtl;
  color: var(--dgp-ink);
  padding: 18px 0 14px;
  position: relative;
}
.dgp-list *, .dgp-list *::before, .dgp-list *::after{ box-sizing: border-box; }

/* ==========================================================================
   2. سربرگ — عیناً متریک‌های drm-horizontal-cats__head
   ========================================================================== */
.dgp-list__head{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; width:100%; max-width: var(--dgp-container);
  margin:0 auto 13px; padding-inline:0;
}
.dgp-list__titlewrap{ display:flex; align-items:center; gap:9px; min-width:0; }
.dgp-list__bar{
  inline-size:4px; block-size:18px; border-radius:99px;
  background: var(--dgp-primary); flex:0 0 auto;
}
.dgp-list__title{
  margin:0; color: var(--dgp-ink);
  font-size: clamp(15px, 1.7vw, 18px); font-weight:800; line-height:1.4;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.dgp-list__title strong{ color: var(--dgp-primary); }

/* «مشاهده همه» — عیناً drm-horizontal-cats__all و همسان با ماژول اسلایدر */
.dgp-list__all{
  display:inline-flex; align-items:center; gap:4px; flex:0 0 auto;
  color: var(--dgp-primary);
  font-size:12px; font-weight:600; line-height:1;
  text-decoration:none; white-space:nowrap;
  transition: opacity var(--dgp-dur) var(--dgp-ease);
}
.dgp-list__all:hover{ opacity:.72; }
.dgp-list__all:focus-visible{ outline:2px solid var(--dgp-primary); outline-offset:3px; border-radius:4px; }
.dgp-list__all svg{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8; }

/* ==========================================================================
   3. ریل اسکرول — دسکتاپ و تبلت
   ========================================================================== */
.dgp-list__viewport{
  width:100%; max-width: var(--dgp-container); margin-inline:auto;
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-block: 2px 8px;
}
.dgp-list__viewport::-webkit-scrollbar{ display:none; }

.dgp-list__track{
.dgp-list__empty{
  margin:0; padding:18px; border-radius:var(--dgp-radius);
  background:var(--dgp-card-bg); color:var(--dgp-muted);
  font-size:13px; line-height:1.9; text-align:center;
}
  list-style:none; margin:0; padding:0;
  display:flex; gap: var(--dgp-gap);
}
.dgp-list__track > li{
  flex: 0 0 calc(
    (100% - (var(--dgp-per-view) - 1) * var(--dgp-gap)) / var(--dgp-per-view)
  );
  min-inline-size:0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

/* ==========================================================================
   4. کارت — سطری در همه‌ی بریک‌پوینت‌ها، بدون بوردر
   ========================================================================== */
.dgp-lcard{
  position:relative;
  block-size:100%;
  display:flex; flex-direction: row-reverse; align-items:center;
  gap:12px;
  padding:8px;
  border:0;
  border-radius: var(--dgp-radius);
  background: var(--dgp-card-bg);
  transition: transform var(--dgp-dur) var(--dgp-ease),
              background var(--dgp-dur) var(--dgp-ease);
}
.dgp-lcard__media{
  margin:0; overflow:hidden;
  flex:0 0 var(--dgp-thumb); inline-size: var(--dgp-thumb);
  aspect-ratio: 4 / 3;
  border-radius: var(--dgp-radius-img);
  background: var(--dgp-image-bg);
}
.dgp-lcard__img{
  inline-size:100%; block-size:100%;
  object-fit:cover; display:block;
  transition: transform .5s var(--dgp-ease);
}
/* Image fill guard. Optimizer/lazy-load plugins rewrite <img> tags and can drop
   our class or force height:auto, which breaks the crop. Targeting the child
   image keeps the card cropping correct whatever the tag ends up looking like. */
.dgp-lcard__media > img{
  width:100% !important; height:100% !important; max-width:none;
  object-fit:cover; object-position:center; display:block;
}

.dgp-lcard__body{
  display:flex; flex-direction:column; justify-content:center;
  gap:9px; flex:1 1 auto; min-inline-size:0; padding-block:2px;
}

/* --- عنوان: سقف ۲ خط + محو تدریجی انتهای خط آخر --- */
.dgp-lcard__title{
  margin:0;
  font-size: var(--dgp-fs-title);
  font-weight:800;
  line-height: var(--dgp-lh-title);
  color: var(--dgp-ink);
  display:-webkit-box;
  -webkit-line-clamp: var(--dgp-title-lines);
  -webkit-box-orient: vertical;
  overflow:hidden;
  max-block-size: calc(var(--dgp-line) * var(--dgp-title-lines));
}
.dgp-lcard__title.is-clamped{
  -webkit-mask-image:
    linear-gradient(#000, #000),
    linear-gradient(to left, #000 46%, rgba(0,0,0,0) 94%);
          mask-image:
    linear-gradient(#000, #000),
    linear-gradient(to left, #000 46%, rgba(0,0,0,0) 94%);
  -webkit-mask-size: 100% calc(100% - var(--dgp-line)), 100% var(--dgp-line);
          mask-size: 100% calc(100% - var(--dgp-line)), 100% var(--dgp-line);
  -webkit-mask-position: top right, bottom right;
          mask-position: top right, bottom right;
  -webkit-mask-repeat: no-repeat, no-repeat;
          mask-repeat: no-repeat, no-repeat;
}
[dir="ltr"] .dgp-lcard__title.is-clamped{
  -webkit-mask-image:
    linear-gradient(#000, #000),
    linear-gradient(to right, #000 46%, rgba(0,0,0,0) 94%);
          mask-image:
    linear-gradient(#000, #000),
    linear-gradient(to right, #000 46%, rgba(0,0,0,0) 94%);
  -webkit-mask-position: top left, bottom left;
          mask-position: top left, bottom left;
}

.dgp-lcard__link{ color:inherit; text-decoration:none; }
/* stretched link — یک لینک اصلی به ازای هر کارت */
.dgp-lcard__link::after{ content:""; position:absolute; inset:0; z-index:2; }
.dgp-lcard__link:focus-visible{ outline:none; }
.dgp-lcard__link:focus-visible::after{
  outline:2px solid var(--dgp-primary); outline-offset:-3px;
  border-radius: var(--dgp-radius);
}

/* --- متادیتا --- */
.dgp-lcard__meta{
  display:flex; align-items:center; gap:7px;
  font-size: var(--dgp-fs-meta); font-weight:600;
  color: var(--dgp-muted);
  min-block-size:18px;
}
.dgp-lcard__author{
  color: var(--dgp-muted); text-decoration:none;
  position:relative; z-index:3;
  display:inline-flex; align-items:center; gap:5px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.dgp-lcard__author::before{
  content:""; inline-size:5px; block-size:5px; border-radius:2px;
  background: var(--dgp-primary); flex:0 0 auto;
}
.dgp-lcard__author:hover{ color: var(--dgp-muted); }
.dgp-lcard__sep{ opacity:.5; }
.dgp-lcard__date{ font-weight:500; white-space:nowrap; }
.dgp-lcard__comments{
  margin-inline-start:auto;
  display:inline-flex; align-items:center; gap:4px; flex:0 0 auto;
}
.dgp-lcard__comments svg{
  inline-size:13px; block-size:13px;
  fill:none; stroke:currentColor; stroke-width:1.8;
}

/* ==========================================================================
   5. دکمه‌ی «مشاهده مطالب بیشتر» — بدون بوردر، هم‌رنگ کارت‌ها
   ========================================================================== */
.dgp-list__more{
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; max-width: var(--dgp-container);
  margin:12px auto 0; padding:13px 16px;
  border:0; border-radius: var(--dgp-radius);
  background: var(--dgp-card-bg);
  color: var(--dgp-primary);
  font-family:inherit; font-size:13px; font-weight:800; line-height:1;
  text-decoration:none; cursor:pointer;
  transition: background var(--dgp-dur) var(--dgp-ease),
              opacity var(--dgp-dur) var(--dgp-ease);
}
.dgp-list__more:hover{ background:#f2efeb; }
.dgp-list__more:active{ opacity:.85; }
.dgp-list__more:focus-visible{ outline:2px solid var(--dgp-primary); outline-offset:2px; }
.dgp-list__more svg{
  inline-size:15px; block-size:15px;
  fill:none; stroke:currentColor; stroke-width:1.8;
}

/* ==========================================================================
   6. ریسپانسیو
   ========================================================================== */
@media (max-width: 1100px){ .dgp-list{ --dgp-per-view: 2.6; } }
@media (max-width: 860px){  .dgp-list{ --dgp-per-view: 1.8; } }

/* --- موبایل: ریل تبدیل به لیست عمودی می‌شود، مطابق تصاویر مرجع --- */
@media (max-width: 640px){
  .dgp-list{ --dgp-gap:9px; --dgp-thumb:92px; --dgp-fs-title:13px; padding:15px 0 12px; }
  .dgp-list__head{ max-width:none; margin-bottom:11px; }
  .dgp-list__title{ font-size:15px; }
  .dgp-list__all{ font-size:12px; font-weight:600; }

  .dgp-list__viewport{
    max-width:none;
    overflow:visible;
    scroll-snap-type:none;
    padding-block:0;
  }
  .dgp-list__track{ flex-direction:column; gap: var(--dgp-gap); }
  .dgp-list__track > li{ flex:1 1 auto; scroll-snap-align:none; }

  .dgp-lcard{ gap:10px; padding:7px; }
  .dgp-lcard__img{ transition:none; }
  .dgp-lcard__body{ gap:7px; }

  .dgp-list__more{ max-width:none; margin-top:11px; padding:12px 16px; }
}

/* ==========================================================================
   7. دسترسی‌پذیری و حالت‌های سیستمی
   ========================================================================== */
.dgp-list__viewport:focus-visible{
  outline:2px solid var(--dgp-primary); outline-offset:2px; border-radius:14px;
}
@media (prefers-reduced-motion: reduce){
  .dgp-list *, .dgp-list *::before, .dgp-list *::after{
    transition-duration:.01ms !important; animation-duration:.01ms !important;
  }
  .dgp-list__viewport{ scroll-behavior:auto; }
}
@media (forced-colors: active){
  .dgp-lcard{ border:1px solid CanvasText; }
  .dgp-lcard__title.is-clamped{ -webkit-mask-image:none; mask-image:none; }
}
.dgp-list.is-dragging{ cursor:grabbing; user-select:none; }
.dgp-list.is-dragging .dgp-lcard__link::after{ pointer-events:none; }

.dgp-sr-only{
  position:absolute !important; inline-size:1px; block-size:1px;
  padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%);
  white-space:nowrap; border:0;
}

/* The global a:hover recolours every link. Cards keep their own colours so a
   finger resting on a card never turns the title or the chip red. */
.dgp-lcard__link:hover, .dgp-lcard__title a:hover{ color: var(--dgp-ink); }
