/* Blog / resources */
.posts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2rem; }
.post-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--color-gray-200); border-radius: var(--radius-lg); overflow: hidden; transition: transform var(--transition-normal), box-shadow var(--transition-normal); }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.post-card__thumb { display: block; aspect-ratio: 16/9; background: var(--color-gray-100); overflow: hidden; }
.post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card__thumb--placeholder { display: grid; place-items: center; background: radial-gradient(500px 200px at 70% -20%, rgba(247,201,72,.25), transparent 60%), var(--color-charcoal); color: var(--color-primary); }
.post-card__thumb--placeholder svg { width: 40px; height: 40px; }
.post-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem; }
.post-card__cat { font-size: var(--fs-caption); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--color-primary-hover); }
.post-card__title { font-size: 1.2rem; margin: .4rem 0 .5rem; }
.post-card__title a:hover { color: var(--color-primary-hover); }
.post-card__meta { display: flex; flex-wrap: wrap; gap: .45rem; font-size: var(--fs-body-sm); color: var(--color-text-muted); }
.post-card__summary { color: var(--color-text-body); margin: .6rem 0 1rem; font-size: var(--fs-body-sm); }
.post-card__link { margin-top: auto; font-weight: 600; color: var(--color-black); display: inline-flex; align-items: center; gap: .35rem; }
.post-card__link:hover { color: var(--color-primary-hover); }
body.blog .posts-grid .post-card:first-child { grid-column: span 2; display: grid; grid-template-columns: 1.15fr 1fr; }
body.blog .posts-grid .post-card:first-child .post-card__thumb { aspect-ratio: auto; min-height: 100%; }
body.blog .posts-grid .post-card:first-child .post-card__body { justify-content: center; padding: clamp(1.75rem,4vw,3rem); }
body.blog .posts-grid .post-card:first-child .post-card__title { font-size: var(--fs-h3); }
@media (max-width: 900px) { .posts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { body.blog .posts-grid .post-card:first-child { grid-column: auto; grid-template-columns: 1fr; } body.blog .posts-grid .post-card:first-child .post-card__thumb { aspect-ratio: 16/9; } }
@media (max-width: 560px) { .posts-grid { grid-template-columns: 1fr; } }

/* Single post */
.entry { max-width: 46rem; margin-inline: auto; }
.entry__header { margin-bottom: 1.75rem; }
.entry__cat { font-size: var(--fs-body-sm); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--color-primary-hover); }
.entry__title { margin: .5rem 0; }
.entry__meta { color: var(--color-text-muted); font-size: var(--fs-body-sm); display: flex; flex-wrap: wrap; gap: .75rem; }
.entry__thumb { border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 1.75rem; }
.entry__content { color: var(--color-gray-600); line-height: 1.8; }
.entry__content > * + * { margin-top: 1.25rem; }
.entry__content h2 { font-size: var(--fs-h2); margin-top: 1.8em; }
.entry__content h3 { font-size: var(--fs-h3); margin-top: 1.4em; }
.entry__content ul { list-style: disc; padding-left: 1.4em; }
.entry__content ol { list-style: decimal; padding-left: 1.4em; }
.entry__content li { margin-bottom: .5em; }
.entry__content a { color: var(--color-primary-hover); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.entry__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.entry__tag { font-size: var(--fs-caption); padding: .25rem .7rem; border: 1px solid var(--color-gray-200); border-radius: var(--radius-full); color: var(--color-text-body); }
.entry__cta { margin-top: 2.5rem; padding: 1.75rem; border-radius: var(--radius-lg); background: var(--color-primary-soft); border: 1px solid var(--color-primary); text-align: center; }
.entry__cta h3 { margin-bottom: .5rem; }
.entry__cta-actions { margin-top: 1rem; display: flex; gap: .6rem; flex-wrap: wrap; justify-content: center; }

.pagination { margin-top: 2.5rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.pagination .page-numbers { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 .5rem; border: 1px solid var(--color-gray-200); border-radius: var(--radius-sm); font-weight: 600; }
.pagination .page-numbers.current { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-black); }
.pagination a.page-numbers:hover { border-color: var(--color-primary); }
