/* blog.css: blog index (card grid). */
/* CloudLabs / ClusterTriage · blog.css · de bloglisting
   ==========================================================================
   Hangt onder pagina.css/clustertriage.css/clustertriage-v2.css. Herbouwd
   uit de structuur, opmaak en filter/zoek-scripts van de oude blog.html
   (cldlbs.com), overgezet naar de ClusterTriage-tokens en in schone,
   taalgesplitste URL's (/en/blog/, /nl/blog/) in plaats van de oude
   dual-language-toggle op één pagina. */

.blog-filter{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin:38px 0 6px}
.bf-cats{display:flex;flex-wrap:wrap;gap:8px}
.bf-btn{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;color:var(--ink);
        background:var(--surface);border:1px solid var(--dim);border-radius:999px;
        padding:7px 14px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.bf-btn:hover{color:var(--accent);border-color:var(--accent)}
.bf-btn.active{background:var(--accent);color:var(--chip-ink);border-color:var(--accent);font-weight:600}
.bf-searchrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.bf-search{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule);
           border-radius:999px;padding:6px 14px;background:var(--surface)}
.bf-search:focus-within{border-color:var(--accent)}
.bf-search svg{color:var(--faint);flex-shrink:0}
.bf-search input{background:transparent;border:0;outline:none;color:var(--ink);
                  font-family:var(--sans);font-size:13px;width:170px}
.bf-search input::placeholder{color:var(--faint)}
.bf-count{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--faint)}

.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
           grid-template-rows:masonry;gap:18px;margin-top:26px}
.blog-card{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:10px;
           padding:26px;background:var(--surface);text-decoration:none;color:var(--ink);
           transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.blog-card:hover{border-color:var(--accent);box-shadow:0 18px 42px rgba(10,16,36,.09);transform:translateY(-2px)}
.blog-card .tag{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;
                text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.blog-card h2{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.3;margin:0 0 10px}
.blog-card p{font-size:14px;line-height:1.6;color:var(--dim);margin:0 0 16px;flex:1}
.blog-card .meta{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.05em}
.blog-card .read-more{color:var(--accent);font-size:13px;margin-top:10px;font-family:var(--mono)}
.blog-card.featured{border-color:var(--accent);position:relative;background:var(--accent-soft)}
.blog-card.featured::before{content:"FEATURED";position:absolute;top:14px;right:14px;
  font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--accent);
  background:var(--surface);padding:3px 8px;border-radius:3px;border:1px solid var(--accent)}
.blog-card.hide{display:none}
.blog-empty{color:var(--faint);font-size:15px;margin-top:26px}

@media(max-width:560px){.bf-search{width:100%}.bf-search input{width:100%}}
