/* ==========================================================================
   Blog — postcards, pagination, single post, author. Shared by home, blog,
   archive and single (loaded wherever postcards or post content appear).
   ========================================================================== */

/* ---- Postcards / blog grid ---- */
.nx-postcard { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.nx-postcard__media { display: block; aspect-ratio: 1200 / 630; overflow: hidden; background: var(--nx-navy); }
.nx-postcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--nx-dur-slow) var(--nx-ease); }
.nx-postcard--hover:hover .nx-postcard__media img { transform: scale(1.05); }
.nx-postcard__ph { display: block; width: 100%; height: 100%; background: repeating-linear-gradient(135deg, var(--nx-cloud), var(--nx-cloud) 12px, #fff 12px, #fff 24px); }
.nx-postcard__body { padding: 1.5rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.nx-postcard__title { font-size: 1.2rem; }
.nx-postcard__title a { color: var(--nx-navy-ink); }
.nx-postcard__title a:hover { color: var(--nx-blue); }
.nx-postcard__excerpt { color: var(--nx-slate); font-size: .95rem; flex: 1; }
.nx-postcard__body .nx-card__link { margin-top: auto; }

/* ---- Pagination ---- */
.nx-pagination { margin-top: 3rem; }
.nx-pagination .nav-links { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.nx-pagination .page-numbers {
  display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 .5rem;
  border: 1px solid var(--nx-line); border-radius: var(--nx-r-sm); color: var(--nx-navy-ink); font-weight: var(--nx-fw-med);
}
.nx-pagination .page-numbers.current { background: var(--nx-blue); color: #fff; border-color: var(--nx-blue); }
.nx-pagination .page-numbers:hover:not(.current) { border-color: var(--nx-blue); color: var(--nx-blue); }

/* ---- Single post ---- */
.nx-post__head .nx-chip { margin: 1rem 0 .75rem; }
.nx-post__meta { display: flex; gap: .5rem; align-items: center; color: var(--nx-slate); font-size: .92rem; margin-top: 1rem; flex-wrap: wrap; }
.nx-post__hero { margin-top: -2rem; margin-bottom: 1rem; }
.nx-post__hero img { width: 100%; border-radius: var(--nx-r-lg); }
.nx-author { display: flex; gap: 1.25rem; align-items: flex-start; margin-top: 3rem; padding: 1.5rem; background: var(--nx-mist); border-radius: var(--nx-r-lg); }
.nx-author__avatar { border-radius: 50%; flex: none; }
.nx-author p { color: var(--nx-slate); font-size: .95rem; margin-top: .35rem; }
.nx-post__cta { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 2.5rem; padding-top: 2.5rem; border-top: 1px solid var(--nx-line); }
