/* ===================== Page hero (blog index) ===================== */
.page-hero{
  position:relative;
  background:var(--ink-950);
  overflow:clip;
  padding:150px 0 76px;
  text-align:center;
}
.page-hero .hero-glow{ position:absolute; inset:0; background-image:var(--grad-hero); pointer-events:none; }
.page-hero-inner{ position:relative; z-index:1; max-width:640px; margin:0 auto; }
.page-hero h1{ color:#fff; font-size:clamp(2rem, 4vw, 2.9rem); letter-spacing:-0.02em; margin-bottom:16px; }
.page-hero p{ color:rgba(255,255,255,0.7); font-size:1.08rem; }

/* ===================== Breadcrumb ===================== */
.breadcrumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px;
  font-size:0.85rem; color:var(--text-muted); margin-bottom:20px;
}
.breadcrumb a{ color:var(--text-muted); transition:color var(--dur-fast); }
.breadcrumb a:hover{ color:var(--violet-600); }
.breadcrumb span[aria-current]{ color:var(--text-secondary); font-weight:600; }
.breadcrumb .sep{ color:rgba(20,20,40,0.25); }

/* ===================== Blog grid / cards ===================== */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.blog-card{
  display:flex; flex-direction:column; gap:14px;
  background:var(--white); border:1px solid rgba(20,20,40,0.07); border-radius:var(--radius-md);
  padding:26px; text-decoration:none;
  transition:transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out), border-color var(--dur-med);
}
.blog-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:rgba(27,79,114,0.22); }
.blog-card-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.blog-tag{
  display:inline-flex; align-items:center; font-size:0.72rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase;
  color:var(--violet-700); background:rgba(27,79,114,0.1); padding:5px 11px; border-radius:var(--radius-full);
}
.blog-readtime{ font-size:0.78rem; color:var(--text-muted); }
.blog-card h2, .blog-card h3{ font-size:1.15rem; line-height:1.35; letter-spacing:-0.005em; }
.blog-card p{ color:var(--text-secondary); font-size:0.92rem; line-height:1.55; flex:1; }
.blog-card-link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.88rem; font-weight:700; color:var(--violet-600); margin-top:2px;
}
.blog-card:hover .blog-card-link{ color:var(--coral-600); }
.blog-card-link svg{ transition:transform var(--dur-fast) var(--ease-out); }
.blog-card:hover .blog-card-link svg{ transform:translateX(3px); }

/* ===================== Article header ===================== */
.article-header{ padding:150px 0 8px; }
.article-tag{
  display:inline-flex; align-items:center; font-size:0.75rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase;
  color:var(--violet-700); background:rgba(27,79,114,0.1); padding:6px 13px; border-radius:var(--radius-full);
  margin-bottom:18px;
}
.article-header h1{
  font-size:clamp(1.9rem, 4vw, 2.7rem); letter-spacing:-0.02em; max-width:44ch; margin-bottom:20px;
}
.article-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  color:var(--text-muted); font-size:0.9rem; padding-bottom:36px; border-bottom:1px solid rgba(20,20,40,0.08);
}
.article-meta .dot{ width:3px; height:3px; border-radius:50%; background:var(--text-muted); }

/* ===================== Article body ===================== */
.article-body{
  max-width:720px; margin:0 auto; padding:44px 0 0;
  font-size:1.06rem; line-height:1.8; color:var(--text-secondary);
}
.article-body > *{ max-width:720px; }
.article-body p{ margin-bottom:22px; }
.article-body h2{
  font-size:1.5rem; color:var(--text-primary); letter-spacing:-0.01em;
  margin:48px 0 18px;
}
.article-body h3{
  font-size:1.18rem; color:var(--text-primary); letter-spacing:-0.005em;
  margin:32px 0 14px;
}
.article-body ul, .article-body ol{ margin:0 0 24px; padding-left:22px; display:flex; flex-direction:column; gap:10px; }
.article-body li{ padding-left:4px; }
.article-body strong{ color:var(--text-primary); font-weight:700; }
.article-lead{ font-size:1.2rem; color:var(--text-primary); font-weight:500; line-height:1.65; }

.article-body table{ width:100%; border-collapse:collapse; margin:8px 0 28px; font-size:0.94rem; }
.article-body th, .article-body td{ text-align:left; padding:12px 14px; border-bottom:1px solid rgba(20,20,40,0.08); }
.article-body thead th{ font-family:var(--font-head); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.03em; color:var(--text-muted); background:var(--paper-alt); }

.stat-callout{
  display:flex; gap:16px; align-items:flex-start;
  background:var(--paper-alt); border-left:3px solid var(--violet-600);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:20px 22px; margin:8px 0 28px;
}
.stat-callout strong{ display:block; font-family:var(--font-head); font-size:1.3rem; color:var(--violet-700); margin-bottom:2px; }
.stat-callout span{ font-size:0.92rem; color:var(--text-secondary); }

.cta-box{
  margin:16px 0 32px;
  background:var(--ink-950); border-radius:var(--radius-lg);
  padding:32px; position:relative; overflow:clip;
}
.cta-box::before{ content:''; position:absolute; inset:0; background-image:var(--grad-hero); opacity:0.7; pointer-events:none; }
.cta-box-inner{ position:relative; z-index:1; }
.cta-box h3{ color:#fff; font-size:1.3rem; margin-bottom:10px; }
.cta-box p{ color:rgba(255,255,255,0.72); font-size:0.96rem; margin-bottom:20px; max-width:48ch; }

.author-box{
  display:flex; align-items:center; gap:14px;
  margin-top:48px; padding-top:28px; border-top:1px solid rgba(20,20,40,0.08);
}
.author-avatar{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background:var(--grad-brand); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-head); font-weight:700; font-size:0.95rem;
}
.author-info strong{ display:block; font-size:0.92rem; color:var(--text-primary); }
.author-info span{ font-size:0.84rem; color:var(--text-muted); }

.related-heading{ font-size:1.3rem; margin-bottom:22px; }

.blog-teaser-cta{ text-align:center; margin-top:36px; }

/* ===================== Responsive ===================== */
@media (max-width:1080px){
  .blog-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .blog-grid{ grid-template-columns:1fr; }
  .page-hero{ padding:130px 0 56px; }
  .article-header{ padding:110px 0 8px; }
  .article-body{ font-size:1rem; }
  .cta-box{ padding:24px; }
}
