/* Half Nester blog — index cards + post layout (BLOG-TEMPLATE classes, brand tokens) */
.blog-index-hero { padding: clamp(3rem,7vw,5.5rem) 0; }
.blog-filters { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin:2rem 0 2.5rem; }
.filter-btn { font-family:var(--font-body); font-weight:600; font-size:.9rem; padding:.5rem 1.1rem; border-radius:999px;
  border:1px solid var(--line); background:#fff; color:var(--slate); cursor:pointer; transition:.15s; }
.filter-btn:hover { border-color:var(--sage); }
.filter-btn.active { background:var(--sage); border-color:var(--sage); color:var(--brown); }
.blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
@media (max-width:860px){ .blog-grid{ grid-template-columns:1fr; } }
.post-card { display:block; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;
  box-shadow:var(--shadow-sm); color:inherit; transition:transform .18s ease, box-shadow .18s ease; }
.post-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.post-card-thumb { aspect-ratio:16/10; background:var(--cream); }
.post-card-thumb img { width:100%; height:100%; object-fit:cover; }
.post-card-body { padding:1.1rem 1.2rem 1.3rem; }
.post-card-cat { display:inline-block; font-family:var(--font-accent); font-size:.72rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--terracotta); margin-bottom:.5rem; }
.post-card-title { font-family:var(--font-display); font-weight:600; font-size:1.2rem; line-height:1.3; color:var(--slate); margin-bottom:.5rem; }
.post-card-meta { font-size:.85rem; color:var(--muted); }

/* Post page */
.blog-post-hero { position:relative; padding:clamp(2.5rem,5vw,4rem) 1.5rem 2rem; max-width:1100px; margin:0 auto; }
.blog-post-hero img { width:100%; max-height:460px; object-fit:cover; border-radius:14px; margin-bottom:1.8rem; }
.blog-post-hero-content { max-width:900px; }
.blog-post-cat { display:inline-block; padding:.3rem 1rem; border-radius:999px; background:var(--sage); color:var(--brown);
  font-family:var(--font-accent); font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1rem; }
.blog-post-hero-content h1 { font-size:clamp(2rem,4vw,3rem); line-height:1.18; margin-bottom:1.1rem; }
.post-meta { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; font-size:.95rem; color:var(--muted); }
.post-meta-dot { width:4px; height:4px; border-radius:50%; background:var(--terracotta); }
.blog-post-wrap { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:3rem; max-width:1100px; margin:0 auto; padding:1rem 1.5rem 3rem; }
@media (max-width:900px){ .blog-post-wrap{ grid-template-columns:1fr; } }
.blog-article { font-size:1.08rem; line-height:1.8; color:var(--ink); }
.blog-article > p:first-of-type::first-letter { font-family:var(--font-display); font-size:3.2rem; line-height:.9; float:left; padding:.1em .12em 0 0; color:var(--terracotta); }
.blog-article h2 { font-size:1.7rem; margin:2.4rem 0 1rem; }
.blog-article h3 { font-size:1.3rem; margin:2rem 0 .75rem; }
.blog-article p { margin:0 0 1.25rem; }
.blog-article ul, .blog-article ol { margin:0 0 1.25rem 1.4rem; }
.blog-article li { margin-bottom:.5rem; }
.blog-article img { width:100%; border-radius:12px; box-shadow:var(--shadow-sm); margin:1.5rem 0; }
.blog-article blockquote { border-left:4px solid var(--terracotta); margin:1.8rem 0; padding:.4rem 0 .4rem 1.4rem;
  font-family:var(--font-display); font-size:1.3rem; color:var(--slate); }
.blog-sidebar { display:flex; flex-direction:column; gap:1.5rem; }
.sidebar-card, .sidebar-cta { border:1px solid var(--line); border-radius:14px; padding:1.4rem; background:#fff; box-shadow:var(--shadow-sm); }
.sidebar-head { font-family:var(--font-display); font-weight:600; color:var(--slate); margin-bottom:.8rem; font-size:1.15rem; }
.sidebar-body { display:flex; flex-direction:column; }
.sidebar-link { display:block; padding:.6rem 0; border-bottom:1px solid var(--line); color:var(--slate); font-size:.95rem; font-weight:500; }
.sidebar-link:last-child { border-bottom:none; }
.sidebar-link:hover { color:var(--sage-dark); }
.sidebar-cta { background:var(--cream); text-align:center; }
.sidebar-cta-title { font-family:var(--font-display); font-weight:600; font-size:1.2rem; color:var(--slate); margin-bottom:.4rem; }
.sidebar-cta p { font-size:.92rem; color:var(--muted); margin-bottom:1rem; }
