/* ── Blog — shared primitives ─────────────────────────────────────────────── */
.bl-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.bl-read{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;color:var(--ink-3)}
.bl-meta-line{font-size:13px;color:var(--ink-3)}
.bl-byline{display:flex;align-items:center;gap:9px}
.bl-ava{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;
  font-weight:700;font-family:'Space Grotesk',sans-serif;border:1px solid var(--line);background:var(--bg-elev);color:var(--ink-2)}
.bl-who{font-size:13px;color:var(--ink-2);font-weight:600}

/* category badge */
.bl-cat{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  padding:4px 9px;border-radius:6px;background:var(--line-2);color:var(--ink-2)}
.bl-cat--analyt{background:var(--ink);color:var(--bg-elev)}
.bl-cat--tax{background:var(--amber-soft,#FDF0D5);color:#8B6600}
.bl-cat--market{background:var(--pos-soft,#E4F2E8);color:var(--pos,#2E9D58)}
.bl-cat--strat{background:#E7E2F0;color:#5B4E86}
.bl-cat--guide{background:#E4ECEA;color:#3C6B5E}

/* thumbnail */
.bl-thumb{position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:16px}
.bl-thumb--img{padding:0}
.bl-thumb-img{width:100%;height:100%;display:block}
.bl-glyph{position:absolute;font-family:'Playfair Display',serif;font-style:italic;font-weight:500;line-height:.8;opacity:.16}
.th-ink{background:var(--ink);color:var(--bg-elev)}
.th-ink .bl-glyph{color:var(--bg-elev)}
.th-amber{background:linear-gradient(135deg,var(--amber-soft,#FDF0D5),#F0E6CF)}
.th-amber .bl-glyph{color:var(--amber,#C8921A)}
.th-pos{background:linear-gradient(135deg,var(--pos-soft,#E4F2E8),#DCE9DF)}
.th-pos .bl-glyph{color:var(--pos,#2E9D58)}
.th-violet{background:linear-gradient(135deg,#ECE7F4,#E1D9EF)}
.th-violet .bl-glyph{color:#5B4E86}

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.bl-hero{padding:50px 0 30px;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}
.bl-title{font-family:'Nunito',sans-serif;font-weight:700;font-size:58px;letter-spacing:-0.028em;
  line-height:.96;margin:10px 0 0}
.bl-title em{font-style:italic;color:var(--ink-3)}
.bl-sub{margin-top:16px;max-width:480px;font-size:15px;line-height:1.55;color:var(--ink-2); margin-bottom: 0px;}
.bl-search{display:flex;align-items:center;gap:10px;padding:11px 16px;border:1px solid var(--line);
  border-radius:999px;background:var(--bg-card,#fff);color:var(--ink-3);font-size:14px;min-width:240px;cursor:text}
.bl-search:focus-within{border-color:var(--ink-3)}
.bl-search input{border:0;outline:0;background:transparent;color:var(--ink);font-size:14px;width:100%}
.bl-search input::placeholder{color:var(--ink-3)}

/* ── Filters ──────────────────────────────────────────────────────────────── */
.bl-filters{display:flex;gap:8px;flex-wrap:wrap;padding:6px 0 30px;}
.bl-fp{padding:8px 15px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:600;
  color:var(--ink-2);background:var(--bg-elev);transition:background .12s,color .12s}
.bl-fp:hover:not(.bl-fp--on){background:var(--bg-card,#fff)}
.bl-fp--on{background:var(--ink);color:var(--bg-elev);border-color:var(--ink)}

/* ── Featured ─────────────────────────────────────────────────────────────── */
#bl-featured-wrap{margin-top:34px}
.bl-feat{display:grid;grid-template-columns:1.25fr 1fr;margin-bottom:36px;
  border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--bg-card,#fff);
  text-decoration:none;color:inherit;transition:box-shadow .14s}
.bl-feat:hover{box-shadow:0 12px 32px -16px rgba(20,18,12,.25)}
.bl-feat .bl-thumb{height:100%;min-height:320px}
.bl-feat .bl-glyph{font-size:300px;right:-20px;bottom:-80px}
.bl-feat .bl-body{padding:38px 40px;display:flex;flex-direction:column;justify-content:center}
.bl-pmeta{display:flex;align-items:center;gap:10px}
.bl-feat .bl-body h2{font-family:'Playfair Display',serif;font-weight:500;font-size:38px;
  letter-spacing:-0.022em;line-height:1.06;margin:16px 0 0}
.bl-feat .bl-body p{font-size:15px;line-height:1.55;color:var(--ink-2);margin:16px 0 22px}
.bl-frow{display:flex;align-items:center;justify-content:space-between;margin-top:auto}

/* ── Card grid ────────────────────────────────────────────────────────────── */
.bl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-bottom:54px}
.bl-card{background:var(--bg-card,#fff);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;text-decoration:none;color:inherit;
  transition:transform .12s ease,box-shadow .12s ease}
.bl-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px -16px rgba(20,18,12,.3)}
.bl-card .bl-thumb{height:270px;border-bottom:1px solid var(--line)}
.bl-card .bl-glyph{font-size:140px;right:-10px;bottom:-40px}
.bl-card .bl-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.bl-card .bl-pmeta{margin-bottom:12px}
.bl-card h3{font-family:'Nunito',sans-serif;font-weight:700;font-size:22px;letter-spacing:-0.015em;line-height:1.14;margin:0}
.bl-card p{font-size:13.5px;line-height:1.5;color:var(--ink-2);margin:10px 0 16px}
.bl-pfoot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;
  padding-top:14px;border-top:1px solid var(--line-2,#eee)}

.bl-empty{padding:60px 0 80px;text-align:center;color:var(--ink-3);font-size:15px}

/* ── Single post ──────────────────────────────────────────────────────────── */
.bl-back{display:inline-flex;align-items:center;gap:7px;margin:28px 0 32px;font-size:14px;
  font-weight:600;color:var(--ink-2);text-decoration:none;border:1px solid var(--line);
  border-radius:999px;padding:8px 16px;transition:background .12s}
.bl-back:hover{background:var(--bg-elev)}

.bl-single__head{margin-bottom:32px}
.bl-single__head .bl-pmeta{margin-bottom:18px}
.bl-single__head h1{font-family:'Nunito',sans-serif;font-weight:700;font-size:48px;letter-spacing:-0.025em;line-height:1.04;margin:0 0 20px}
.bl-single__meta{display:flex;align-items:center;gap:20px}

.bl-single__cover .bl-thumb{height:340px;border-radius:16px;overflow:hidden;margin-bottom:40px}
.bl-single__cover .bl-glyph{font-size:400px;right:-40px;bottom:-100px}

.bl-single__content{font-size:16px;line-height:1.7;color:var(--ink-2);padding-bottom:60px}
.bl-single__content h1,.bl-single__content h2,.bl-single__content h3,.bl-single__content h4,.bl-single__content h5,.bl-single__content h6{font-family:'Nunito',sans-serif;color:var(--ink)}
.bl-single__content p{margin-top:0.3em}
.bl-single__content a{color:var(--ink);text-decoration:underline}
.bl-single__content ul,.bl-single__content ol{padding-left:1.4em;margin:1em 0}
.bl-single__content li{margin:.4em 0}
.bl-single__content blockquote{border-left:3px solid var(--line);margin:1.5em 0;padding:.6em 1.2em;color:var(--ink-3)}

.bl-related{padding-bottom:60px}
.bl-related__title{font-family:'Playfair Display',serif;font-weight:500;font-size:32px;margin:0 0 28px}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media(max-width:1080px){
  .bl-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .bl-hero{grid-template-columns:1fr;align-items:start;gap:22px}
  .bl-title{font-size:44px}
  .bl-search{width:100%}
  .bl-feat{grid-template-columns:1fr}
  .bl-feat .bl-thumb{min-height:200px}
  .bl-feat .bl-body{padding:28px 26px}
  .bl-feat .bl-body h2{font-size:30px}
  .bl-single__head h1{font-size:36px}
  .bl-single__cover .bl-thumb{height:220px}
}
@media(max-width:560px){
  .bl-grid{grid-template-columns:1fr}
  .bl-hero{padding:30px 0 20px}
}
