/* ============================================================
   PARHAM · Layout Engine
   همه‌ی کلاس‌ها با pl- شروع می‌شوند تا با panel.css و قالب فعلی
   تداخل نکنند. توکن‌ها هم با --pl- پیشوند دارند.
   ============================================================ */
:root{
  --pl-ground:#F3F6F5;
  --pl-surface:#FFFFFF;
  --pl-surface-2:#EAEFEE;
  --pl-ink:#132029;
  --pl-ink-2:#38505C;
  --pl-muted:#66808B;
  --pl-line:#D8E1E0;
  --pl-line-strong:#BECBC9;
  --pl-accent:#0B7F7A;
  --pl-accent-ink:#075E5A;
  --pl-accent-soft:#E2F0EE;
  --pl-saffron:#B76A12;
  --pl-saffron-soft:#F7EBDA;

  --pl-r-sm:4px;
  --pl-r-md:8px;
  --pl-r-lg:14px;

  --pl-gap:clamp(18px,2.2vw,28px);
  --pl-space:clamp(44px,6vw,80px);

  --pl-display:"Markazi Text","Vazirmatn",Vazir,serif;
  --pl-ui:inherit;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --pl-ground:#0D1417; --pl-surface:#141E22; --pl-surface-2:#1B282D;
    --pl-ink:#E7EFED; --pl-ink-2:#B4C8C7; --pl-muted:#8399A0;
    --pl-line:#243237; --pl-line-strong:#31444A;
    --pl-accent:#33B3AB; --pl-accent-ink:#5ECFC7; --pl-accent-soft:#122B2B;
    --pl-saffron:#E0A054; --pl-saffron-soft:#2A2018;
  }
}
[data-theme="dark"]{
  --pl-ground:#0D1417; --pl-surface:#141E22; --pl-surface-2:#1B282D;
  --pl-ink:#E7EFED; --pl-ink-2:#B4C8C7; --pl-muted:#8399A0;
  --pl-line:#243237; --pl-line-strong:#31444A;
  --pl-accent:#33B3AB; --pl-accent-ink:#5ECFC7; --pl-accent-soft:#122B2B;
  --pl-saffron:#E0A054; --pl-saffron-soft:#2A2018;
}

.pl-region{
  --pl-max:1400px;
  direction:rtl;color:var(--pl-ink);
  max-width:var(--pl-max);margin-inline:auto;
  padding-inline:clamp(16px,3vw,32px);
  padding-block:clamp(20px,3vw,36px) clamp(28px,4vw,56px);
}
.pl-region,.pl-region *,.pl-region *::before,.pl-region *::after{box-sizing:border-box}
/* pl-hidden-fix — کلاس‌های چیدمان (display:grid) بر قاعده‌ی پیش‌فرض مرورگر
   برای صفت hidden غلبه می‌کنند؛ بدون این خط هر پنج پنل تب هم‌زمان دیده می‌شوند. */
.pl-region [hidden]{display:none!important}
.pl-region a{color:inherit;text-decoration:none}
.pl-region h2,.pl-region h3,.pl-region h4{margin:0;text-wrap:balance;line-height:1.35}
.pl-region p{margin:0}
.pl-region ul,.pl-region ol{margin:0;padding:0;list-style:none}
.pl-region img{display:block;width:100%;height:100%;object-fit:cover}
.pl-region a:focus-visible,.pl-region button:focus-visible{
  outline:2px solid var(--pl-accent);outline-offset:3px;border-radius:var(--pl-r-sm);
}

.pl-section{margin-top:var(--pl-space)}

/* ---------- قاب بخش (اختیاری، هر بخش جداگانه) ---------- */
.pl-section--boxed{
  background:var(--pl-surface);
  border:1px solid var(--pl-line);
  border-radius:22px;
  padding:clamp(18px,2.6vw,34px);
  box-shadow:0 1px 2px rgba(19,32,41,.04),0 18px 40px -34px rgba(19,32,41,.5);
}
.pl-section--boxed.pl-section--vertical{padding-inline-start:clamp(14px,2vw,26px)}
/* در بخش قاب‌دار، ستون عنوان عمودی با یک خط مویی از محتوا جدا می‌شود */
.pl-section--boxed .pl-vhead{
  border-inline-end:1px solid var(--pl-line);
  padding-inline-end:clamp(10px,1.4vw,18px);
  margin-inline-end:clamp(4px,1vw,10px);
}
.pl-section--boxed .pl-vhead__rule{background:linear-gradient(var(--pl-accent),transparent)}
/* چیدمان پله‌ای داخل قاب، فاصله‌ی بالای کمتری لازم دارد */
.pl-section--boxed .pl-alcove>*:nth-child(even){margin-top:clamp(12px,2.4vw,34px)}
.pl-section:first-child{margin-top:0}

/* ---------- سربرگ افقی ---------- */
.pl-head{display:flex;align-items:baseline;gap:16px;margin-bottom:clamp(18px,2.4vw,28px)}
.pl-head h2{
  font-family:var(--pl-display);font-weight:700;
  font-size:clamp(24px,3vw,34px);line-height:1.15;
  padding-bottom:5px;border-bottom:3px solid var(--pl-accent);
}
.pl-head__sub{font-size:13px;color:var(--pl-muted)}
.pl-head__rule{flex:1;height:1px;background:var(--pl-line);align-self:center}
.pl-head__more{font-size:13px;font-weight:700;color:var(--pl-accent-ink);white-space:nowrap}
.pl-head__more::after{content:"‹";font-size:18px;margin-inline-start:5px}

/* ---------- سربرگ عمودی ---------- */
.pl-section--vertical{display:grid;grid-template-columns:64px 1fr;gap:clamp(14px,2.4vw,30px)}
.pl-vhead{display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:4px}
.pl-vhead h2{
  writing-mode:vertical-rl;white-space:nowrap;
  font-family:var(--pl-display);
  font-weight:700;font-size:clamp(24px,3vw,36px);line-height:1;
}
.pl-vhead__rule{flex:1;width:1px;background:linear-gradient(var(--pl-accent),var(--pl-line) 40%,transparent)}
.pl-vhead a{writing-mode:vertical-rl;white-space:nowrap;font-size:12px;font-weight:700;color:var(--pl-accent-ink);letter-spacing:.14em}

/* ---------- اجزای مشترک ---------- */
.pl-thumb{
  position:relative;display:block;overflow:hidden;
  border-radius:var(--pl-r-md);background:var(--pl-surface-2);max-width:100%;
}
.pl-thumb__cap{
  position:absolute;inset-block-end:8px;inset-inline-start:10px;
  color:#fff;font-size:11.5px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.55);
}
.pl-tag{display:inline-block;font-size:11.5px;font-weight:700;color:var(--pl-accent-ink)}
.pl-meta{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:12px;color:var(--pl-muted);font-variant-numeric:tabular-nums;
}
.pl-dot{width:3px;height:3px;border-radius:50%;background:var(--pl-line-strong);display:inline-block}
.pl-excerpt{
  color:var(--pl-ink-2);font-size:13.5px;line-height:1.9;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}

/* ---------- کارتِ مطلب: باکس دور هر آیتم (تنظیم item_boxed) ---------- */
.pl-section--cards .pl-card,
.pl-section--cards .pl-niche,
.pl-section--cards .pl-ranked li,
.pl-section--cards .pl-compact li{
  background:var(--pl-surface);
  border:1px solid var(--pl-line);
  border-radius:16px;
  overflow:hidden;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.pl-section--cards .pl-card:hover,
.pl-section--cards .pl-niche:hover,
.pl-section--cards .pl-ranked li:hover,
.pl-section--cards .pl-compact li:hover{
  border-color:var(--pl-line-strong);
  box-shadow:0 1px 2px rgba(19,32,41,.05),0 16px 34px -26px rgba(19,32,41,.55);
  transform:translateY(-2px);
}

/* کارت تصویردار: تصویر تا لبه، متن با حاشیه‌ی داخلی */
.pl-section--cards .pl-card>a{gap:0;height:100%}
.pl-section--cards .pl-card .pl-thumb{border-radius:0}
.pl-section--cards .pl-card__body{padding:14px clamp(14px,1.4vw,18px) clamp(14px,1.4vw,18px)}
.pl-section--cards .pl-card--horizontal>a{gap:0}
.pl-section--cards .pl-card--horizontal .pl-card__body{padding:14px}

/* طاقچه: قاب گنبدی داخل کارت می‌ماند */
.pl-section--cards .pl-niche{padding:clamp(12px,1.2vw,16px) clamp(12px,1.2vw,16px) clamp(14px,1.4vw,18px)}
.pl-section--cards .pl-niche__cat{margin-top:12px}

/* شماره‌دار: خط بالای آیتم جایش را به کارت می‌دهد، رنگ رتبه‌ی اول می‌ماند */
.pl-section--cards .pl-ranked li{border-top:0;padding:clamp(14px,1.4vw,18px);align-items:flex-start}
.pl-section--cards .pl-ranked li:first-child{border-color:var(--pl-saffron)}
.pl-section--cards .pl-rank{font-size:38px}

/* فشرده: خط جداکننده جایش را به کارت می‌دهد */
.pl-section--cards .pl-compact li{border-top:0;padding:10px 12px}
.pl-section--cards .pl-compact li+li{margin-top:10px}
.pl-section--cards .pl-compact a{padding-block:0}

/* ---------- کارت ---------- */
.pl-card a{display:flex;flex-direction:column;gap:11px;height:100%}
.pl-card__body{display:flex;flex-direction:column;gap:7px}
.pl-card h4{font-size:17px;font-weight:700;line-height:1.55}
.pl-card a:hover h4{color:var(--pl-accent-ink)}
.pl-card--horizontal a{flex-direction:row;gap:14px;align-items:flex-start}
.pl-card--horizontal .pl-thumb{flex:0 0 clamp(96px,22%,168px)}
.pl-card--horizontal .pl-card__body{flex:1;min-width:0}
.pl-card--minimal h4,.pl-card--text h4{font-size:16px}

/* ---------- grid / list / compact ---------- */
.pl-grid{
  --pl-grid-gap:clamp(18px,2.6vw,32px);
  display:grid;gap:var(--pl-grid-gap);
  /* auto-fit تا وقتی آیتم‌ها کمتر از ستون‌ها باشند، ردیف را پر کنند
     و جای خالی در انتهای ردیف نماند. */
  grid-template-columns:repeat(
    auto-fit,
    minmax(calc((100% - (var(--pl-cols,3) - 1) * var(--pl-grid-gap)) / var(--pl-cols,3)),1fr)
  );
}
.pl-list{display:flex;flex-direction:column;gap:clamp(16px,2vw,24px)}
.pl-compact li{border-top:1px solid var(--pl-line)}
.pl-compact li:first-child{border-top:0}
.pl-compact a{display:grid;grid-template-columns:clamp(72px,28%,110px) 1fr;gap:12px;padding-block:13px;align-items:center}
.pl-compact h4{font-size:14.5px;font-weight:600;line-height:1.6;margin-bottom:5px}
.pl-compact a:hover h4{color:var(--pl-accent-ink)}

/* ---------- spotlight ---------- */
.pl-spotlight{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(20px,3vw,40px)}
.pl-lead .pl-thumb{margin-bottom:14px}
.pl-lead h3{
  font-family:var(--pl-display);font-weight:700;
  font-size:clamp(27px,4vw,48px);line-height:1.12;margin-block:8px 12px;
}
.pl-lead a:hover h3{color:var(--pl-accent-ink)}
.pl-lead .pl-excerpt{font-size:15px;-webkit-line-clamp:4;max-width:62ch}
.pl-lead .pl-meta{margin-top:12px}
.pl-lead--sm h3{font-size:clamp(22px,2.9vw,32px)}
.pl-stack li{border-top:1px solid var(--pl-line)}
.pl-stack li:first-child{border-top:0}
.pl-stack a{display:grid;grid-template-columns:clamp(88px,26%,148px) 1fr;gap:14px;padding-block:15px;align-items:center}
.pl-stack h4{font-size:16px;font-weight:700;line-height:1.55;margin-block:4px 6px}
.pl-stack a:hover h4{color:var(--pl-accent-ink)}

/* ---------- magazine ---------- */
.pl-magazine{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,38px)}
.pl-mini{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,26px)}
.pl-mini h4{font-size:15px;font-weight:600;line-height:1.6;margin-block:8px 5px}
.pl-mini a:hover h4{color:var(--pl-accent-ink)}

/* ---------- numbered ---------- */
.pl-ranked{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--pl-gap)}
.pl-ranked li{display:flex;gap:11px;border-top:2px solid var(--pl-line-strong);padding-top:13px}
.pl-ranked li:first-child{border-color:var(--pl-saffron)}
.pl-rank{
  font-family:var(--pl-display);font-weight:700;font-size:44px;line-height:.85;
  color:var(--pl-line-strong);flex:0 0 auto;font-variant-numeric:tabular-nums;
}
.pl-ranked li:first-child .pl-rank{color:var(--pl-saffron)}
.pl-ranked h4{font-size:14.5px;font-weight:600;line-height:1.6;margin-bottom:5px}
.pl-ranked a:hover h4{color:var(--pl-accent-ink)}

/* ---------- carousel ---------- */
.pl-rail-wrap{position:relative}
.pl-rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(180px,1fr);
  gap:var(--pl-gap);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:8px;scrollbar-width:thin;
}
.pl-rail>*{scroll-snap-align:start}
.pl-rail h4{font-size:14.5px;font-weight:600;line-height:1.6;margin-top:9px}
.pl-rail a:hover h4{color:var(--pl-accent-ink)}

/* ---------- tabs ---------- */
.pl-tabs__bar{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--pl-line);margin-bottom:20px}
.pl-tabs__bar button{
  font:inherit;background:none;border:0;cursor:pointer;
  font-size:14px;font-weight:700;color:var(--pl-muted);
  padding:9px 15px;border-bottom:2px solid transparent;margin-bottom:-1px;
}
.pl-tabs__bar button[aria-selected="true"]{color:var(--pl-ink);border-color:var(--pl-accent)}

/* ---------- notch ---------- */
.pl-notch{display:grid;grid-template-columns:repeat(var(--pl-cols,2),minmax(0,1fr));gap:clamp(24px,3vw,38px)}
.pl-ncard{position:relative;--pl-btn:44px;--pl-well:29px;--pl-seat:35px;--pl-lift:37px}
.pl-ncard__box{
  background:var(--pl-surface);border:1px solid var(--pl-line);
  border-radius:var(--pl-r-lg);overflow:hidden;
  display:flex;flex-direction:column;height:100%;
}
.pl-ncard__main{padding:clamp(15px,1.8vw,21px);display:flex;flex-direction:column;gap:12px}
.pl-ncard__top{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--pl-muted)}
.pl-ncard__pill{
  background:var(--pl-accent-soft);color:var(--pl-accent-ink);
  font-size:11.5px;font-weight:700;padding:3px 11px;border-radius:100px;
}
.pl-ncard h4{font-size:clamp(16px,1.9vw,19px);font-weight:700;line-height:1.6}
.pl-ncard a:hover h4{color:var(--pl-accent-ink)}
.pl-ncard__ex{
  color:var(--pl-ink-2);font-size:13.5px;line-height:1.9;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.pl-ncard__foot{
  margin-top:auto;display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  min-height:74px;background:var(--pl-surface-2);border-top:1px solid var(--pl-line);
  padding:12px 18px;padding-inline-end:calc(var(--pl-seat) + var(--pl-well) + 14px);
  font-size:12px;color:var(--pl-muted);font-variant-numeric:tabular-nums;
  -webkit-mask:radial-gradient(circle var(--pl-well) at var(--pl-seat) calc(100% - var(--pl-lift)),transparent 98%,#000 100%);
          mask:radial-gradient(circle var(--pl-well) at var(--pl-seat) calc(100% - var(--pl-lift)),transparent 98%,#000 100%);
}
.pl-ncard__foot b{color:var(--pl-ink);font-weight:700}
.pl-ncard__stats{display:flex;gap:12px}
.pl-ncard__go{
  position:absolute;z-index:2;
  left:calc(var(--pl-seat) - var(--pl-btn)/2);
  bottom:calc(var(--pl-lift) - var(--pl-btn)/2);
  width:var(--pl-btn);height:var(--pl-btn);border-radius:50%;
  display:grid;place-items:center;
  background:var(--pl-surface);border:1px solid var(--pl-line-strong);
  color:var(--pl-ink);font-size:19px;line-height:1;
  transition:background .18s,color .18s,border-color .18s,transform .18s;
}
.pl-ncard:hover .pl-ncard__go{background:var(--pl-accent);border-color:var(--pl-accent);color:#fff}
.pl-ncard__go:hover{transform:translateX(-3px)}
/* حالت «بیرون کارت» */
.pl-notch--out{padding-left:58px}
.pl-notch--out .pl-ncard__box{border-radius:var(--pl-r-lg) var(--pl-r-lg) var(--pl-r-lg) 42px}
.pl-notch--out .pl-ncard__foot{-webkit-mask:none;mask:none;padding-inline-end:18px;padding-left:34px}
.pl-notch--out .pl-ncard__go{left:-52px;bottom:5px}

/* ---------- index ---------- */
.pl-index{border-top:2px solid var(--pl-line-strong)}
.pl-index li{border-bottom:1px solid var(--pl-line)}
.pl-index a{
  display:grid;grid-template-columns:90px 1fr auto 84px;align-items:center;
  gap:clamp(12px,2vw,26px);padding:clamp(12px,1.7vw,18px) 14px;
  margin-inline:-14px;border-radius:var(--pl-r-md);transition:background .2s;
}
.pl-index a:hover{background:var(--pl-accent-soft)}
.pl-index__cat{font-size:12px;font-weight:700;color:var(--pl-accent-ink)}
.pl-index__title{font-family:var(--pl-display);font-weight:700;font-size:clamp(20px,2.5vw,30px);line-height:1.3;transition:transform .2s}
.pl-index a:hover .pl-index__title{transform:translateX(-7px)}
.pl-index__meta{font-size:12px;color:var(--pl-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.pl-index__thumb{
  display:block;height:54px;border-radius:6px;overflow:hidden;background:var(--pl-surface-2);
  opacity:0;transform:scale(.92);transition:opacity .22s,transform .22s;
}
.pl-index a:hover .pl-index__thumb{opacity:1;transform:none}

/* ---------- poster ---------- */
.pl-posters{display:grid;grid-template-columns:repeat(var(--pl-cols,4),minmax(0,1fr));gap:var(--pl-gap)}
.pl-poster{position:relative;display:block;overflow:hidden;border-radius:var(--pl-r-lg)}
.pl-poster__art{display:block;background:var(--pl-surface-2)}
.pl-poster::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(6,14,17,.9) 6%,rgba(6,14,17,.12) 58%,rgba(6,14,17,.4));
}
.pl-poster__spine{
  position:absolute;top:14px;right:14px;z-index:2;writing-mode:vertical-rl;white-space:nowrap;
  font-size:11.5px;font-weight:800;letter-spacing:.2em;color:#fff;opacity:.92;
}
.pl-poster__time{
  position:absolute;top:14px;left:14px;z-index:2;
  font-size:11px;font-weight:700;color:#fff;background:rgba(255,255,255,.18);
  padding:4px 10px;border-radius:100px;
}
.pl-poster__body{position:absolute;inset-inline:0;bottom:0;z-index:2;padding:16px;display:block}
.pl-poster__body h4{font-family:var(--pl-display);font-weight:700;font-size:clamp(18px,2vw,23px);line-height:1.3;color:#fff}
.pl-poster__meta{display:block;margin-top:6px;font-size:12px;color:rgba(255,255,255,.74)}
.pl-poster:hover h4{text-decoration:underline;text-underline-offset:5px}

/* ---------- quote ---------- */
.pl-quotes{display:grid;grid-template-columns:repeat(var(--pl-cols,3),minmax(0,1fr));gap:var(--pl-gap)}
.pl-quote{
  position:relative;overflow:hidden;margin:0;
  background:var(--pl-surface);border:1px solid var(--pl-line);
  border-radius:var(--pl-r-lg);padding:clamp(18px,2.2vw,26px);
  display:flex;flex-direction:column;gap:15px;
}
.pl-quote__mark{
  position:absolute;top:-38px;inset-inline-start:8px;z-index:0;
  font-family:var(--pl-display);font-size:160px;line-height:1;color:var(--pl-accent-soft);
}
.pl-quote blockquote{
  position:relative;z-index:1;margin:0;font-family:var(--pl-display);font-weight:600;
  font-size:clamp(19px,2.1vw,25px);line-height:1.55;color:var(--pl-ink);
}
.pl-quote figcaption{
  position:relative;z-index:1;margin-top:auto;border-top:1px solid var(--pl-line);
  padding-top:12px;font-size:12.5px;color:var(--pl-muted);
}
.pl-quote figcaption b{display:block;margin-bottom:3px;font-size:13.5px;color:var(--pl-ink)}

/* ---------- sunburst ---------- */
.pl-sun{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(18px,3.6vw,50px);align-items:center}
.pl-sun__art{
  display:block;aspect-ratio:1/1;background:var(--pl-surface-2);
  clip-path:polygon(50% 0%,61.7% 21.8%,85.4% 14.6%,78.2% 38.3%,100% 50%,78.2% 61.7%,85.4% 85.4%,61.7% 78.2%,50% 100%,38.3% 78.2%,14.6% 85.4%,21.8% 61.7%,0% 50%,21.8% 38.3%,14.6% 14.6%,38.3% 21.8%);
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.pl-sun:hover .pl-sun__art{transform:rotate(11.25deg)}
.pl-sun__txt{display:grid;grid-template-columns:auto 1fr;gap:clamp(13px,2vw,24px);align-items:start}
.pl-sun__rail{
  writing-mode:vertical-rl;white-space:nowrap;display:flex;align-items:center;gap:18px;
  font-size:11.5px;letter-spacing:.16em;color:var(--pl-muted);
  padding-top:6px;border-inline-end:1px solid var(--pl-line);padding-inline-end:13px;
  font-variant-numeric:tabular-nums;
}
.pl-sun__kicker{font-size:12.5px;font-weight:800;color:var(--pl-accent-ink);letter-spacing:.06em}
.pl-sun h3{font-family:var(--pl-display);font-weight:700;font-size:clamp(27px,4.6vw,56px);line-height:1.06;margin-block:9px 13px}
.pl-sun p{color:var(--pl-ink-2);font-size:15px;line-height:1.9;max-width:56ch}

/* ---------- alcove ---------- */
.pl-alcove{display:grid;grid-template-columns:repeat(var(--pl-cols,4),minmax(0,1fr));gap:clamp(16px,2.6vw,32px)}
.pl-alcove>*:nth-child(even){margin-top:clamp(16px,4vw,52px)}
.pl-niche__art{
  display:block;aspect-ratio:3/4;background:var(--pl-surface-2);overflow:hidden;
  border-radius:999px 999px var(--pl-r-sm) var(--pl-r-sm)/46% 46% 0 0;
  transition:filter .25s;
}
.pl-niche:hover .pl-niche__art{filter:saturate(1.12) brightness(1.05)}
.pl-niche__cat{display:block;margin-top:13px;font-size:11.5px;font-weight:800;letter-spacing:.1em;color:var(--pl-accent-ink)}
.pl-niche h4{font-family:var(--pl-display);font-weight:700;font-size:clamp(18px,2.1vw,24px);line-height:1.28;margin-block:6px 7px}
.pl-niche:hover h4{color:var(--pl-accent-ink)}
.pl-niche__meta{font-size:12px;color:var(--pl-muted);font-variant-numeric:tabular-nums}

/* ---------- terms / richtext ---------- */
.pl-terms{display:flex;flex-wrap:wrap;gap:8px}
.pl-terms a{
  display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--pl-line);border-radius:100px;padding:6px 14px;
  font-size:13px;background:var(--pl-surface);transition:.16s;
}
.pl-terms a:hover{border-color:var(--pl-accent);color:var(--pl-accent-ink);background:var(--pl-accent-soft)}
.pl-terms b{font-size:11.5px;color:var(--pl-muted);font-variant-numeric:tabular-nums}
.pl-terms--list{display:block}
.pl-terms--list .pl-terms{flex-direction:column;gap:0}
.pl-terms--list .pl-terms a{border:0;border-bottom:1px solid var(--pl-line);border-radius:0;padding:11px 0;width:100%}
.pl-prose{color:var(--pl-ink-2);line-height:2}
.pl-prose h2,.pl-prose h3{font-family:var(--pl-display);margin-block:1em .4em;color:var(--pl-ink)}
.pl-w-narrow .pl-prose{max-width:62ch;margin-inline:auto}
.pl-w-normal .pl-prose{max-width:84ch}

/* ---------- تبلیغات ---------- */
.pl-ad{position:relative}
.pl-ad__label{
  position:absolute;top:2px;inset-inline-start:-20px;writing-mode:vertical-rl;
  font-size:9.5px;letter-spacing:.22em;color:var(--pl-muted);opacity:.75;
}
.pl-ad__box{
  position:relative;width:100%;overflow:hidden;border-radius:var(--pl-r-md);
  background:var(--pl-surface-2);
}
.pl-ad__box--html{display:grid;place-items:center}
.pl-ad__box--empty{
  display:grid;place-items:center;align-content:center;gap:5px;text-align:center;
  border:1px dashed var(--pl-line-strong);background:var(--pl-surface-2);
  color:var(--pl-muted);padding:14px;
}
.pl-ad__box--empty b{color:var(--pl-ink-2);font-size:13.5px;font-weight:700}
.pl-ad__box--empty code{
  font-size:11px;direction:ltr;background:var(--pl-surface);
  border:1px solid var(--pl-line);border-radius:100px;padding:2px 9px;color:var(--pl-accent-ink);
}
.pl-ad__slide{position:absolute;inset:0}
.pl-ad__slide[hidden]{display:none}

/* ---------- showcase — المان بالای صفحه ---------- */
.pl-showcase{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(230px,23%,320px);
  gap:clamp(14px,1.8vw,24px);align-items:stretch;
}
.pl-showcase__stage{position:relative;border-radius:20px;overflow:hidden;background:var(--pl-surface-2)}
.pl-slide{position:relative}
.pl-slide[hidden]{display:none!important}
.pl-slide>a{display:block;position:relative}
.pl-slide__art{display:block;width:100%;background:var(--pl-surface-2)}
.pl-slide>a::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(6,14,17,.92) 4%,rgba(6,14,17,.45) 42%,rgba(6,14,17,.1) 72%);
}
.pl-slide__body{position:absolute;inset-inline:0;bottom:0;z-index:2;padding:clamp(18px,2.6vw,38px);color:#fff;display:block}
.pl-slide__cat{
  display:inline-block;margin-bottom:10px;font-size:11.5px;font-weight:800;letter-spacing:.08em;
  background:rgba(255,255,255,.16);padding:4px 12px;border-radius:100px;
}
.pl-slide__body h3{
  font-family:var(--pl-display);font-weight:700;color:#fff;
  font-size:clamp(22px,2.9vw,40px);line-height:1.14;max-width:30ch;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.pl-slide__body p{
  margin-top:10px;font-size:14.5px;line-height:1.9;color:rgba(255,255,255,.82);max-width:56ch;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.pl-slide__meta{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;
  font-size:12px;color:rgba(255,255,255,.7);font-variant-numeric:tabular-nums;
}
.pl-slide__meta .pl-dot{background:rgba(255,255,255,.5)}
.pl-showcase__nav{display:flex;flex-direction:column;gap:5px;justify-content:center}
.pl-showcase__nav button{
  width:100%;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;
  text-align:start;padding:11px 13px;border:0;border-radius:13px;cursor:pointer;
  background:transparent;color:var(--pl-ink-2);font:inherit;
  transition:background .18s ease,color .18s ease;
}
.pl-showcase__nav button:hover{background:var(--pl-accent-soft)}
.pl-showcase__nav button[aria-selected="true"]{
  background:var(--pl-surface);color:var(--pl-ink);
  box-shadow:0 1px 2px rgba(19,32,41,.05),0 12px 26px -22px rgba(19,32,41,.6);
}
.pl-showcase__n{font-family:var(--pl-display);font-size:23px;line-height:1;color:var(--pl-line-strong);font-variant-numeric:tabular-nums}
.pl-showcase__nav button[aria-selected="true"] .pl-showcase__n{color:var(--pl-accent)}
.pl-showcase__t{font-size:13px;font-weight:600;line-height:1.65}

/* ---------- پرخواننده‌ها با تصویر کوچک ---------- */
.pl-ranked--img{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))}
.pl-ranked--img li{display:grid;grid-template-columns:auto minmax(0,1fr) 72px;gap:12px;align-items:center}
.pl-ranked--img h4{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pl-ranked__thumb{display:block;width:72px;height:72px;border-radius:12px;overflow:hidden;background:var(--pl-surface-2)}
.pl-ranked--img .pl-rank{font-size:34px}
.pl-ranked--img h4{margin-bottom:4px}

/* ---------- اسلایدر پست بزرگ پرونده‌ها ---------- */
.pl-maglead{position:relative}
.pl-maglead .pl-lead[hidden]{display:none!important}
.pl-maglead__dots{display:flex;gap:7px;margin-top:14px}
.pl-maglead__dots button{
  width:26px;height:4px;border:0;border-radius:100px;padding:0;cursor:pointer;
  background:var(--pl-line-strong);transition:background .18s ease,width .18s ease;
}
.pl-maglead__dots button[aria-selected="true"]{background:var(--pl-accent);width:38px}

/* ---------- ردیف و ستون (چیدمان آزاد) ---------- */
.pl-rowsec{--pl-row-cols:1fr;--pl-row-gap:26px;--pl-row-align:stretch}
.pl-row{
  display:grid;
  grid-template-columns:var(--pl-row-cols);
  gap:var(--pl-row-gap);
  align-items:var(--pl-row-align);
}
.pl-col{
  --pl-col-gap:26px;
  display:flex;flex-direction:column;gap:var(--pl-col-gap);
  min-width:0;
}
/* بخش داخل ستون فاصله‌ی بخش سطح‌بالا را نمی‌گیرد؛ فاصله را ستون می‌دهد */
.pl-col > .pl-section{margin-top:0}
.pl-col--boxed{
  background:var(--pl-surface);border:1px solid var(--pl-line);
  border-radius:18px;padding:clamp(14px,1.8vw,22px);
}
.pl-col--sticky{position:sticky;top:16px;align-self:start}

/* ردیف‌های تودرتو فاصله‌ی اضافه نگیرند */
.pl-col .pl-rowsec{margin-top:0}

/* زیر هم شدن بر اساس data-stack */
@media (max-width:1100px){
  .pl-rowsec[data-stack="1100"] .pl-row{grid-template-columns:1fr}
}
@media (max-width:900px){
  .pl-rowsec[data-stack="900"] .pl-row{grid-template-columns:1fr}
  .pl-col--sticky{position:static}
}
@media (max-width:640px){
  .pl-rowsec[data-stack="640"] .pl-row{grid-template-columns:1fr}
  .pl-rowsec .pl-row{--pl-row-gap:22px}
}

/* ---------- ریسپانسیو ---------- */
@media (max-width:1000px){
  .pl-showcase{grid-template-columns:1fr}
  .pl-showcase__nav{flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:6px;scrollbar-width:thin}
  .pl-showcase__nav li{flex:0 0 min(240px,72%)}
  .pl-spotlight,.pl-magazine{grid-template-columns:1fr}
  .pl-sun{grid-template-columns:1fr;gap:22px}
  .pl-ranked{grid-template-columns:repeat(3,1fr)}
  .pl-grid,.pl-posters,.pl-alcove,.pl-quotes,.pl-notch{--pl-cols:2}
  .pl-index a{grid-template-columns:80px 1fr auto}
  .pl-index__thumb{display:none}
}
@media (max-width:640px){
  .pl-section--boxed{border-radius:16px;padding:16px}
  .pl-ranked--img li{grid-template-columns:auto minmax(0,1fr) 56px}
  .pl-ranked__thumb{width:56px;height:56px}
  .pl-section--cards .pl-card,
  .pl-section--cards .pl-niche,
  .pl-section--cards .pl-ranked li{border-radius:14px}
  .pl-grid,.pl-posters,.pl-quotes,.pl-notch{--pl-cols:1}
  .pl-ranked{grid-template-columns:1fr 1fr}
  .pl-section--vertical{grid-template-columns:1fr;gap:12px}
  .pl-vhead{flex-direction:row;align-items:baseline}
  .pl-vhead h2,.pl-vhead a{writing-mode:horizontal-tb}
  .pl-vhead__rule{flex:1;width:auto;height:1px;background:var(--pl-line);align-self:center}
  .pl-sun__txt{grid-template-columns:1fr}
  .pl-sun__rail{writing-mode:horizontal-tb;border:0;padding:0 0 10px;gap:12px;border-bottom:1px solid var(--pl-line)}
  .pl-notch--out{padding-left:50px}
  .pl-ad__label{display:none}
  .pl-card--horizontal a{gap:11px}
}
@media (prefers-reduced-motion:reduce){
  .pl-region *{transition:none!important;scroll-behavior:auto!important}
}

/* pl-anchor-fix */
.pl-lead>a,
.pl-mini article>a,
.pl-rail article>a,
.pl-ranked li>a,
.pl-niche>a,
.pl-sun>a,
.pl-ncard__main>a{display:block}
.pl-lead>a .pl-tag{margin-top:10px}

/* =====================================================
   قاب بیرونی صفحه
   کل ناحیه داخل یک باکس طوسی روشن می‌نشیند و بخش‌های
   boxed سفید روی آن قرار می‌گیرند. رنگ از همان توکن
   --pl-ground می‌آید، پس در حالت تیره خودش می‌چرخد.
   ===================================================== */

.pl-region{
  background:var(--pl-ground);
  border:1px solid var(--pl-line);
  border-radius:var(--pl-r-lg);
  padding:clamp(16px,2.2vw,32px);
  margin-block:clamp(16px,2vw,28px);

  /* داخل قاب، ریتم عمودی کمی جمع‌تر از حالت باز است */
  --pl-space:clamp(13px,1.6vw,26px);
}

.pl-region>.pl-section:first-child{margin-top:0}

/* =====================================================
   پس‌زمینه‌ی موجی و قاب شیشه‌ای
   این بلوک قاب طوسی توپر بالا را جایگزین می‌کند.
   طرح موج SVG درون‌خطی است: بدون درخواست شبکه، برداری.
   ===================================================== */

:root{
  background-color:#F2F7FC;
  background-image:
    radial-gradient(1100px 620px at 82% -8%, rgba(140,190,235,.30), transparent 62%),
    radial-gradient(900px 560px at 8% 16%, rgba(120,205,205,.22), transparent 60%),
    url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1400' height='640' viewBox='0 0 1400 640'><g fill='none' stroke='%23A8CDEA' stroke-width='1.15' opacity='.5'><path d='M-120 70 C 180 6, 380 134, 660 70 S 1120 6, 1520 70'/><path d='M-120 150 C 180 86, 380 214, 660 150 S 1120 86, 1520 150'/><path d='M-120 230 C 180 166, 380 294, 660 230 S 1120 166, 1520 230'/><path d='M-120 310 C 180 246, 380 374, 660 310 S 1120 246, 1520 310'/><path d='M-120 390 C 180 326, 380 454, 660 390 S 1120 326, 1520 390'/><path d='M-120 470 C 180 406, 380 534, 660 470 S 1120 406, 1520 470'/><path d='M-120 550 C 180 486, 380 614, 660 550 S 1120 486, 1520 550'/></g></svg>");
  background-repeat:no-repeat,no-repeat,repeat;
  background-size:auto,auto,1400px 640px;
  background-attachment:fixed,fixed,fixed;
}

body{background:transparent}

/* قاب اصلی: شیشه‌ی مات روی طرح */
.pl-region{
  background:rgba(255,255,255,.52);
  -webkit-backdrop-filter:blur(26px) saturate(150%);
  backdrop-filter:blur(26px) saturate(150%);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 26px 70px -34px rgba(19,32,41,.30);
}

/* بخش‌های داخل قاب کمی مات‌ترند تا متن خوانا بماند */
.pl-section--boxed{
  background:rgba(255,255,255,.80);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border-color:rgba(255,255,255,.85);
}

/* ---------- حالت تیره ---------- */

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    background-color:#0B1216;
    background-image:
      linear-gradient(rgba(11,18,22,.88),rgba(11,18,22,.88)),
      radial-gradient(1100px 620px at 82% -8%, rgba(60,130,180,.34), transparent 62%),
      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1400' height='640' viewBox='0 0 1400 640'><g fill='none' stroke='%236FB6DC' stroke-width='1.15' opacity='.55'><path d='M-120 70 C 180 6, 380 134, 660 70 S 1120 6, 1520 70'/><path d='M-120 150 C 180 86, 380 214, 660 150 S 1120 86, 1520 150'/><path d='M-120 230 C 180 166, 380 294, 660 230 S 1120 166, 1520 230'/><path d='M-120 310 C 180 246, 380 374, 660 310 S 1120 246, 1520 310'/><path d='M-120 390 C 180 326, 380 454, 660 390 S 1120 326, 1520 390'/><path d='M-120 470 C 180 406, 380 534, 660 470 S 1120 406, 1520 470'/><path d='M-120 550 C 180 486, 380 614, 660 550 S 1120 486, 1520 550'/></g></svg>");
    background-repeat:no-repeat,no-repeat,repeat;
    background-size:auto,auto,1400px 640px;
    background-attachment:fixed,fixed,fixed;
  }

  :root:not([data-theme="light"]) .pl-region{
    background:rgba(20,30,34,.55);
    border-color:rgba(120,160,175,.20);
    box-shadow:0 26px 70px -34px rgba(0,0,0,.60);
  }

  :root:not([data-theme="light"]) .pl-section--boxed{
    background:rgba(20,30,34,.78);
    border-color:rgba(120,160,175,.18);
  }
}

[data-theme="dark"]{
  background-color:#0B1216;
  background-image:
    linear-gradient(rgba(11,18,22,.88),rgba(11,18,22,.88)),
    radial-gradient(1100px 620px at 82% -8%, rgba(60,130,180,.34), transparent 62%),
    url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1400' height='640' viewBox='0 0 1400 640'><g fill='none' stroke='%236FB6DC' stroke-width='1.15' opacity='.55'><path d='M-120 70 C 180 6, 380 134, 660 70 S 1120 6, 1520 70'/><path d='M-120 150 C 180 86, 380 214, 660 150 S 1120 86, 1520 150'/><path d='M-120 230 C 180 166, 380 294, 660 230 S 1120 166, 1520 230'/><path d='M-120 310 C 180 246, 380 374, 660 310 S 1120 246, 1520 310'/><path d='M-120 390 C 180 326, 380 454, 660 390 S 1120 326, 1520 390'/><path d='M-120 470 C 180 406, 380 534, 660 470 S 1120 406, 1520 470'/><path d='M-120 550 C 180 486, 380 614, 660 550 S 1120 486, 1520 550'/></g></svg>");
  background-repeat:no-repeat,no-repeat,repeat;
  background-size:auto,auto,1400px 640px;
  background-attachment:fixed,fixed,fixed;
}

[data-theme="dark"] .pl-region{
  background:rgba(20,30,34,.55);
  border-color:rgba(120,160,175,.20);
  box-shadow:0 26px 70px -34px rgba(0,0,0,.60);
}

[data-theme="dark"] .pl-section--boxed{
  background:rgba(20,30,34,.78);
  border-color:rgba(120,160,175,.18);
}

/* =====================================================
   پس‌زمینه‌ی صفحه و قاب بیرونی

   بدون هیچ الگوی خطی: دانه‌بندی ریز (feTurbulence) به‌جای
   طرح، به‌علاوه‌ی دو هاله‌ی بسیار بزرگ و کم‌رنگ. هر الگوی
   تکرارشونده‌ای — هرچقدر محو — با متن رقابت می‌کند؛ دانه
   این کار را نمی‌کند چون تکرارش دیده نمی‌شود.
   ===================================================== */

:root{
  background-color:#F4F7FA;
  background-image:
    radial-gradient(1400px 900px at 88% -14%, rgba(126,170,214,.13), transparent 64%),
    radial-gradient(1200px 820px at 2% 10%, rgba(112,186,182,.10), transparent 62%),
    url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23g)' opacity='.055'/></svg>");
  background-repeat:no-repeat,no-repeat,repeat;
  background-size:auto,auto,180px 180px;
  background-attachment:fixed,fixed,fixed;
}

body{background:transparent}

/* قاب بیرونی: مات، بدون درخشش */
.pl-region{
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border:1px solid rgba(150,175,195,.22);
  border-radius:var(--pl-r-lg);
  padding:clamp(16px,2.2vw,32px);
  margin-block:clamp(16px,2vw,28px);
  box-shadow:0 18px 50px -34px rgba(19,32,41,.22);

  /* داخل قاب، ریتم عمودی جمع‌تر از حالت باز */
  --pl-space:clamp(13px,1.6vw,26px);
}

.pl-region>.pl-section:first-child{margin-top:0}

/* بخش‌های داخل قاب: سفید صاف، تا متن کاملاً خوانا بماند */
.pl-section--boxed{
  background:var(--pl-surface);
  border-color:rgba(150,175,195,.20);
}

/* ---------- حالت تیره ---------- */

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    background-color:#0C1317;
    background-image:
      radial-gradient(1400px 900px at 88% -14%, rgba(70,130,175,.16), transparent 64%),
      radial-gradient(1200px 820px at 2% 10%, rgba(60,140,136,.12), transparent 62%),
      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23g)' opacity='.07'/></svg>");
    background-repeat:no-repeat,no-repeat,repeat;
    background-size:auto,auto,180px 180px;
    background-attachment:fixed,fixed,fixed;
  }

  :root:not([data-theme="light"]) .pl-region{
    background:rgba(20,30,34,.58);
    border-color:rgba(120,160,175,.16);
    box-shadow:0 18px 50px -34px rgba(0,0,0,.55);
  }

  :root:not([data-theme="light"]) .pl-section--boxed{
    background:var(--pl-surface);
    border-color:rgba(120,160,175,.16);
  }
}

[data-theme="dark"]{
  background-color:#0C1317;
  background-image:
    radial-gradient(1400px 900px at 88% -14%, rgba(70,130,175,.16), transparent 64%),
    radial-gradient(1200px 820px at 2% 10%, rgba(60,140,136,.12), transparent 62%),
    url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23g)' opacity='.07'/></svg>");
  background-repeat:no-repeat,no-repeat,repeat;
  background-size:auto,auto,180px 180px;
  background-attachment:fixed,fixed,fixed;
}

[data-theme="dark"] .pl-region{
  background:rgba(20,30,34,.58);
  border-color:rgba(120,160,175,.16);
  box-shadow:0 18px 50px -34px rgba(0,0,0,.55);
}

[data-theme="dark"] .pl-section--boxed{
  background:var(--pl-surface);
  border-color:rgba(120,160,175,.16);
}

/* =====================================================
   ویترین — سه اصلاح
   ۱. تصویر ارتفاع ردیف را پر می‌کند (نسبت ثابت کنار می‌رود)
   ۲. فهرست تیترها در همان ارتفاع قفل و اسکرول می‌شود
   ۳. آیتم در حال نمایش، طوسی و برجسته
   ===================================================== */

.pl-showcase{align-items:stretch}

.pl-showcase__stage{display:grid;min-height:0}

.pl-slide{min-height:0}

.pl-slide>a{display:flex;flex-direction:column;height:100%}

/*
 * نسبت تصویر روی خود عنصر inline نوشته می‌شود، پس برای آزاد کردنش
 * important لازم است. از این پس ارتفاع را ردیف تعیین می‌کند، نه نسبت.
 */
.pl-slide__art{
  aspect-ratio:auto!important;
  flex:1 1 auto;
  min-height:clamp(260px,28vw,460px);
}

.pl-slide__art img{height:100%;object-fit:cover}

/* آیتم فعال — حاشیه‌ی شفاف روی همه، تا فعال‌شدن جابه‌جایی نسازد */
.pl-showcase__nav button{border-inline-start:3px solid transparent}

.pl-showcase__nav button[aria-selected="true"]{
  background:var(--pl-surface-2);
  border-inline-start-color:var(--pl-accent);
  font-weight:700;
}

@media (min-width:901px){
  .pl-showcase__nav{
    justify-content:flex-start;
    min-height:0;
    max-height:100%;
    overflow-y:auto;
    padding-inline-end:6px;
    scrollbar-width:thin;
    scrollbar-color:var(--pl-line-strong) transparent;
    scroll-behavior:smooth;
  }
  .pl-showcase__nav::-webkit-scrollbar{width:6px}
  .pl-showcase__nav::-webkit-scrollbar-thumb{
    background:var(--pl-line-strong);border-radius:99px;
  }
  .pl-showcase__nav::-webkit-scrollbar-track{background:transparent}
}

/* در موبایل فهرست افقی است؛ قفل ارتفاع نباید اعمال شود */
@media (max-width:900px){
  .pl-showcase__nav{max-height:none;overflow-y:visible}
}

/* =====================================================
   ویترین — قفل ارتفاع
   بلوک قبلی ارتفاع را به تصویر سپرده بود و تصاویر با ابعاد
   مختلف قد اسلایدر را عوض می‌کردند. حالا ارتفاع روی صحنه
   قفل است و تصویر داخلش برش می‌خورد.
   ===================================================== */

.pl-showcase__stage{
  height:clamp(380px,44vw,580px);
  min-height:0;
}

.pl-slide{height:100%;min-height:0}

.pl-slide>a{display:flex;flex-direction:column;height:100%;min-height:0}

.pl-slide__art{
  aspect-ratio:auto!important;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
}

.pl-slide__art img{width:100%;height:100%;object-fit:cover}

/* بدنه ارتفاع ثابت می‌گیرد تا سهم تصویر هم ثابت بماند */
.pl-slide__body{flex:0 0 auto;min-height:0}

.pl-slide__body h3{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

.pl-slide__body p{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* =====================================================
   carousel — سه کارت در دید، بقیه با اسکرول چفتی
   ===================================================== */

.pl-rail{
  display:flex;
  gap:var(--pl-gap);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding-bottom:8px;
  scrollbar-width:thin;
  scrollbar-color:var(--pl-line-strong) transparent;
}

.pl-rail>article{
  flex:0 0 calc((100% - (var(--pl-gap) * 2)) / 3);
  min-width:0;
  scroll-snap-align:start;
}

.pl-rail::-webkit-scrollbar{height:6px}
.pl-rail::-webkit-scrollbar-thumb{background:var(--pl-line-strong);border-radius:99px}
.pl-rail::-webkit-scrollbar-track{background:transparent}

@media (max-width:900px){
  .pl-rail>article{flex-basis:calc((100% - var(--pl-gap)) / 2)}
}

@media (max-width:600px){
  .pl-rail>article{flex-basis:82%}
}

/* ریل: یک‌سوم عرض، ولی هرگز باریک‌تر از ۲۲۰ پیکسل.
   در ستون‌های باریک خودش به دو یا یک کارت می‌رسد. */
.pl-rail>article{
  flex:0 0 clamp(220px, calc((100% - (var(--pl-gap) * 2)) / 3), 100%);
}

/* ریل: تعداد کارت در دید از تنظیم columns همان بخش می‌آید.
   یک کارت یعنی تمام‌عرض، سه کارت یعنی یک‌سوم. */
.pl-rail>article{
  flex:0 0 clamp(
    220px,
    calc((100% - (var(--pl-gap) * (var(--pl-rail-cols, 3) - 1))) / var(--pl-rail-cols, 3)),
    100%
  );
}

/* =====================================================
   فهرست فشرده داخل ستون: قفل به ارتفاع ستون و اسکرول‌شونده
   بدون این، فهرست بلند ارتفاع کل ردیف را می‌کشد بالا و
   ستون کناری پایینش خالی می‌ماند.
   ===================================================== */

.pl-col>.pl-section{display:flex;flex-direction:column;min-height:0}

.pl-col>.pl-section>*:last-child{flex:1 1 auto;min-height:0}

.pl-col .pl-compact{
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--pl-line-strong) transparent;
  scroll-behavior:smooth;
  padding-inline-end:6px;
}

.pl-col .pl-compact::-webkit-scrollbar{width:6px}
.pl-col .pl-compact::-webkit-scrollbar-thumb{background:var(--pl-line-strong);border-radius:99px}
.pl-col .pl-compact::-webkit-scrollbar-track{background:transparent}

/* =====================================================
   فهرست فشرده داخل ستون: قفل به ارتفاع ستون و اسکرول‌شونده
   بدون این، فهرست بلند ارتفاع کل ردیف را می‌کشد بالا و
   ستون کناری پایینش خالی می‌ماند.
   ===================================================== */

.pl-col>.pl-section{display:flex;flex-direction:column;min-height:0}

.pl-col>.pl-section>*:last-child{flex:1 1 auto;min-height:0}

.pl-col .pl-compact{
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--pl-line-strong) transparent;
  scroll-behavior:smooth;
  padding-inline-end:6px;
}

.pl-col .pl-compact::-webkit-scrollbar{width:6px}
.pl-col .pl-compact::-webkit-scrollbar-thumb{background:var(--pl-line-strong);border-radius:99px}
.pl-col .pl-compact::-webkit-scrollbar-track{background:transparent}

/* =====================================================
   ردیف دوستونه: قفل ارتفاع
   یک ارتفاع مرجع برای ردیف تعریف می‌شود؛ فهرست کناری
   سقفش را از آن می‌گیرد و کاروسل کفش را. نتیجه: دو ستون
   دقیقاً هم‌قد، و فهرستی که واقعاً سرریز می‌کند تا بچرخد.
   ===================================================== */

.pl-rowsec{--pl-duo-h:clamp(300px,26vw,380px)}

.pl-rowsec .pl-col .pl-compact{max-height:var(--pl-duo-h)}

.pl-rowsec .pl-col .pl-rail-wrap{min-height:var(--pl-duo-h);height:100%}

.pl-rowsec .pl-col .pl-rail{height:100%;min-height:0}

.pl-rowsec .pl-col .pl-rail>article{height:100%;min-height:0}

.pl-rowsec .pl-col .pl-rail>article>a{
  display:flex;flex-direction:column;height:100%;min-height:0;
}

.pl-rowsec .pl-col .pl-rail .pl-thumb{
  aspect-ratio:auto!important;
  flex:1 1 auto;
  min-height:0;
}

.pl-rowsec .pl-col .pl-rail .pl-thumb img{height:100%;object-fit:cover}

/* =====================================================
   اصلاح: ارتفاع کاروسل ردیف، قطعی نه حداقلی
   با min-height تصویر سقف نداشت و ستون را می‌کشید بالا.
   حالا ارتفاع دقیقاً همان --pl-duo-h است و تصویر داخلش
   جا می‌گیرد، نه برعکس.
   ===================================================== */

.pl-rowsec .pl-col{min-height:0}

.pl-rowsec .pl-col .pl-rail-wrap{
  height:var(--pl-duo-h);
  min-height:0;
  display:flex;
  flex-direction:column;
}

.pl-rowsec .pl-col .pl-rail{flex:1 1 auto;height:auto;min-height:0}

.pl-rowsec .pl-col .pl-rail>article{height:100%;min-height:0}

.pl-rowsec .pl-col .pl-rail>article>a{
  display:flex;flex-direction:column;height:100%;min-height:0;
}

.pl-rowsec .pl-col .pl-rail .pl-thumb{
  flex:1 1 auto;
  height:auto;
  min-height:0;
}

.pl-rowsec .pl-col .pl-rail .pl-thumb img{width:100%;height:100%;object-fit:cover}

.pl-rowsec .pl-col .pl-rail>article>a h4{flex:0 0 auto}

/* =====================================================
   همگام‌سازی فونت با قالب
   موتور چیدمان فونت مستقل خودش را داشت (Markazi Text برای
   تیترها). حالا هر دو توکن به ارث می‌روند، پس هرچه قالب
   تعریف کند همان روی همه‌ی بخش‌ها اعمال می‌شود.
   ===================================================== */

:root{
  --pl-display:inherit;
  --pl-ui:inherit;
}

.pl-region,
.pl-region h2,
.pl-region h3,
.pl-region h4,
.pl-region p,
.pl-region a,
.pl-region span,
.pl-region button,
.pl-region li{
  font-family:inherit;
}

/* شماره‌ها: فونت قالب، ولی هم‌عرض تا در ستون تراز بمانند */
.pl-showcase__n,
.pl-ranked li::before,
.pl-region time{
  font-family:inherit;
  font-variant-numeric:tabular-nums;
}

/* =====================================================
   همگام‌سازی فونت با قالب
   موتور چیدمان فونت مستقل خودش را داشت (Markazi Text برای
   تیترها). حالا هر دو توکن به ارث می‌روند، پس هرچه قالب
   تعریف کند همان روی همه‌ی بخش‌ها اعمال می‌شود.
   ===================================================== */

:root{
  --pl-display:inherit;
  --pl-ui:inherit;
}

.pl-region,
.pl-region h2,
.pl-region h3,
.pl-region h4,
.pl-region p,
.pl-region a,
.pl-region span,
.pl-region button,
.pl-region li{
  font-family:inherit;
}

/* شماره‌ها: فونت قالب، ولی هم‌عرض تا در ستون تراز بمانند */
.pl-showcase__n,
.pl-ranked li::before,
.pl-region time{
  font-family:inherit;
  font-variant-numeric:tabular-nums;
}
