/* =========================================================
   UTILITIES — small helper classes shared by non-homepage
   templates (blog, page, search, 404). Loads late so it can
   override component defaults when needed.
   ========================================================= */

.ff-display{ font-family:var(--ff-display); }
html[dir="rtl"] .ff-display{ font-family:var(--ff-fa); font-weight:900; }

.text-center{ text-align:center; }
.text-muted{ color:#5b564c; }

/* ---------- blog / page content ---------- */
.post-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:980px){ .post-list{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .post-list{ grid-template-columns:1fr; } }

.post-card{
  border:var(--border-w) solid var(--ink);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-pop-sm);
  display:flex; flex-direction:column;
}
.post-card__img{ display:block; aspect-ratio:4/3; overflow:hidden; border-bottom:var(--border-w) solid var(--ink); }
.post-card__img img{ width:100%; height:100%; object-fit:cover; }
.post-card__body{ padding:18px; display:flex; flex-direction:column; gap:10px; flex:1; }
.post-card__title{ font-size:17px; font-weight:700; }
.post-card__excerpt{ font-size:14px; color:#5b564c; flex:1; }

.page-body, .entry-content{ font-size:16px; line-height:1.75; }
.page-body p, .entry-content p{ margin-bottom:1.2em; }
.page-body img, .entry-content img{ border-radius:var(--radius-md); border:2px solid var(--ink); }
.page-body a, .entry-content a{ color:var(--teal); text-decoration:underline; text-underline-offset:3px; }

.entry-title{ font-size:clamp(28px,4vw,44px); line-height:1.1; margin-bottom:10px; }

.tag-list a{
  display:inline-block; font-size:12px; font-weight:600;
  border:2px solid var(--ink); border-radius:999px;
  padding:4px 12px; margin-inline-end:6px; margin-bottom:6px;
}

/* ---------- search form ---------- */
.search-form{ display:flex; gap:10px; max-width:420px; margin-inline:auto; margin-top:30px; }
.search-form input[type="search"]{
  flex:1; padding:12px 16px;
  border:2px solid var(--ink); border-radius:999px;
  font-family:inherit; font-size:14px;
}
.search-form button{
  padding:12px 22px; border:2px solid var(--ink); border-radius:999px;
  background:var(--ink); color:var(--paper); font-weight:700;
}
