/* ============================================================
   BLOG.CSS — styles specific to blog.html / blog-post.php
   Requires base.css to be loaded first. Reuses base.css's tokens
   (--plum-dark/--brass/--ivory/--charcoal/--grey-plum/--line) and the
   site's existing card/button conventions rather than introducing a
   new visual language.
   ============================================================ */

/* ---------- Index hero ---------- */
.blog-hero{
  padding:100px 32px 40px;
  text-align:center;
  max-width:680px;margin:0 auto;
}
.blog-hero .eyebrow{display:block;margin-bottom:22px;}
.blog-hero h1{
  font-size:clamp(30px,4.5vw,46px);
  font-weight:300;
  letter-spacing:-.01em;
}
.blog-hero h1 em{font-style:italic;font-weight:600;color:var(--brass);}
.blog-hero p.lede{
  margin:20px auto 0;max-width:480px;
  color:var(--grey-plum);font-size:17px;
}

/* ---------- Featured bar (most read / latest) ---------- */
.blog-featured{
  max-width:var(--max);margin:0 auto;
  padding:20px 32px 10px;
  display:grid;grid-template-columns:1fr 1fr;gap:36px;
}
.blog-featured-group h2{
  font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--plum-dark);margin-bottom:14px;
  display:flex;align-items:center;gap:8px;
}
.blog-featured-group h2::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:var(--plum-mid);display:inline-block;
}
.blog-featured-row{display:flex;gap:14px;flex-wrap:wrap;}
.blog-featured-card{
  display:flex;align-items:center;gap:10px;
  flex:1 1 220px;min-width:200px;
  background:#fff;border:1px solid var(--line);border-left:3px solid var(--plum-mid);
  border-radius:12px;
  padding:8px;text-decoration:none;color:var(--charcoal);
  transition:box-shadow .2s ease, transform .2s ease;
}
.blog-featured-card:hover{box-shadow:0 10px 24px -16px rgba(43,24,50,.35);transform:translateY(-2px);}
.blog-featured-card img{
  width:56px;height:56px;object-fit:cover;border-radius:8px;flex-shrink:0;
}
.blog-featured-card span{
  font-size:13.5px;font-weight:600;line-height:1.35;color:var(--plum-dark);
}

/* ---------- Post grid ---------- */
.blog-grid-section{padding:40px 32px 100px;max-width:var(--max);margin:0 auto;}
.blog-empty{text-align:center;color:var(--grey-plum);font-size:16px;padding:40px 0;}
.blog-grid{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
  gap:28px;
}
.blog-card{
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--plum-dark);
  border-radius:18px;
  overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px -20px rgba(43,24,50,.35);}
.blog-card-image{aspect-ratio:4/3;overflow:hidden;background:var(--ivory-deep);}
.blog-card-image img{width:100%;height:100%;object-fit:cover;display:block;}
.blog-card-body{padding:20px 22px 24px;}
.blog-card-body h3{font-size:19px;font-weight:600;line-height:1.3;margin-bottom:8px;color:var(--plum-dark);}
.blog-card-body .blog-card-read{
  display:inline-block;margin-top:14px;
  font-size:13px;font-weight:600;color:var(--plum-mid);
}
.blog-card-body p{font-size:14.5px;color:var(--grey-plum);line-height:1.55;}

/* ---------- Single post ---------- */
.blog-post-layout{
  max-width:var(--max);margin:0 auto;
  padding:56px 32px 100px;
  display:grid;grid-template-columns:1fr 300px;gap:56px;
  align-items:start;
}
.blog-post-back{font-size:14px;margin-bottom:18px;}
.blog-post-back a{color:var(--plum-mid);font-weight:600;}
.blog-post-hero{
  width:100%;max-height:420px;object-fit:cover;
  border-radius:18px;margin-bottom:28px;
}
.blog-post h1{
  font-size:clamp(28px,4vw,40px);font-weight:400;line-height:1.2;margin-bottom:28px;
}
.blog-post-body{font-size:17px;line-height:1.75;color:var(--charcoal);}
.blog-post-body h2{
  font-size:24px;font-weight:600;margin:36px 0 14px;color:var(--plum-dark);
}
.blog-post-body p{margin-bottom:18px;}
.blog-post-body ul{margin:0 0 18px 22px;}
.blog-post-body li{margin-bottom:10px;}
.blog-post-body strong{color:var(--plum-dark);}
.blog-post-body a{color:var(--plum-mid);text-decoration:underline;}
.blog-post-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.blog-post-tags span{
  font-family:'Inter',sans-serif;font-size:12px;font-weight:600;
  color:var(--brass);background:var(--ivory-deep);
  padding:5px 12px;border-radius:999px;
}
.blog-post-cta{margin-top:12px;}

.blog-post-nav{
  position:sticky;top:100px;
  background:var(--ivory-deep);border-radius:16px;padding:20px;
}
.blog-post-nav h2{
  font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--grey-plum);margin-bottom:14px;
}
.blog-post-nav ul{list-style:none;display:flex;flex-direction:column;gap:8px;}
.blog-post-nav-item{
  display:flex;align-items:center;gap:10px;
  padding:8px;border-radius:10px;
  text-decoration:none;color:var(--charcoal);
}
.blog-post-nav-item:hover{background:#fff;}
.blog-post-nav-item.is-current{background:#fff;box-shadow:0 6px 16px -10px rgba(43,24,50,.3);}
.blog-post-nav-item img{
  width:40px;height:40px;object-fit:cover;border-radius:8px;flex-shrink:0;
}
.blog-post-nav-item span{font-size:13px;font-weight:600;line-height:1.35;}

@media (max-width:860px){
  .blog-featured{grid-template-columns:1fr;gap:24px;}
  .blog-post-layout{grid-template-columns:1fr;}
  .blog-post-nav{position:static;}
}
