/**
 * Dollarisho — blog listing + single-post component styles (.ds-*).
 * Ported 1:1 from the reference theme style.css. Design tokens (--brand,
 * --gold, --line, …), @font-face rules and the shared keyframes
 * (dsUp, dsFloat, dsPulse, rcPulse, rcPop) live in the live theme's
 * style.css — they are NOT redeclared here.
 */

/* ==========================================================================
   Layout
   ========================================================================== */
.ds-wrap{max-width:1160px;margin:0 auto;padding-inline:28px}
.ds-num{font-family:'Vazirmatn',sans-serif}

/* ==========================================================================
   Cards / badges
   ========================================================================== */
.ds-card{background:#fff;border:1px solid var(--card-line);border-radius:20px;
  box-shadow:0 1px 2px rgba(11,36,55,.04),0 10px 28px -16px rgba(11,36,55,.14);
  transition:transform .35s cubic-bezier(.22,1,.36,1)}
.ds-card:hover{transform:translateY(-6px)}
.ds-badge{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;
  padding:6px 11px;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep)}
.ds-badge--accent{background:var(--gold);color:#fff}

/* ==========================================================================
   Blog index — hero
   ========================================================================== */
.ds-blog-hero{position:relative;overflow:hidden;text-align:center;
  background:radial-gradient(680px 480px at 88% 0%,rgba(25,20,75,.15),transparent 60%),
  radial-gradient(560px 420px at 6% 92%,rgba(249,30,90,.13),transparent 60%),
  linear-gradient(180deg,#F7F5FC,#F5F4FA)}
.ds-blog-hero__inner{position:relative;max-width:900px;margin:0 auto;padding:64px 28px 52px}
.ds-blog-hero h1{font-weight:900;font-size:clamp(32px,4.4vw,48px);line-height:1.5;margin:18px 0 14px}
.ds-blog-hero h1 span{color:var(--gold)}
.ds-blog-hero p{font-size:16px;line-height:2;color:var(--mut);max-width:560px;margin:0 auto 26px}
.ds-search{display:flex;align-items:center;gap:11px;max-width:560px;margin:0 auto;background:#fff;
  border:1.5px solid var(--line);border-radius:16px;padding:6px 8px 6px 16px;
  box-shadow:0 2px 4px rgba(25,20,75,.04),0 18px 40px -22px rgba(25,20,75,.3)}
.ds-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.ds-search input{flex:1;min-width:0;font:inherit;font-size:14px;border:none;outline:none;background:transparent;padding:10px 0;color:var(--ink)}
.ds-quick{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.ds-quick button{font:inherit;font-size:11.5px;font-weight:700;color:var(--brand-deep);background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;transition:all .2s}
.ds-quick button:hover{border-color:var(--brand);background:var(--brand-soft)}

/* ==========================================================================
   Blog index — filters
   ========================================================================== */
.ds-filters{display:flex;align-items:center;gap:10px;overflow-x:auto;padding-bottom:6px;margin-bottom:26px}
.ds-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;
  border:1px solid var(--line);background:#fff;color:var(--navy);font:inherit;font-size:13px;font-weight:700;
  cursor:pointer;white-space:nowrap;flex:none;box-shadow:0 1px 2px rgba(25,20,75,.05);transition:all .2s cubic-bezier(.22,1,.36,1)}
.ds-chip.is-active{border-color:transparent;background:var(--navy);color:#fff;box-shadow:0 8px 20px -10px rgba(25,20,75,.6)}
.ds-chip__count{font-family:'Vazirmatn',sans-serif;font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep)}
.ds-chip.is-active .ds-chip__count{background:rgba(255,255,255,.18);color:#fff}

/* ==========================================================================
   Blog index — grid + cards
   ========================================================================== */
.ds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}
.ds-grid--related{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.ds-post-card{display:flex;flex-direction:column;overflow:hidden;color:inherit}
.ds-post-card:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.ds-cover{position:relative;height:180px;overflow:hidden;background:#EBE9F5}
.ds-cover--sm{height:158px}
.ds-cover--navy{background:linear-gradient(140deg,#EBE9F5,#DBD5F0)}
.ds-cover--pink{background:linear-gradient(140deg,#F7EAF1,#F0D9E3)}
.ds-cover__stripes{position:absolute;inset:0;opacity:.6}
.ds-cover--navy .ds-cover__stripes{background:repeating-linear-gradient(205deg,rgba(25,20,75,.10) 0 3px,transparent 3px 12px)}
.ds-cover--pink .ds-cover__stripes{background:repeating-linear-gradient(205deg,rgba(249,30,90,.13) 0 3px,transparent 3px 12px)}
.ds-cover__wm{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:'YekanBakh',sans-serif;font-weight:900;font-size:38px;color:var(--brand);opacity:.11}
.ds-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ds-cover__tint{position:absolute;inset:0;background:var(--brand);mix-blend-mode:multiply;opacity:.14}
.ds-cover .ds-badge{position:absolute;bottom:12px;inset-inline-start:12px;background:#fff}
.ds-post-card__body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.ds-post-card__meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--mut);font-weight:600}
.ds-dot{width:3px;height:3px;border-radius:50%;background:var(--line)}
.ds-post-card h3{font-weight:800;font-size:16px;line-height:1.85}
.ds-post-card p{font-size:12.5px;line-height:1.95;color:var(--mut);margin:0}
.ds-post-card__more{margin-top:auto;font-size:12.5px;font-weight:700;color:var(--brand-deep);padding-top:4px}

/* Featured split hero */
.ds-featured{display:flex;flex-direction:row;flex-wrap:wrap;overflow:hidden;border-radius:24px;color:inherit;
  box-shadow:0 1px 2px rgba(11,36,55,.04),0 18px 44px -22px rgba(11,36,55,.28)}
.ds-featured__fig{position:relative;flex:1 1 340px;min-height:280px;background:linear-gradient(140deg,#EBE9F5,#DBD5F0)}
.ds-featured__body{flex:1 1 360px;padding:34px 36px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.ds-featured__body h2{font-weight:900;font-size:clamp(22px,2.4vw,28px);line-height:1.65}
.ds-featured__body p{font-size:14px;line-height:2.05;color:var(--mut);margin:0}

/* Empty state */
.ds-empty{background:#fff;border:1px dashed var(--line);border-radius:20px;padding:56px 28px;text-align:center}

/* ==========================================================================
   Single post — progress + head
   ========================================================================== */
.ds-progress{position:fixed;top:0;inset-inline:0;height:3px;z-index:100;pointer-events:none}
.ds-progress__bar{height:100%;width:0;background:linear-gradient(90deg,var(--brand),var(--gold));transition:width .12s linear}
.ds-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut);font-weight:600;flex-wrap:wrap;margin-bottom:22px}
.ds-breadcrumb .sep{opacity:.6}
.ds-post-head{max-width:820px;margin:0 auto 26px;text-align:center}
.ds-post-head h1{font-weight:900;font-size:clamp(26px,3.6vw,40px);line-height:1.55;margin:16px 0 18px}
.ds-post-meta{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.ds-author-mini{display:flex;align-items:center;gap:10px}
.ds-author-mini img{width:40px;height:40px;border-radius:12px}
.ds-post-hero{position:relative;margin:0 0 8px;border-radius:24px;overflow:hidden;aspect-ratio:16/8;
  background:linear-gradient(140deg,#EBE9F5,#DBD5F0);box-shadow:0 1px 2px rgba(11,36,55,.05),0 24px 50px -26px rgba(11,36,55,.3)}
.ds-post-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.ds-post-layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:48px;align-items:start}
.ds-aside{position:sticky;top:86px;align-self:start}

/* ==========================================================================
   Single post — prose (Gutenberg content)
   ========================================================================== */
.ds-prose{max-width:760px}
.ds-prose p{font-size:15.5px;line-height:2.2;color:var(--ink);margin:0 0 20px}
.ds-prose h2{font-weight:900;font-size:24px;margin:38px 0 14px;line-height:1.6;scroll-margin-top:86px}
.ds-prose h3{font-weight:800;font-size:18px;margin:26px 0 10px;line-height:1.6}
.ds-prose ul,.ds-prose ol{margin:0 0 20px;padding-inline-start:0;list-style:none;display:flex;flex-direction:column;gap:11px}
.ds-prose ul li{display:flex;align-items:flex-start;gap:11px;font-size:15px;line-height:2}
.ds-prose ul li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);margin-top:11px;flex:none}
.ds-prose ol{counter-reset:ds}
.ds-prose ol li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:2;counter-increment:ds}
.ds-prose ol li::before{content:counter(ds);width:26px;height:26px;border-radius:9px;background:var(--brand-soft);
  color:var(--brand-deep);font-family:'Vazirmatn',sans-serif;font-weight:800;font-size:12.5px;
  display:flex;align-items:center;justify-content:center;flex:none;margin-top:2px}
.ds-prose blockquote{margin:0 0 22px;padding:18px 22px;border-inline-start:4px solid var(--gold);
  background:var(--brand-soft);border-radius:0 14px 14px 0;font-family:'YekanBakh',sans-serif;
  font-weight:800;font-size:17px;line-height:1.95;color:var(--brand-deep)}
.ds-prose img{border-radius:16px;margin:0 0 22px}

/* Callout — .ds-callout.is-tip / .is-warn / .is-info  (map to Gutenberg block/shortcode) */
.ds-callout{margin:6px 0 22px;padding:16px 18px;border-radius:0 14px 14px 0;border-inline-start:4px solid var(--brand);background:#F1EFFA}
.ds-callout.is-warn{border-color:var(--gold);background:#FCEAF0}
.ds-callout.is-info{border-color:#1C7ED6;background:#EAF1FB}
.ds-callout__tag{display:inline-block;font-size:11px;font-weight:800;color:#fff;background:var(--brand);border-radius:999px;padding:4px 11px;margin-bottom:9px}
.ds-callout.is-warn .ds-callout__tag{background:var(--gold)}
.ds-callout.is-info .ds-callout__tag{background:#1C7ED6}
.ds-callout__body{font-size:14px;line-height:2;color:var(--ink)}

/* In-content CTA */
.ds-cta{display:block;position:relative;overflow:hidden;border-radius:20px;margin:8px 0 24px;padding:26px 28px;color:inherit;
  background:radial-gradient(360px 200px at 88% -20%,rgba(25,20,75,.4),transparent 62%),linear-gradient(150deg,#19144B,#241C63);
  box-shadow:0 18px 40px -22px rgba(11,36,55,.5)}
.ds-cta:hover{transform:translateY(-3px)}
.ds-cta__row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.ds-cta h4{color:#F5F9FD;font-weight:900;font-size:18px;margin-bottom:6px}
.ds-cta p{font-size:12.5px;line-height:1.9;color:#B9CBD6;margin:0}

/* ==========================================================================
   Single post — TOC
   ========================================================================== */
.ds-toc__card{background:#fff;border:1px solid var(--card-line);border-radius:18px;padding:18px 20px;
  box-shadow:0 1px 2px rgba(11,36,55,.04),0 10px 28px -20px rgba(11,36,55,.16)}
.ds-toc__title{display:flex;align-items:center;gap:8px;font-family:'YekanBakh',sans-serif;font-weight:800;font-size:13.5px;color:var(--navy);margin-bottom:14px}
.ds-toc a{display:block;padding:8px 12px;border-radius:9px;border-inline-start:2px solid transparent;
  font-size:12.5px;font-weight:600;line-height:1.7;color:var(--mut);transition:all .2s}
.ds-toc a.is-active{border-color:var(--gold);font-weight:800;color:var(--brand-deep);background:var(--brand-soft)}
/* Mobile TOC (shown in the content column when the sticky aside is hidden) */
.ds-toc--mobile{display:none;background:#fff;border:1px solid var(--card-line);border-radius:16px;padding:16px 18px;margin-bottom:26px}

/* ==========================================================================
   Single post — share / author / prev-next
   ========================================================================== */
.ds-share{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:20px 0 26px}
.ds-share__btns{display:flex;align-items:center;gap:8px}
.ds-share__btns a,.ds-share__btns button{width:40px;height:40px;border-radius:12px;background:#fff;
  border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--navy);cursor:pointer;transition:all .2s}
.ds-share__btns .ds-copy{width:auto;padding:0 15px;gap:7px;font:inherit;font-size:12.5px;font-weight:700}
.ds-share__btns a:hover,.ds-share__btns button:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-deep)}
.ds-authorcard{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--card-line);
  border-radius:20px;padding:22px 24px;box-shadow:0 1px 2px rgba(11,36,55,.04),0 10px 28px -18px rgba(11,36,55,.16)}
.ds-authorcard img{width:56px;height:56px;border-radius:16px;flex:none}
.ds-prevnext{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:22px}
.ds-prevnext a{display:block;background:#fff;border:1px solid var(--card-line);border-radius:16px;padding:16px 18px;color:inherit;transition:all .25s}
.ds-prevnext a:hover{border-color:var(--brand);transform:translateY(-3px)}

/* ==========================================================================
   Newsletter
   ========================================================================== */
.ds-newsletter{position:relative;overflow:hidden;border-radius:26px;padding:48px 40px;
  background:radial-gradient(520px 340px at 88% -10%,rgba(25,20,75,.4),transparent 62%),
  radial-gradient(420px 300px at 6% 110%,rgba(249,30,90,.2),transparent 60%),linear-gradient(150deg,#19144B,#241C63);
  box-shadow:0 2px 4px rgba(11,36,55,.08),0 28px 56px -24px rgba(11,36,55,.45)}
.ds-newsletter h2{color:#F5F9FD;font-weight:900;font-size:26px;margin-bottom:10px}
.ds-newsletter p{font-size:14px;line-height:2;color:#B9CBD6;margin:0;max-width:440px}
.ds-newsletter__form{display:flex;gap:10px;flex-wrap:wrap}
.ds-newsletter input{flex:1;min-width:200px;height:52px;border-radius:14px;border:none;background:#fff;
  padding:0 16px;font-family:'Vazirmatn',sans-serif;font-size:14px;text-align:left;direction:ltr}
.ds-newsletter button{height:52px;padding-inline:26px;background:var(--gold);border:none;color:#fff;
  border-radius:14px;font:inherit;font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 6px 16px -6px rgba(249,30,90,.6)}
.ds-newsletter__msg{margin-top:12px;font-size:12.5px;font-weight:700}
.ds-newsletter__msg.ok{color:#8FE3B0}
.ds-newsletter__msg.err{color:#FFB3C6}

/* Grain overlay used by hero / CTA / newsletter surfaces */
.grain{position:absolute;inset:0;background-image:var(--grain);opacity:.07;mix-blend-mode:overlay;pointer-events:none}

/* ==========================================================================
   Responsive — collapse post layout / surface mobile TOC below ~980px
   ========================================================================== */
@media(max-width:980px){
  .ds-post-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .ds-aside{display:none}
  .ds-toc--mobile{display:block}
}
